@jdultra/threedtiles 14.0.9 → 14.0.10
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/dist/threedtiles.cjs.js +10 -10
- package/dist/threedtiles.cjs.js.map +1 -1
- package/dist/threedtiles.es.js +109 -109
- package/dist/threedtiles.es.js.map +1 -1
- package/dist/threedtiles.umd.js +10 -10
- package/dist/threedtiles.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/threedtiles.cjs.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @license MIT
|
|
4
4
|
* Linked hash map data structure
|
|
5
5
|
* @class LinkedHashMap
|
|
6
|
-
*/class VC{constructor(){this._data=new Map,this._link=new Map,this._head=void 0,this._tail=void 0}put(A,g,I=!1){this.has(A)?this._data.set(A,g):(this._data.set(A,g),this._link.set(A,{previous:void 0,next:void 0}),this._head==null?(this._head=A,this._tail=A):I?(this._link.get(this._head).previous=A,this._link.get(A).next=this._head,this._head=A):(this._link.get(this._tail).next=A,this._link.get(A).previous=this._tail,this._tail=A))}head(){return{key:this._head,value:this.get(this._head),next:()=>this.next(this._head),previous:()=>null}}tail(){return{key:this._tail,value:this.get(this._tail),next:()=>null,previous:()=>this.previous(this._tail)}}get(A){return this._data.get(A)}previousKey(A){const g=this._link.get(A);return g?.previous}previousValue(A){return this.get(this.previousKey(A))}previous(A){const g=this.previousKey(A);return{key:g,value:this.get(g),next:()=>this.next(g),previous:()=>this.previous(g)}}nextKey(A){const g=this._link.get(A);return g?.next}nextValue(A){return this.get(this.nextKey(A))}next(A){const g=this.nextKey(A);return{key:g,value:this.get(g),next:()=>this.next(g),previous:()=>this.previous(g)}}remove(A){const g=this._data.get(A);if(g!=null)if(this.size()===1)this.reset();else{if(A===this._head){const I=this._link.get(this._head);this._link.get(I.next).previous=null,this._head=I.next}else if(A===this._tail){const I=this._link.get(this._tail);this._link.get(I.previous).next=null,this._tail=I.previous}else{const I=this._link.get(A),Q=this._link.get(I.previous),C=this._link.get(I.next);Q.next=I.next,C.previous=I.previous}this._link.delete(A),this._data.delete(A)}return g}has(A){return this._data.has(A)}size(){return this._data.size}reset(){this._data.clear(),this._link.clear(),this._head=void 0,this._tail=void 0}keys(){return this._data.keys()}values(){return this._data.values()}entries(){return this._data.entries()}toArray(A="orderByInsert"){if(A!=="orderByInsert"){const g=[];let I=this._head;for(;I!=null;)g.push({key:I,value:this.get(I)}),I=this.nextKey(I);return g}return Array.from(this.keys()).map(g=>({key:g,value:this.get(g)}))}}const ma=new TextDecoder;class zC{constructor(A,g,I,Q){this.buffer=A,this.binOffset=g+I,this.binLength=Q;let C=null;if(I!==0)try{const E=new Uint8Array(A,g,I);C=JSON.parse(ma.decode(E))}catch{C={}}else C={};this.header=C}getKeys(){return Object.keys(this.header)}getData(A,g,I=null,Q=null){const C=this.header;if(!(A in C))return null;const E=C[A];if(E instanceof Object){if(Array.isArray(E))return E;{const{buffer:a,binOffset:i,binLength:t}=this,e=E.byteOffset||0,o=E.type||Q,r=E.componentType||I;if("type"in E&&Q&&E.type!==Q)throw new Error("FeatureTable: Specified type does not match expected type.");let n,s;switch(o){case"SCALAR":n=1;break;case"VEC2":n=2;break;case"VEC3":n=3;break;case"VEC4":n=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${A}".`)}const c=i+e,D=g*n;switch(r){case"BYTE":s=new Int8Array(a,c,D);break;case"UNSIGNED_BYTE":s=new Uint8Array(a,c,D);break;case"SHORT":s=new Int16Array(a,c,D);break;case"UNSIGNED_SHORT":s=new Uint16Array(a,c,D);break;case"INT":s=new Int32Array(a,c,D);break;case"UNSIGNED_INT":s=new Uint32Array(a,c,D);break;case"FLOAT":s=new Float32Array(a,c,D);break;case"DOUBLE":s=new Float64Array(a,c,D);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${A}".`)}if(c+D*s.BYTES_PER_ELEMENT>i+t)throw new Error("FeatureTable: Feature data read outside binary body length.");return s}}return E}}class Sa extends zC{constructor(A,g,I,Q,C){super(A,I,Q,C),this.batchSize=g}getData(A,g=null,I=null){return super.getData(A,this.batchSize,g,I)}}function vQ(B){let A,g,I,Q=-1,C=0;for(let t=0;t<B.length;++t){const e=B[t];if(A===void 0&&(A=e.array.constructor),A!==e.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(g===void 0&&(g=e.itemSize),g!==e.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(I===void 0&&(I=e.normalized),I!==e.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(Q===-1&&(Q=e.gpuType),Q!==e.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;C+=e.count*g}const E=new A(C),a=new d.BufferAttribute(E,g,I);let i=0;for(let t=0;t<B.length;++t){const e=B[t];if(e.isInterleavedBufferAttribute){const o=i/g;for(let r=0,n=e.count;r<n;r++)for(let s=0;s<g;s++){const c=e.getComponent(r,s);a.setComponent(r+o,s,c)}}else E.set(e.array,i);i+=e.count*g}return Q!==void 0&&(a.gpuType=Q),a}function TQ(B,A){if(A===d.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),B;if(A===d.TriangleFanDrawMode||A===d.TriangleStripDrawMode){let g=B.getIndex();if(g===null){const E=[],a=B.getAttribute("position");if(a===void 0)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),B;for(let i=0;i<a.count;i++)E.push(i);B.setIndex(E),g=B.getIndex()}const I=g.count-2,Q=[];if(A===d.TriangleFanDrawMode)for(let E=1;E<=I;E++)Q.push(g.getX(0)),Q.push(g.getX(E)),Q.push(g.getX(E+1));else for(let E=0;E<I;E++)E%2==0?(Q.push(g.getX(E)),Q.push(g.getX(E+1)),Q.push(g.getX(E+2))):(Q.push(g.getX(E+2)),Q.push(g.getX(E+1)),Q.push(g.getX(E)));Q.length/3!==I&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const C=B.clone();return C.setIndex(Q),C.clearGroups(),C}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",A),B}class XC{constructor(A){this.gltfLoader=A,this.tempMatrix=new V.Matrix4,this.zUpToYUpMatrix=new V.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1)}parseB3DM(A,g,I,Q){const C=this,E=new DataView(A),a=String.fromCharCode(E.getUint8(0))+String.fromCharCode(E.getUint8(1))+String.fromCharCode(E.getUint8(2))+String.fromCharCode(E.getUint8(3));console.assert(a==="b3dm");const i=E.getUint32(8,!0);console.assert(i===A.byteLength);const t=E.getUint32(12,!0),e=E.getUint32(16,!0),o=E.getUint32(20,!0),r=E.getUint32(24,!0),n=new zC(A,28,t,e),s=28+t+e;new Sa(A,n.getData("BATCH_LENGTH"),s,o,r);const c=s+o+r,D=new Uint8Array(A,c,i-c).slice().buffer;return new Promise(async(b,h)=>{await this.checkLoaderInitialized(),this.gltfLoader.parse(D,null,w=>{const f=n.getData("RTC_CENTER");f?(this.tempMatrix.makeTranslation(f[0],f[1],f[2]),w.scene.applyMatrix4(this.tempMatrix)):w.userData.gltfExtensions&&w.userData.gltfExtensions.CESIUM_RTC&&(this.tempMatrix.makeTranslation(w.userData.gltfExtensions.CESIUM_RTC.center[0],w.userData.gltfExtensions.CESIUM_RTC.center[1],w.userData.gltfExtensions.CESIUM_RTC.center[2]),w.scene.applyMatrix4(this.tempMatrix)),I&&w.scene.applyMatrix4(C.zUpToYUpMatrix),w.scene.asset=w.asset,w.scene.traverse(p=>{p.isMesh&&(Q&&p.applyMatrix4(C.zUpToYUpMatrix),g&&g(p))}),b(w.scene)},w=>{console.error(w)})})}checkLoaderInitialized=async()=>new Promise(A=>{const g=setInterval(()=>{this.gltfLoader.hasDracoLoader&&!this.gltfLoader.dracoLoader||this.gltfLoader.hasKTX2Loader&&!this.gltfLoader.ktx2Loader||(clearInterval(g),A())},10)});parseB3DMInstanced(A,g,I,Q,C){return this.parseB3DM(A,g,Q,C).then(E=>{let a,i=[],t=[];E.updateWorldMatrix(!1,!0),E.traverse(o=>{o.isMesh&&(o.geometry.applyMatrix4(o.matrixWorld),i.push(o.geometry),t.push(o.material))});let e=function(o){let r=new Set;return o.forEach(s=>{for(let c in s.attributes)r.add(c)}),o.forEach(s=>{r.forEach(c=>{if(!s.attributes[c]){const D=function(h){switch(h){case"position":case"normal":case"color":return 3;case"uv":case"uv2":return 2;default:throw new Error(`Unknown attribute ${h}`)}}(c),b=new Float32Array(D*s.getAttribute("position").count).fill(0);s.setAttribute(c,new V.BufferAttribute(b,D))}})}),function(s,c=!1){const D=s[0].index!==null,b=new Set(Object.keys(s[0].attributes)),h=new Set(Object.keys(s[0].morphAttributes)),w={},f={},p=s[0].morphTargetsRelative,R=new d.BufferGeometry;let U=0;for(let G=0;G<s.length;++G){const k=s[G];let J=0;if(D!==(k.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const m in k.attributes){if(!b.has(m))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+'. All geometries must have compatible attributes; make sure "'+m+'" attribute exists among all geometries, or in none of them.'),null;w[m]===void 0&&(w[m]=[]),w[m].push(k.attributes[m]),J++}if(J!==b.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". Make sure all geometries have the same number of attributes."),null;if(p!==k.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const m in k.morphAttributes){if(!h.has(m))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". .morphAttributes must be consistent throughout all geometries."),null;f[m]===void 0&&(f[m]=[]),f[m].push(k.morphAttributes[m])}if(c){let m;if(D)m=k.index.count;else{if(k.attributes.position===void 0)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". The geometry must have either an index or a position attribute"),null;m=k.attributes.position.count}R.addGroup(U,m,G),U+=m}}if(D){let G=0;const k=[];for(let J=0;J<s.length;++J){const m=s[J].index;for(let O=0;O<m.count;++O)k.push(m.getX(O)+G);G+=s[J].attributes.position.count}R.setIndex(k)}for(const G in w){const k=vQ(w[G]);if(!k)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+G+" attribute."),null;R.setAttribute(G,k)}for(const G in f){const k=f[G][0].length;if(k===0)break;R.morphAttributes=R.morphAttributes||{},R.morphAttributes[G]=[];for(let J=0;J<k;++J){const m=[];for(let X=0;X<f[G].length;++X)m.push(f[G][X][J]);const O=vQ(m);if(!O)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+G+" morphAttribute."),null;R.morphAttributes[G].push(O)}}return R}(o,!0)}(i);return a=new V.InstancedMesh(e,t,I),a.baseMatrix=new V.Matrix4().identity(),a})}}async function La(B={}){var A,g,I=B,Q=typeof window=="object",C=typeof WorkerGlobalScope<"u",E=typeof process=="object"&&((A=process.versions)==null?void 0:A.node)&&process.type!="renderer";if(E){const{createRequire:l}=await Promise.resolve().then(()=>Ha);var a=l(typeof document>"u"?require("url").pathToFileURL(__filename).href:cI&&cI.tagName.toUpperCase()==="SCRIPT"&&cI.src||new URL("threedtiles.cjs.js",document.baseURI).href)}var i,t="./this.program",e=typeof document>"u"?require("url").pathToFileURL(__filename).href:cI&&cI.tagName.toUpperCase()==="SCRIPT"&&cI.src||new URL("threedtiles.cjs.js",document.baseURI).href;if(E){var o=a("fs");e.startsWith("file:")&&a("path").dirname(a("url").fileURLToPath(e)),i=l=>(l=X(l)?new URL(l):l,o.readFileSync(l)),1<process.argv.length&&(t=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2)}else if(Q||C){try{new URL(".",e)}catch{}C&&(i=l=>{var u=new XMLHttpRequest;return u.open("GET",l,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)})}var r,n,s,c,D,b,h,w,f,p,R,U,G,k,J=console.log.bind(console),m=console.error.bind(console),O=!1,X=l=>l.startsWith("file://"),IA=!1;function AA(){var l=c.buffer;D=new Int8Array(l),h=new Int16Array(l),I.HEAPU8=b=new Uint8Array(l),w=new Uint16Array(l),f=new Int32Array(l),p=new Uint32Array(l),I.HEAPF32=R=new Float32Array(l),U=new Float64Array(l),G=new BigInt64Array(l),k=new BigUint64Array(l)}var Z,aA=0,uA=null;function nA(l){var u;throw(u=I.onAbort)==null||u.call(I,l),m(l="Aborted("+l+")"),O=!0,l=new WebAssembly.RuntimeError(l+". Build with -sASSERTIONS for more info."),s?.(l),l}async function MA(l){var u=Z;try{var y=await async function(F){if(!ArrayBuffer.isView(F))if(F==Z&&r)F=new Uint8Array(r);else{if(!i)throw"both async and sync fetching of the wasm failed";F=i(F)}return F}(u);return await WebAssembly.instantiate(y,l)}catch(F){m(`failed to asynchronously prepare wasm: ${F}`),nA(F)}}var lA=l=>{for(;0<l.length;)l.shift()(I)},eA=[],pA=[],hA=()=>{var l=I.preRun.shift();pA.push(l)},bA={},fA=l=>{for(;l.length;){var u=l.pop();l.pop()(u)}};function GA(l){return this.N(p[l>>2])}var tA={},rA={},LA={},KA=class extends Error{constructor(l){super(l),this.name="InternalError"}},ig=(l,u,y)=>{function F(W){if((W=y(W)).length!==l.length)throw new KA("Mismatched type converter count");for(var gA=0;gA<l.length;++gA)N(l[gA],W[gA])}l.forEach(W=>LA[W]=u);var S=Array(u.length),v=[],H=0;u.forEach((W,gA)=>{rA.hasOwnProperty(W)?S[gA]=rA[W]:(v.push(W),tA.hasOwnProperty(W)||(tA[W]=[]),tA[W].push(()=>{S[gA]=rA[W],++H===v.length&&F(S)}))}),v.length===0&&F(S)},vA=l=>{for(var u="";;){var y=b[l++];if(!y)return u;u+=String.fromCharCode(y)}},sA=class extends Error{constructor(l){super(l),this.name="BindingError"}},M=l=>{throw new sA(l)};function N(l,u,y={}){return function(F,S,v={}){var H=S.name;if(!F)throw new sA(`type "${H}" must have a positive integer typeid pointer`);if(rA.hasOwnProperty(F)){if(v.wa)return;throw new sA(`Cannot register type '${H}' twice`)}rA[F]=S,delete LA[F],tA.hasOwnProperty(F)&&(S=tA[F],delete tA[F],S.forEach(W=>W()))}(l,u,y)}var L=(l,u,y)=>{switch(u){case 1:return y?F=>D[F]:F=>b[F];case 2:return y?F=>h[F>>1]:F=>w[F>>1];case 4:return y?F=>f[F>>2]:F=>p[F>>2];case 8:return y?F=>G[F>>3]:F=>k[F>>3];default:throw new TypeError(`invalid integer width (${u}): ${l}`)}},x=l=>{throw new sA(l.L.P.M.name+" instance already deleted")},K=!1,T=()=>{},z=l=>typeof FinalizationRegistry>"u"?(z=u=>u,l):(K=new FinalizationRegistry(u=>{--(u=u.L).count.value,u.count.value===0&&(u.S?u.W.Y(u.S):u.P.M.Y(u.O))}),z=u=>{var y=u.L;return y.S&&K.register(u,{L:y},u),u},T=u=>{K.unregister(u)},z(l));function q(){}var $=(l,u)=>Object.defineProperty(u,"name",{value:l}),P={},FA=(l,u,y)=>{if(l[u].R===void 0){var F=l[u];l[u]=function(...S){if(!l[u].R.hasOwnProperty(S.length))throw new sA(`Function '${y}' called with an invalid number of arguments (${S.length}) - expects one of (${l[u].R})!`);return l[u].R[S.length].apply(this,S)},l[u].R=[],l[u].R[F.aa]=F}},DA=(l,u,y)=>{if(I.hasOwnProperty(l)){if(y===void 0||I[l].R!==void 0&&I[l].R[y]!==void 0)throw new sA(`Cannot register public name '${l}' twice`);if(FA(I,l,l),I[l].R.hasOwnProperty(y))throw new sA(`Cannot register multiple overloads of a function with the same number of arguments (${y})!`);I[l].R[y]=u}else I[l]=u,I[l].aa=y};function JA(l,u,y,F,S,v,H,W){this.name=l,this.constructor=u,this.$=y,this.Y=F,this.U=S,this.ra=v,this.ea=H,this.pa=W,this.ya=[]}var PA=(l,u,y)=>{for(;u!==y;){if(!u.ea)throw new sA(`Expected null or instance of ${y.name}, got an instance of ${u.name}`);l=u.ea(l),u=u.U}return l},Cg=l=>{if(l===null)return"null";var u=typeof l;return u==="object"||u==="array"||u==="function"?l.toString():""+l};function tg(l,u){if(u===null){if(this.ha)throw new sA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new sA(`Cannot pass "${Cg(u)}" as a ${this.name}`);if(!u.L.O)throw new sA(`Cannot pass deleted object as a pointer of type ${this.name}`);return PA(u.L.O,u.L.P.M,this.M)}function ug(l,u){if(u===null){if(this.ha)throw new sA(`null is not a valid ${this.name}`);if(this.ga){var y=this.ia();return l!==null&&l.push(this.Y,y),y}return 0}if(!u||!u.L)throw new sA(`Cannot pass "${Cg(u)}" as a ${this.name}`);if(!u.L.O)throw new sA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.fa&&u.L.P.fa)throw new sA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);if(y=PA(u.L.O,u.L.P.M,this.M),this.ga){if(u.L.S===void 0)throw new sA("Passing raw pointer to smart pointer is illegal");switch(this.Da){case 0:if(u.L.W!==this)throw new sA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);y=u.L.S;break;case 1:y=u.L.S;break;case 2:if(u.L.W===this)y=u.L.S;else{var F=u.clone();y=this.za(y,JI(()=>F.delete())),l!==null&&l.push(this.Y,y)}break;default:throw new sA("Unsupporting sharing policy")}}return y}function Yg(l,u){if(u===null){if(this.ha)throw new sA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new sA(`Cannot pass "${Cg(u)}" as a ${this.name}`);if(!u.L.O)throw new sA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(u.L.P.fa)throw new sA(`Cannot convert argument of type ${u.L.P.name} to parameter type ${this.name}`);return PA(u.L.O,u.L.P.M,this.M)}var gI=(l,u,y)=>u===y?l:y.U===void 0||(l=gI(l,u,y.U))===null?null:y.pa(l),kB={},oI=(l,u)=>{if(!u.P||!u.O)throw new KA("makeClassHandle requires ptr and ptrType");if(!!u.W!=!!u.S)throw new KA("Both smartPtrType and smartPtr must be specified");return u.count={value:1},z(Object.create(l,{L:{value:u,writable:!0}}))};function nI(l,u,y,F,S,v,H,W,gA,QA,BA){this.name=l,this.M=u,this.ha=y,this.fa=F,this.ga=S,this.xa=v,this.Da=H,this.na=W,this.ia=gA,this.za=QA,this.Y=BA,S||u.U!==void 0?this.T=ug:(this.T=F?tg:Yg,this.V=null)}var WI,PI=(l,u,y)=>{if(!I.hasOwnProperty(l))throw new KA("Replacing nonexistent public symbol");I[l].R!==void 0&&y!==void 0?I[l].R[y]=u:(I[l]=u,I[l].aa=y)},og=(l,u)=>{l=vA(l);var y=WI.get(u);if(typeof y!="function")throw new sA(`unknown function pointer with signature ${l}: ${u}`);return y};class UB extends Error{}var VI=l=>{l=HQ(l);var u=vA(l);return qg(l),u},rI=(l,u)=>{var y=[],F={};throw u.forEach(function S(v){F[v]||rA[v]||(LA[v]?LA[v].forEach(S):(y.push(v),F[v]=!0))}),new UB(`${l}: `+y.map(VI).join([", "]))},kI=(l,u)=>{for(var y=[],F=0;F<l;F++)y.push(p[u+4*F>>2]);return y};function zI(l){for(var u=1;u<l.length;++u)if(l[u]!==null&&l[u].V===void 0)return!0;return!1}function UI(l,u,y,F,S,v){var H=u.length;if(2>H)throw new sA("argTypes array size mismatch! Must at least get return value and 'this' types!");var W=u[1]!==null&&y!==null,gA=zI(u);y=!u[0].ma;var QA=u[0],BA=u[1];for(F=[l,M,F,S,fA,QA.N.bind(QA),BA?.T.bind(BA)],S=2;S<H;++S)QA=u[S],F.push(QA.T.bind(QA));if(!gA)for(S=W?1:2;S<u.length;++S)u[S].V!==null&&F.push(u[S].V);for(gA=zI(u),S=u.length-2,BA=[],QA=["fn"],W&&QA.push("thisWired"),H=0;H<S;++H)BA.push(`arg${H}`),QA.push(`arg${H}Wired`);BA=BA.join(","),QA=QA.join(","),BA=`return function (${BA}) {
|
|
6
|
+
*/class VC{constructor(){this._data=new Map,this._link=new Map,this._head=void 0,this._tail=void 0}put(A,g,I=!1){this.has(A)?this._data.set(A,g):(this._data.set(A,g),this._link.set(A,{previous:void 0,next:void 0}),this._head==null?(this._head=A,this._tail=A):I?(this._link.get(this._head).previous=A,this._link.get(A).next=this._head,this._head=A):(this._link.get(this._tail).next=A,this._link.get(A).previous=this._tail,this._tail=A))}head(){return{key:this._head,value:this.get(this._head),next:()=>this.next(this._head),previous:()=>null}}tail(){return{key:this._tail,value:this.get(this._tail),next:()=>null,previous:()=>this.previous(this._tail)}}get(A){return this._data.get(A)}previousKey(A){const g=this._link.get(A);return g?.previous}previousValue(A){return this.get(this.previousKey(A))}previous(A){const g=this.previousKey(A);return{key:g,value:this.get(g),next:()=>this.next(g),previous:()=>this.previous(g)}}nextKey(A){const g=this._link.get(A);return g?.next}nextValue(A){return this.get(this.nextKey(A))}next(A){const g=this.nextKey(A);return{key:g,value:this.get(g),next:()=>this.next(g),previous:()=>this.previous(g)}}remove(A){const g=this._data.get(A);if(g!=null)if(this.size()===1)this.reset();else{if(A===this._head){const I=this._link.get(this._head);this._link.get(I.next).previous=null,this._head=I.next}else if(A===this._tail){const I=this._link.get(this._tail);this._link.get(I.previous).next=null,this._tail=I.previous}else{const I=this._link.get(A),Q=this._link.get(I.previous),C=this._link.get(I.next);Q.next=I.next,C.previous=I.previous}this._link.delete(A),this._data.delete(A)}return g}has(A){return this._data.has(A)}size(){return this._data.size}reset(){this._data.clear(),this._link.clear(),this._head=void 0,this._tail=void 0}keys(){return this._data.keys()}values(){return this._data.values()}entries(){return this._data.entries()}toArray(A="orderByInsert"){if(A!=="orderByInsert"){const g=[];let I=this._head;for(;I!=null;)g.push({key:I,value:this.get(I)}),I=this.nextKey(I);return g}return Array.from(this.keys()).map(g=>({key:g,value:this.get(g)}))}}const ma=new TextDecoder;class zC{constructor(A,g,I,Q){this.buffer=A,this.binOffset=g+I,this.binLength=Q;let C=null;if(I!==0)try{const E=new Uint8Array(A,g,I);C=JSON.parse(ma.decode(E))}catch{C={}}else C={};this.header=C}getKeys(){return Object.keys(this.header)}getData(A,g,I=null,Q=null){const C=this.header;if(!(A in C))return null;const E=C[A];if(E instanceof Object){if(Array.isArray(E))return E;{const{buffer:a,binOffset:i,binLength:t}=this,e=E.byteOffset||0,o=E.type||Q,r=E.componentType||I;if("type"in E&&Q&&E.type!==Q)throw new Error("FeatureTable: Specified type does not match expected type.");let n,s;switch(o){case"SCALAR":n=1;break;case"VEC2":n=2;break;case"VEC3":n=3;break;case"VEC4":n=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${A}".`)}const c=i+e,D=g*n;switch(r){case"BYTE":s=new Int8Array(a,c,D);break;case"UNSIGNED_BYTE":s=new Uint8Array(a,c,D);break;case"SHORT":s=new Int16Array(a,c,D);break;case"UNSIGNED_SHORT":s=new Uint16Array(a,c,D);break;case"INT":s=new Int32Array(a,c,D);break;case"UNSIGNED_INT":s=new Uint32Array(a,c,D);break;case"FLOAT":s=new Float32Array(a,c,D);break;case"DOUBLE":s=new Float64Array(a,c,D);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${A}".`)}if(c+D*s.BYTES_PER_ELEMENT>i+t)throw new Error("FeatureTable: Feature data read outside binary body length.");return s}}return E}}class Sa extends zC{constructor(A,g,I,Q,C){super(A,I,Q,C),this.batchSize=g}getData(A,g=null,I=null){return super.getData(A,this.batchSize,g,I)}}function vQ(B){let A,g,I,Q=-1,C=0;for(let t=0;t<B.length;++t){const e=B[t];if(A===void 0&&(A=e.array.constructor),A!==e.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(g===void 0&&(g=e.itemSize),g!==e.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(I===void 0&&(I=e.normalized),I!==e.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(Q===-1&&(Q=e.gpuType),Q!==e.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;C+=e.count*g}const E=new A(C),a=new d.BufferAttribute(E,g,I);let i=0;for(let t=0;t<B.length;++t){const e=B[t];if(e.isInterleavedBufferAttribute){const o=i/g;for(let r=0,n=e.count;r<n;r++)for(let s=0;s<g;s++){const c=e.getComponent(r,s);a.setComponent(r+o,s,c)}}else E.set(e.array,i);i+=e.count*g}return Q!==void 0&&(a.gpuType=Q),a}function TQ(B,A){if(A===d.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),B;if(A===d.TriangleFanDrawMode||A===d.TriangleStripDrawMode){let g=B.getIndex();if(g===null){const E=[],a=B.getAttribute("position");if(a===void 0)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),B;for(let i=0;i<a.count;i++)E.push(i);B.setIndex(E),g=B.getIndex()}const I=g.count-2,Q=[];if(A===d.TriangleFanDrawMode)for(let E=1;E<=I;E++)Q.push(g.getX(0)),Q.push(g.getX(E)),Q.push(g.getX(E+1));else for(let E=0;E<I;E++)E%2==0?(Q.push(g.getX(E)),Q.push(g.getX(E+1)),Q.push(g.getX(E+2))):(Q.push(g.getX(E+2)),Q.push(g.getX(E+1)),Q.push(g.getX(E)));Q.length/3!==I&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const C=B.clone();return C.setIndex(Q),C.clearGroups(),C}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",A),B}class XC{constructor(A){this.gltfLoader=A,this.tempMatrix=new V.Matrix4,this.zUpToYUpMatrix=new V.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1)}parseB3DM(A,g,I,Q){const C=this,E=new DataView(A),a=String.fromCharCode(E.getUint8(0))+String.fromCharCode(E.getUint8(1))+String.fromCharCode(E.getUint8(2))+String.fromCharCode(E.getUint8(3));console.assert(a==="b3dm");const i=E.getUint32(8,!0);console.assert(i===A.byteLength);const t=E.getUint32(12,!0),e=E.getUint32(16,!0),o=E.getUint32(20,!0),r=E.getUint32(24,!0),n=new zC(A,28,t,e),s=28+t+e;new Sa(A,n.getData("BATCH_LENGTH"),s,o,r);const c=s+o+r,D=new Uint8Array(A,c,i-c).slice().buffer;return new Promise(async(b,h)=>{await this.checkLoaderInitialized(),this.gltfLoader.parse(D,null,w=>{const f=n.getData("RTC_CENTER");f?(this.tempMatrix.makeTranslation(f[0],f[1],f[2]),w.scene.applyMatrix4(this.tempMatrix)):w.userData.gltfExtensions&&w.userData.gltfExtensions.CESIUM_RTC&&(this.tempMatrix.makeTranslation(w.userData.gltfExtensions.CESIUM_RTC.center[0],w.userData.gltfExtensions.CESIUM_RTC.center[1],w.userData.gltfExtensions.CESIUM_RTC.center[2]),w.scene.applyMatrix4(this.tempMatrix)),I&&w.scene.applyMatrix4(C.zUpToYUpMatrix),w.scene.asset=w.asset,w.scene.traverse(p=>{p.isMesh&&(Q&&p.applyMatrix4(C.zUpToYUpMatrix),g&&g(p))}),b(w.scene)},w=>{console.error(w)})})}checkLoaderInitialized=async()=>new Promise(A=>{const g=setInterval(()=>{this.gltfLoader.hasDracoLoader&&!this.gltfLoader.dracoLoader||this.gltfLoader.hasKTX2Loader&&!this.gltfLoader.ktx2Loader||(clearInterval(g),A())},10)});parseB3DMInstanced(A,g,I,Q,C){return this.parseB3DM(A,g,Q,C).then(E=>{let a,i=[],t=[];E.updateWorldMatrix(!1,!0),E.traverse(o=>{o.isMesh&&(o.geometry.applyMatrix4(o.matrixWorld),i.push(o.geometry),t.push(o.material))});let e=function(o){let r=new Set;return o.forEach(s=>{for(let c in s.attributes)r.add(c)}),o.forEach(s=>{r.forEach(c=>{if(!s.attributes[c]){const D=function(h){switch(h){case"position":case"normal":case"color":return 3;case"uv":case"uv2":return 2;default:throw new Error(`Unknown attribute ${h}`)}}(c),b=new Float32Array(D*s.getAttribute("position").count).fill(0);s.setAttribute(c,new V.BufferAttribute(b,D))}})}),function(s,c=!1){const D=s[0].index!==null,b=new Set(Object.keys(s[0].attributes)),h=new Set(Object.keys(s[0].morphAttributes)),w={},f={},p=s[0].morphTargetsRelative,R=new d.BufferGeometry;let U=0;for(let G=0;G<s.length;++G){const k=s[G];let J=0;if(D!==(k.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const m in k.attributes){if(!b.has(m))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+'. All geometries must have compatible attributes; make sure "'+m+'" attribute exists among all geometries, or in none of them.'),null;w[m]===void 0&&(w[m]=[]),w[m].push(k.attributes[m]),J++}if(J!==b.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". Make sure all geometries have the same number of attributes."),null;if(p!==k.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const m in k.morphAttributes){if(!h.has(m))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". .morphAttributes must be consistent throughout all geometries."),null;f[m]===void 0&&(f[m]=[]),f[m].push(k.morphAttributes[m])}if(c){let m;if(D)m=k.index.count;else{if(k.attributes.position===void 0)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". The geometry must have either an index or a position attribute"),null;m=k.attributes.position.count}R.addGroup(U,m,G),U+=m}}if(D){let G=0;const k=[];for(let J=0;J<s.length;++J){const m=s[J].index;for(let O=0;O<m.count;++O)k.push(m.getX(O)+G);G+=s[J].attributes.position.count}R.setIndex(k)}for(const G in w){const k=vQ(w[G]);if(!k)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+G+" attribute."),null;R.setAttribute(G,k)}for(const G in f){const k=f[G][0].length;if(k===0)break;R.morphAttributes=R.morphAttributes||{},R.morphAttributes[G]=[];for(let J=0;J<k;++J){const m=[];for(let X=0;X<f[G].length;++X)m.push(f[G][X][J]);const O=vQ(m);if(!O)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+G+" morphAttribute."),null;R.morphAttributes[G].push(O)}}return R}(o,!0)}(i);return a=new V.InstancedMesh(e,t,I),a.baseMatrix=new V.Matrix4().identity(),a})}}async function La(B={}){var A,g,I=B,Q=typeof window=="object",C=typeof WorkerGlobalScope<"u",E=typeof process=="object"&&((A=process.versions)==null?void 0:A.node)&&process.type!="renderer";if(E){const{createRequire:l}=await Promise.resolve().then(()=>Ha);var a=l(typeof document>"u"?require("url").pathToFileURL(__filename).href:cI&&cI.tagName.toUpperCase()==="SCRIPT"&&cI.src||new URL("threedtiles.cjs.js",document.baseURI).href)}var i,t="./this.program",e=typeof document>"u"?require("url").pathToFileURL(__filename).href:cI&&cI.tagName.toUpperCase()==="SCRIPT"&&cI.src||new URL("threedtiles.cjs.js",document.baseURI).href;if(E){var o=a("fs");e.startsWith("file:")&&a("path").dirname(a("url").fileURLToPath(e)),i=l=>(l=X(l)?new URL(l):l,o.readFileSync(l)),1<process.argv.length&&(t=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2)}else if(Q||C){try{new URL(".",e)}catch{}C&&(i=l=>{var u=new XMLHttpRequest;return u.open("GET",l,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)})}var r,n,s,c,D,b,h,w,f,p,R,U,G,k,J=console.log.bind(console),m=console.error.bind(console),O=!1,X=l=>l.startsWith("file://"),IA=!1;function AA(){var l=c.buffer;D=new Int8Array(l),h=new Int16Array(l),I.HEAPU8=b=new Uint8Array(l),w=new Uint16Array(l),f=new Int32Array(l),p=new Uint32Array(l),I.HEAPF32=R=new Float32Array(l),U=new Float64Array(l),G=new BigInt64Array(l),k=new BigUint64Array(l)}var Z,aA=0,uA=null;function nA(l){var u;throw(u=I.onAbort)==null||u.call(I,l),m(l="Aborted("+l+")"),O=!0,l=new WebAssembly.RuntimeError(l+". Build with -sASSERTIONS for more info."),s?.(l),l}async function MA(l){var u=Z;try{var y=await async function(F){if(!ArrayBuffer.isView(F))if(F==Z&&r)F=new Uint8Array(r);else{if(!i)throw"both async and sync fetching of the wasm failed";F=i(F)}return F}(u);return await WebAssembly.instantiate(y,l)}catch(F){m(`failed to asynchronously prepare wasm: ${F}`),nA(F)}}var lA=l=>{for(;0<l.length;)l.shift()(I)},eA=[],pA=[],hA=()=>{var l=I.preRun.shift();pA.push(l)},bA={},fA=l=>{for(;l.length;){var u=l.pop();l.pop()(u)}};function GA(l){return this.N(p[l>>2])}var tA={},rA={},LA={},KA=class extends Error{constructor(l){super(l),this.name="InternalError"}},ig=(l,u,y)=>{function F(W){if((W=y(W)).length!==l.length)throw new KA("Mismatched type converter count");for(var gA=0;gA<l.length;++gA)N(l[gA],W[gA])}l.forEach(W=>LA[W]=u);var S=Array(u.length),v=[],H=0;u.forEach((W,gA)=>{rA.hasOwnProperty(W)?S[gA]=rA[W]:(v.push(W),tA.hasOwnProperty(W)||(tA[W]=[]),tA[W].push(()=>{S[gA]=rA[W],++H===v.length&&F(S)}))}),v.length===0&&F(S)},vA=l=>{for(var u="";;){var y=b[l++];if(!y)return u;u+=String.fromCharCode(y)}},sA=class extends Error{constructor(l){super(l),this.name="BindingError"}},M=l=>{throw new sA(l)};function N(l,u,y={}){return function(F,S,v={}){var H=S.name;if(!F)throw new sA(`type "${H}" must have a positive integer typeid pointer`);if(rA.hasOwnProperty(F)){if(v.wa)return;throw new sA(`Cannot register type '${H}' twice`)}rA[F]=S,delete LA[F],tA.hasOwnProperty(F)&&(S=tA[F],delete tA[F],S.forEach(W=>W()))}(l,u,y)}var L=(l,u,y)=>{switch(u){case 1:return y?F=>D[F]:F=>b[F];case 2:return y?F=>h[F>>1]:F=>w[F>>1];case 4:return y?F=>f[F>>2]:F=>p[F>>2];case 8:return y?F=>G[F>>3]:F=>k[F>>3];default:throw new TypeError(`invalid integer width (${u}): ${l}`)}},x=l=>{throw new sA(l.L.P.M.name+" instance already deleted")},K=!1,T=()=>{},z=l=>typeof FinalizationRegistry>"u"?(z=u=>u,l):(K=new FinalizationRegistry(u=>{--(u=u.L).count.value,u.count.value===0&&(u.S?u.W.Y(u.S):u.P.M.Y(u.O))}),z=u=>{var y=u.L;return y.S&&K.register(u,{L:y},u),u},T=u=>{K.unregister(u)},z(l));function q(){}var $=(l,u)=>Object.defineProperty(u,"name",{value:l}),P={},FA=(l,u,y)=>{if(l[u].R===void 0){var F=l[u];l[u]=function(...S){if(!l[u].R.hasOwnProperty(S.length))throw new sA(`Function '${y}' called with an invalid number of arguments (${S.length}) - expects one of (${l[u].R})!`);return l[u].R[S.length].apply(this,S)},l[u].R=[],l[u].R[F.aa]=F}},DA=(l,u,y)=>{if(I.hasOwnProperty(l)){if(y===void 0||I[l].R!==void 0&&I[l].R[y]!==void 0)throw new sA(`Cannot register public name '${l}' twice`);if(FA(I,l,l),I[l].R.hasOwnProperty(y))throw new sA(`Cannot register multiple overloads of a function with the same number of arguments (${y})!`);I[l].R[y]=u}else I[l]=u,I[l].aa=y};function JA(l,u,y,F,S,v,H,W){this.name=l,this.constructor=u,this.$=y,this.Y=F,this.U=S,this.ra=v,this.ea=H,this.pa=W,this.ya=[]}var PA=(l,u,y)=>{for(;u!==y;){if(!u.ea)throw new sA(`Expected null or instance of ${y.name}, got an instance of ${u.name}`);l=u.ea(l),u=u.U}return l},Cg=l=>{if(l===null)return"null";var u=typeof l;return u==="object"||u==="array"||u==="function"?l.toString():""+l};function tg(l,u){if(u===null){if(this.ha)throw new sA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new sA(`Cannot pass "${Cg(u)}" as a ${this.name}`);if(!u.L.O)throw new sA(`Cannot pass deleted object as a pointer of type ${this.name}`);return PA(u.L.O,u.L.P.M,this.M)}function ug(l,u){if(u===null){if(this.ha)throw new sA(`null is not a valid ${this.name}`);if(this.ga){var y=this.ia();return l!==null&&l.push(this.Y,y),y}return 0}if(!u||!u.L)throw new sA(`Cannot pass "${Cg(u)}" as a ${this.name}`);if(!u.L.O)throw new sA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.fa&&u.L.P.fa)throw new sA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);if(y=PA(u.L.O,u.L.P.M,this.M),this.ga){if(u.L.S===void 0)throw new sA("Passing raw pointer to smart pointer is illegal");switch(this.Da){case 0:if(u.L.W!==this)throw new sA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);y=u.L.S;break;case 1:y=u.L.S;break;case 2:if(u.L.W===this)y=u.L.S;else{var F=u.clone();y=this.za(y,JI(()=>F.delete())),l!==null&&l.push(this.Y,y)}break;default:throw new sA("Unsupporting sharing policy")}}return y}function Yg(l,u){if(u===null){if(this.ha)throw new sA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new sA(`Cannot pass "${Cg(u)}" as a ${this.name}`);if(!u.L.O)throw new sA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(u.L.P.fa)throw new sA(`Cannot convert argument of type ${u.L.P.name} to parameter type ${this.name}`);return PA(u.L.O,u.L.P.M,this.M)}var AI=(l,u,y)=>u===y?l:y.U===void 0||(l=AI(l,u,y.U))===null?null:y.pa(l),kB={},oI=(l,u)=>{if(!u.P||!u.O)throw new KA("makeClassHandle requires ptr and ptrType");if(!!u.W!=!!u.S)throw new KA("Both smartPtrType and smartPtr must be specified");return u.count={value:1},z(Object.create(l,{L:{value:u,writable:!0}}))};function nI(l,u,y,F,S,v,H,W,gA,QA,BA){this.name=l,this.M=u,this.ha=y,this.fa=F,this.ga=S,this.xa=v,this.Da=H,this.na=W,this.ia=gA,this.za=QA,this.Y=BA,S||u.U!==void 0?this.T=ug:(this.T=F?tg:Yg,this.V=null)}var WI,PI=(l,u,y)=>{if(!I.hasOwnProperty(l))throw new KA("Replacing nonexistent public symbol");I[l].R!==void 0&&y!==void 0?I[l].R[y]=u:(I[l]=u,I[l].aa=y)},og=(l,u)=>{l=vA(l);var y=WI.get(u);if(typeof y!="function")throw new sA(`unknown function pointer with signature ${l}: ${u}`);return y};class UB extends Error{}var VI=l=>{l=HQ(l);var u=vA(l);return qg(l),u},rI=(l,u)=>{var y=[],F={};throw u.forEach(function S(v){F[v]||rA[v]||(LA[v]?LA[v].forEach(S):(y.push(v),F[v]=!0))}),new UB(`${l}: `+y.map(VI).join([", "]))},kI=(l,u)=>{for(var y=[],F=0;F<l;F++)y.push(p[u+4*F>>2]);return y};function zI(l){for(var u=1;u<l.length;++u)if(l[u]!==null&&l[u].V===void 0)return!0;return!1}function UI(l,u,y,F,S,v){var H=u.length;if(2>H)throw new sA("argTypes array size mismatch! Must at least get return value and 'this' types!");var W=u[1]!==null&&y!==null,gA=zI(u);y=!u[0].ma;var QA=u[0],BA=u[1];for(F=[l,M,F,S,fA,QA.N.bind(QA),BA?.T.bind(BA)],S=2;S<H;++S)QA=u[S],F.push(QA.T.bind(QA));if(!gA)for(S=W?1:2;S<u.length;++S)u[S].V!==null&&F.push(u[S].V);for(gA=zI(u),S=u.length-2,BA=[],QA=["fn"],W&&QA.push("thisWired"),H=0;H<S;++H)BA.push(`arg${H}`),QA.push(`arg${H}Wired`);BA=BA.join(","),QA=QA.join(","),BA=`return function (${BA}) {
|
|
7
7
|
`,gA&&(BA+=`var destructors = [];
|
|
8
8
|
`);var RA=gA?"destructors":"null",rg="humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");for(W&&(BA+=`var thisWired = toClassParamWire(${RA}, this);
|
|
9
9
|
`),H=0;H<S;++H){var gg=`toArg${H}Wire`;BA+=`var arg${H}Wired = ${gg}(${RA}, arg${H});
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
`,rg.push(`${v}_dtor`));return y&&(BA+=`var ret = fromRetWire(rv);
|
|
14
14
|
return ret;
|
|
15
15
|
`),u=new Function(rg,BA+`}
|
|
16
|
-
`)(...F),$(l,u)}for(var mI,XI=l=>{const u=(l=l.trim()).indexOf("(");return u===-1?l:l.slice(0,u)},ZI=[],xg=[0,1,,1,null,1,!0,1,!1,1],SI=l=>{9<l&&--xg[l+1]==0&&(xg[l]=void 0,ZI.push(l))},LI=l=>{if(!l)throw new sA(`Cannot use deleted val. handle = ${l}`);return xg[l]},JI=l=>{switch(l){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const u=ZI.pop()||xg.length;return xg[u]=l,xg[u+1]=1,u}},_I={name:"emscripten::val",N:l=>{var u=LI(l);return SI(l),u},T:(l,u)=>JI(u),X:GA,V:null},mB=(l,u,y)=>{switch(u){case 1:return y?function(F){return this.N(D[F])}:function(F){return this.N(b[F])};case 2:return y?function(F){return this.N(h[F>>1])}:function(F){return this.N(w[F>>1])};case 4:return y?function(F){return this.N(f[F>>2])}:function(F){return this.N(p[F>>2])};default:throw new TypeError(`invalid integer width (${u}): ${l}`)}},$I=(l,u)=>{var y=rA[l];if(y===void 0)throw l=`${u} has unknown type ${VI(l)}`,new sA(l);return y},SB=(l,u)=>{switch(u){case 4:return function(y){return this.N(R[y>>2])};case 8:return function(y){return this.N(U[y>>3])};default:throw new TypeError(`invalid float width (${u}): ${l}`)}},LB=Object.assign({optional:!0},_I),Hg=(l,u,y)=>{var F=b;if(!(0<y))return 0;var S=u;y=u+y-1;for(var v=0;v<l.length;++v){var H=l.codePointAt(v);if(127>=H){if(u>=y)break;F[u++]=H}else if(2047>=H){if(u+1>=y)break;F[u++]=192|H>>6,F[u++]=128|63&H}else if(65535>=H){if(u+2>=y)break;F[u++]=224|H>>12,F[u++]=128|H>>6&63,F[u++]=128|63&H}else{if(u+3>=y)break;F[u++]=240|H>>18,F[u++]=128|H>>12&63,F[u++]=128|H>>6&63,F[u++]=128|63&H,v++}}return F[u]=0,u-S},AB=l=>{for(var u=0,y=0;y<l.length;++y){var F=l.charCodeAt(y);127>=F?u++:2047>=F?u+=2:55296<=F&&57343>=F?(u+=4,++y):u+=3}return u},gB=new TextDecoder,YI=(l,u,y,F)=>{if(y=u+y,F)return y;for(;l[u]&&!(u>=y);)++u;return u},II=new TextDecoder("utf-16le"),cA=(l,u,y)=>(l>>=1,II.decode(w.subarray(l,YI(w,l,u/2,y)))),ng=(l,u,y)=>{if(y??(y=2147483647),2>y)return 0;var F=u;y=(y-=2)<2*l.length?y/2:l.length;for(var S=0;S<y;++S)h[u>>1]=l.charCodeAt(S),u+=2;return h[u>>1]=0,u-F},xI=l=>2*l.length,Kg=(l,u,y)=>{var F="";l>>=2;for(var S=0;!(S>=u/4);S++){var v=p[l+S];if(!v&&!y)break;F+=String.fromCodePoint(v)}return F},BI=(l,u,y)=>{if(y??(y=2147483647),4>y)return 0;var F=u;y=F+y-4;for(var S=0;S<l.length;++S){var v=l.codePointAt(S);if(65535<v&&S++,f[u>>2]=v,(u+=4)+4>y)break}return f[u>>2]=0,u-F},JB=l=>{for(var u=0,y=0;y<l.length;++y)65535<l.codePointAt(y)&&y++,u+=4;return u},YB=[],Ga=(l,u,y)=>{var F=[];return l=l(F,y),F.length&&(p[u>>2]=JI(F)),l},Ra={},pa=l=>{var u=Ra[l];return u===void 0?vA(l):u},xB={},xQ=()=>{if(!mI){var l,u={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8",_:t||"./this.program"};for(l in xB)xB[l]===void 0?delete u[l]:u[l]=xB[l];var y=[];for(l in u)y.push(`${l}=${u[l]}`);mI=y}return mI},Na=[null,[],[]],kg=new Uint8Array(123),jg=25;0<=jg;--jg)kg[48+jg]=52+jg,kg[65+jg]=jg,kg[97+jg]=26+jg;kg[43]=62,kg[47]=63,(()=>{let l=q.prototype;Object.assign(l,{isAliasOf:function(y){if(!(this instanceof q&&y instanceof q))return!1;var F=this.L.P.M,S=this.L.O;y.L=y.L;var v=y.L.P.M;for(y=y.L.O;F.U;)S=F.ea(S),F=F.U;for(;v.U;)y=v.ea(y),v=v.U;return F===v&&S===y},clone:function(){if(this.L.O||x(this),this.L.da)return this.L.count.value+=1,this;var y=z,F=Object,S=F.create,v=Object.getPrototypeOf(this),H=this.L;return(y=y(S.call(F,v,{L:{value:{count:H.count,ba:H.ba,da:H.da,O:H.O,P:H.P,S:H.S,W:H.W}}}))).L.count.value+=1,y.L.ba=!1,y},delete(){if(this.L.O||x(this),this.L.ba&&!this.L.da)throw new sA("Object already scheduled for deletion");T(this);var y=this.L;--y.count.value,y.count.value===0&&(y.S?y.W.Y(y.S):y.P.M.Y(y.O)),this.L.da||(this.L.S=void 0,this.L.O=void 0)},isDeleted:function(){return!this.L.O},deleteLater:function(){if(this.L.O||x(this),this.L.ba&&!this.L.da)throw new sA("Object already scheduled for deletion");return this.L.ba=!0,this}});const u=Symbol.dispose;u&&(l[u]=l.delete)})(),Object.assign(nI.prototype,{sa(l){return this.na&&(l=this.na(l)),l},ka(l){var u;(u=this.Y)==null||u.call(this,l)},X:GA,N:function(l){function u(){return this.ga?oI(this.M.$,{P:this.xa,O:y,W:this,S:l}):oI(this.M.$,{P:this,O:l})}var y=this.sa(l);if(!y)return this.ka(l),null;var F=((v,H)=>{if(H===void 0)throw new sA("ptr should not be undefined");for(;v.U;)H=v.ea(H),v=v.U;return kB[H]})(this.M,y);if(F!==void 0)return F.L.count.value===0?(F.L.O=y,F.L.S=l,F.clone()):(F=F.clone(),this.ka(l),F);if(F=this.M.ra(y),!(F=P[F]))return u.call(this);F=this.fa?F.oa:F.pointerType;var S=gI(y,this.M,F.M);return S===null?u.call(this):this.ga?oI(F.M.$,{P:F,O:S,W:this,S:l}):oI(F.M.$,{P:F,O:S})}}),I.print&&(J=I.print),I.printErr&&(m=I.printErr),I.wasmBinary&&(r=I.wasmBinary),I.thisProgram&&(t=I.thisProgram);var HQ,HB,qg,ka={x:()=>nA(""),q:l=>{var u=bA[l];delete bA[l];var y=u.ia,F=u.Y,S=u.la,v=S.map(H=>H.va).concat(S.map(H=>H.Ba));ig([l],v,H=>{var W={};return S.forEach((gA,QA)=>{var BA=H[QA],RA=gA.ta,rg=gA.ua,gg=H[QA+S.length],TA=gA.Aa,Ig=gA.Ca;W[gA.qa]={read:Ug=>BA.N(RA(rg,Ug)),write:(Ug,HI)=>{var vg=[];TA(Ig,Ug,gg.T(vg,HI)),fA(vg)},optional:H[QA].optional}}),[{name:u.name,N:gA=>{var QA,BA={};for(QA in W)BA[QA]=W[QA].read(gA);return F(gA),BA},T:(gA,QA)=>{for(var BA in W)if(!(BA in QA)&&!W[BA].optional)throw new TypeError(`Missing field: "${BA}"`);var RA=y();for(BA in W)W[BA].write(RA,QA[BA]);return gA!==null&&gA.push(F,RA),RA},X:GA,V:F}]})},n:(l,u,y,F,S)=>{u=vA(u);let v=H=>H;if(F=F===0n){const H=8*y;v=W=>BigInt.asUintN(H,W),S=v(S)}N(l,{name:u,N:v,T:(H,W)=>(typeof W=="number"&&(W=BigInt(W)),W),X:L(u,y,!F),V:null})},B:(l,u,y,F)=>{N(l,{name:u=vA(u),N:function(S){return!!S},T:function(S,v){return v?y:F},X:function(S){return this.N(b[S])},V:null})},j:(l,u,y,F,S,v,H,W,gA,QA,BA,RA,rg)=>{BA=vA(BA),v=og(S,v),W&&(W=og(H,W)),QA&&(QA=og(gA,QA)),rg=og(RA,rg);var gg=(TA=>{var Ig=(TA=TA.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=Ig&&57>=Ig?`_${TA}`:TA})(BA);DA(gg,function(){rI(`Cannot construct ${BA} due to unbound types`,[F])}),ig([l,u,y],F?[F]:[],TA=>{if(TA=TA[0],F)var Ig=TA.M,Ug=Ig.$;else Ug=q.prototype;TA=$(BA,function(...KB){if(Object.getPrototypeOf(this)!==HI)throw new sA(`Use 'new' to construct ${BA}`);if(yg.Z===void 0)throw new sA(`${BA} has no accessible constructor`);var KQ=yg.Z[KB.length];if(KQ===void 0)throw new sA(`Tried to invoke ctor of ${BA} with invalid number of parameters (${KB.length}) - expected (${Object.keys(yg.Z).toString()}) parameters instead!`);return KQ.apply(this,KB)});var HI=Object.create(Ug,{constructor:{value:TA}});TA.prototype=HI;var vg,yg=new JA(BA,TA,HI,rg,Ig,v,W,QA);return yg.U&&((vg=yg.U).ja??(vg.ja=[]),yg.U.ja.push(yg)),Ig=new nI(BA,yg,!0,!1,!1),vg=new nI(BA+"*",yg,!1,!1,!1),Ug=new nI(BA+" const*",yg,!1,!0,!1),P[l]={pointerType:vg,oa:Ug},PI(gg,TA),[Ig,vg,Ug]})},g:(l,u,y,F,S,v)=>{var H=kI(u,y);S=og(F,S),ig([],[l],W=>{var gA=`constructor ${(W=W[0]).name}`;if(W.M.Z===void 0&&(W.M.Z=[]),W.M.Z[u-1]!==void 0)throw new sA(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${W.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return W.M.Z[u-1]=()=>{rI(`Cannot construct ${W.name} due to unbound types`,H)},ig([],H,QA=>(QA.splice(1,0,null),W.M.Z[u-1]=UI(gA,QA,null,S,v),[])),[]})},b:(l,u,y,F,S,v,H,W,gA)=>{var QA=kI(y,F);u=vA(u),u=XI(u),v=og(S,v),ig([],[l],BA=>{function RA(){rI(`Cannot call ${rg} due to unbound types`,QA)}var rg=`${(BA=BA[0]).name}.${u}`;u.startsWith("@@")&&(u=Symbol[u.substring(2)]),W&&BA.M.ya.push(u);var gg=BA.M.$,TA=gg[u];return TA===void 0||TA.R===void 0&&TA.className!==BA.name&&TA.aa===y-2?(RA.aa=y-2,RA.className=BA.name,gg[u]=RA):(FA(gg,u,rg),gg[u].R[y-2]=RA),ig([],QA,Ig=>(Ig=UI(rg,Ig,BA,v,H,gA),gg[u].R===void 0?(Ig.aa=y-2,gg[u]=Ig):gg[u].R[y-2]=Ig,[])),[]})},z:l=>N(l,_I),r:(l,u,y,F)=>{function S(){}u=vA(u),S.values={},N(l,{name:u,constructor:S,N:function(v){return this.constructor.values[v]},T:(v,H)=>H.value,X:mB(u,y,F),V:null}),DA(u,S)},d:(l,u,y)=>{var F=$I(l,"enum");u=vA(u),l=F.constructor,F=Object.create(F.constructor.prototype,{value:{value:y},constructor:{value:$(`${F.name}_${u}`,function(){})}}),l.values[y]=F,l[u]=F},m:(l,u,y)=>{N(l,{name:u=vA(u),N:F=>F,T:(F,S)=>S,X:SB(u,y),V:null})},l:(l,u,y,F,S,v,H)=>{var W=kI(u,y);l=vA(l),l=XI(l),S=og(F,S),DA(l,function(){rI(`Cannot call ${l} due to unbound types`,W)},u-1),ig([],W,gA=>(gA=[gA[0],null].concat(gA.slice(1)),PI(l,UI(l,gA,null,S,v,H),u-1),[]))},c:(l,u,y,F,S)=>{u=vA(u);let v=W=>W;if(F===0){var H=32-8*y;v=W=>W<<H>>>H,S=v(S)}N(l,{name:u,N:v,T:(W,gA)=>gA,X:L(u,y,F!==0),V:null})},a:(l,u,y)=>{function F(v){return new S(D.buffer,p[v+4>>2],p[v>>2])}var S=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][u];N(l,{name:y=vA(y),N:F,X:F},{wa:!0})},h:l=>{N(l,LB)},A:(l,u)=>{N(l,{name:u=vA(u),N(y){var F=(F=y+4)?gB.decode(b.subarray(F,YI(b,F,p[y>>2],!0))):"";return qg(y),F},T(y,F){F instanceof ArrayBuffer&&(F=new Uint8Array(F));var S=typeof F=="string";if(!(S||ArrayBuffer.isView(F)&&F.BYTES_PER_ELEMENT==1))throw new sA("Cannot pass non-string to std::string");var v=S?AB(F):F.length,H=HB(4+v+1),W=H+4;return p[H>>2]=v,S?Hg(F,W,v+1):b.set(F,W),y!==null&&y.push(qg,H),H},X:GA,V(y){qg(y)}})},f:(l,u,y)=>{if(y=vA(y),u===2)var F=cA,S=ng,v=xI;else F=Kg,S=BI,v=JB;N(l,{name:y,N:H=>{var W=F(H+4,p[H>>2]*u,!0);return qg(H),W},T:(H,W)=>{if(typeof W!="string")throw new sA(`Cannot pass non-string to C++ string type ${y}`);var gA=v(W),QA=HB(4+gA+u);return p[QA>>2]=gA/u,S(W,QA+4,gA+u),H!==null&&H.push(qg,QA),QA},X:GA,V(H){qg(H)}})},i:(l,u,y,F,S,v)=>{bA[l]={name:vA(u),ia:og(y,F),Y:og(S,v),la:[]}},e:(l,u,y,F,S,v,H,W,gA,QA)=>{bA[l].la.push({qa:vA(u),va:y,ta:og(F,S),ua:v,Ba:H,Aa:og(W,gA),Ca:QA})},C:(l,u)=>{N(l,{ma:!0,name:u=vA(u),N:()=>{},T:()=>{}})},p:(l,u,y)=>{var[F,...S]=((gA,QA)=>{for(var BA=Array(gA),RA=0;RA<gA;++RA)BA[RA]=$I(p[QA+4*RA>>2],`parameter ${RA}`);return BA})(l,u);u=F.T.bind(F);var v=S.map(gA=>gA.X.bind(gA));l--;var H={toValue:LI};switch(l=v.map((gA,QA)=>{var BA=`argFromPtr${QA}`;return H[BA]=gA,`${BA}(args${QA?"+"+8*QA:""})`}),y){case 0:var W="toValue(handle)";break;case 2:W="new (toValue(handle))";break;case 3:W="";break;case 1:H.getStringOrSymbol=pa,W="toValue(handle)[getStringOrSymbol(methodName)]"}return W+=`(${l})`,F.ma||(H.toReturnWire=u,H.emval_returnValue=Ga,W=`return emval_returnValue(toReturnWire, destructorsRef, ${W})`),W=`return function (handle, methodName, destructorsRef, args) {
|
|
16
|
+
`)(...F),$(l,u)}for(var mI,XI=l=>{const u=(l=l.trim()).indexOf("(");return u===-1?l:l.slice(0,u)},ZI=[],xg=[0,1,,1,null,1,!0,1,!1,1],SI=l=>{9<l&&--xg[l+1]==0&&(xg[l]=void 0,ZI.push(l))},LI=l=>{if(!l)throw new sA(`Cannot use deleted val. handle = ${l}`);return xg[l]},JI=l=>{switch(l){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const u=ZI.pop()||xg.length;return xg[u]=l,xg[u+1]=1,u}},_I={name:"emscripten::val",N:l=>{var u=LI(l);return SI(l),u},T:(l,u)=>JI(u),X:GA,V:null},mB=(l,u,y)=>{switch(u){case 1:return y?function(F){return this.N(D[F])}:function(F){return this.N(b[F])};case 2:return y?function(F){return this.N(h[F>>1])}:function(F){return this.N(w[F>>1])};case 4:return y?function(F){return this.N(f[F>>2])}:function(F){return this.N(p[F>>2])};default:throw new TypeError(`invalid integer width (${u}): ${l}`)}},$I=(l,u)=>{var y=rA[l];if(y===void 0)throw l=`${u} has unknown type ${VI(l)}`,new sA(l);return y},SB=(l,u)=>{switch(u){case 4:return function(y){return this.N(R[y>>2])};case 8:return function(y){return this.N(U[y>>3])};default:throw new TypeError(`invalid float width (${u}): ${l}`)}},LB=Object.assign({optional:!0},_I),Hg=(l,u,y)=>{var F=b;if(!(0<y))return 0;var S=u;y=u+y-1;for(var v=0;v<l.length;++v){var H=l.codePointAt(v);if(127>=H){if(u>=y)break;F[u++]=H}else if(2047>=H){if(u+1>=y)break;F[u++]=192|H>>6,F[u++]=128|63&H}else if(65535>=H){if(u+2>=y)break;F[u++]=224|H>>12,F[u++]=128|H>>6&63,F[u++]=128|63&H}else{if(u+3>=y)break;F[u++]=240|H>>18,F[u++]=128|H>>12&63,F[u++]=128|H>>6&63,F[u++]=128|63&H,v++}}return F[u]=0,u-S},AB=l=>{for(var u=0,y=0;y<l.length;++y){var F=l.charCodeAt(y);127>=F?u++:2047>=F?u+=2:55296<=F&&57343>=F?(u+=4,++y):u+=3}return u},gB=new TextDecoder,YI=(l,u,y,F)=>{if(y=u+y,F)return y;for(;l[u]&&!(u>=y);)++u;return u},gI=new TextDecoder("utf-16le"),cA=(l,u,y)=>(l>>=1,gI.decode(w.subarray(l,YI(w,l,u/2,y)))),ng=(l,u,y)=>{if(y??(y=2147483647),2>y)return 0;var F=u;y=(y-=2)<2*l.length?y/2:l.length;for(var S=0;S<y;++S)h[u>>1]=l.charCodeAt(S),u+=2;return h[u>>1]=0,u-F},xI=l=>2*l.length,Kg=(l,u,y)=>{var F="";l>>=2;for(var S=0;!(S>=u/4);S++){var v=p[l+S];if(!v&&!y)break;F+=String.fromCodePoint(v)}return F},II=(l,u,y)=>{if(y??(y=2147483647),4>y)return 0;var F=u;y=F+y-4;for(var S=0;S<l.length;++S){var v=l.codePointAt(S);if(65535<v&&S++,f[u>>2]=v,(u+=4)+4>y)break}return f[u>>2]=0,u-F},JB=l=>{for(var u=0,y=0;y<l.length;++y)65535<l.codePointAt(y)&&y++,u+=4;return u},YB=[],Ga=(l,u,y)=>{var F=[];return l=l(F,y),F.length&&(p[u>>2]=JI(F)),l},Ra={},pa=l=>{var u=Ra[l];return u===void 0?vA(l):u},xB={},xQ=()=>{if(!mI){var l,u={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8",_:t||"./this.program"};for(l in xB)xB[l]===void 0?delete u[l]:u[l]=xB[l];var y=[];for(l in u)y.push(`${l}=${u[l]}`);mI=y}return mI},Na=[null,[],[]],kg=new Uint8Array(123),jg=25;0<=jg;--jg)kg[48+jg]=52+jg,kg[65+jg]=jg,kg[97+jg]=26+jg;kg[43]=62,kg[47]=63,(()=>{let l=q.prototype;Object.assign(l,{isAliasOf:function(y){if(!(this instanceof q&&y instanceof q))return!1;var F=this.L.P.M,S=this.L.O;y.L=y.L;var v=y.L.P.M;for(y=y.L.O;F.U;)S=F.ea(S),F=F.U;for(;v.U;)y=v.ea(y),v=v.U;return F===v&&S===y},clone:function(){if(this.L.O||x(this),this.L.da)return this.L.count.value+=1,this;var y=z,F=Object,S=F.create,v=Object.getPrototypeOf(this),H=this.L;return(y=y(S.call(F,v,{L:{value:{count:H.count,ba:H.ba,da:H.da,O:H.O,P:H.P,S:H.S,W:H.W}}}))).L.count.value+=1,y.L.ba=!1,y},delete(){if(this.L.O||x(this),this.L.ba&&!this.L.da)throw new sA("Object already scheduled for deletion");T(this);var y=this.L;--y.count.value,y.count.value===0&&(y.S?y.W.Y(y.S):y.P.M.Y(y.O)),this.L.da||(this.L.S=void 0,this.L.O=void 0)},isDeleted:function(){return!this.L.O},deleteLater:function(){if(this.L.O||x(this),this.L.ba&&!this.L.da)throw new sA("Object already scheduled for deletion");return this.L.ba=!0,this}});const u=Symbol.dispose;u&&(l[u]=l.delete)})(),Object.assign(nI.prototype,{sa(l){return this.na&&(l=this.na(l)),l},ka(l){var u;(u=this.Y)==null||u.call(this,l)},X:GA,N:function(l){function u(){return this.ga?oI(this.M.$,{P:this.xa,O:y,W:this,S:l}):oI(this.M.$,{P:this,O:l})}var y=this.sa(l);if(!y)return this.ka(l),null;var F=((v,H)=>{if(H===void 0)throw new sA("ptr should not be undefined");for(;v.U;)H=v.ea(H),v=v.U;return kB[H]})(this.M,y);if(F!==void 0)return F.L.count.value===0?(F.L.O=y,F.L.S=l,F.clone()):(F=F.clone(),this.ka(l),F);if(F=this.M.ra(y),!(F=P[F]))return u.call(this);F=this.fa?F.oa:F.pointerType;var S=AI(y,this.M,F.M);return S===null?u.call(this):this.ga?oI(F.M.$,{P:F,O:S,W:this,S:l}):oI(F.M.$,{P:F,O:S})}}),I.print&&(J=I.print),I.printErr&&(m=I.printErr),I.wasmBinary&&(r=I.wasmBinary),I.thisProgram&&(t=I.thisProgram);var HQ,HB,qg,ka={x:()=>nA(""),q:l=>{var u=bA[l];delete bA[l];var y=u.ia,F=u.Y,S=u.la,v=S.map(H=>H.va).concat(S.map(H=>H.Ba));ig([l],v,H=>{var W={};return S.forEach((gA,QA)=>{var BA=H[QA],RA=gA.ta,rg=gA.ua,gg=H[QA+S.length],TA=gA.Aa,Ig=gA.Ca;W[gA.qa]={read:Ug=>BA.N(RA(rg,Ug)),write:(Ug,HI)=>{var vg=[];TA(Ig,Ug,gg.T(vg,HI)),fA(vg)},optional:H[QA].optional}}),[{name:u.name,N:gA=>{var QA,BA={};for(QA in W)BA[QA]=W[QA].read(gA);return F(gA),BA},T:(gA,QA)=>{for(var BA in W)if(!(BA in QA)&&!W[BA].optional)throw new TypeError(`Missing field: "${BA}"`);var RA=y();for(BA in W)W[BA].write(RA,QA[BA]);return gA!==null&&gA.push(F,RA),RA},X:GA,V:F}]})},n:(l,u,y,F,S)=>{u=vA(u);let v=H=>H;if(F=F===0n){const H=8*y;v=W=>BigInt.asUintN(H,W),S=v(S)}N(l,{name:u,N:v,T:(H,W)=>(typeof W=="number"&&(W=BigInt(W)),W),X:L(u,y,!F),V:null})},B:(l,u,y,F)=>{N(l,{name:u=vA(u),N:function(S){return!!S},T:function(S,v){return v?y:F},X:function(S){return this.N(b[S])},V:null})},j:(l,u,y,F,S,v,H,W,gA,QA,BA,RA,rg)=>{BA=vA(BA),v=og(S,v),W&&(W=og(H,W)),QA&&(QA=og(gA,QA)),rg=og(RA,rg);var gg=(TA=>{var Ig=(TA=TA.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=Ig&&57>=Ig?`_${TA}`:TA})(BA);DA(gg,function(){rI(`Cannot construct ${BA} due to unbound types`,[F])}),ig([l,u,y],F?[F]:[],TA=>{if(TA=TA[0],F)var Ig=TA.M,Ug=Ig.$;else Ug=q.prototype;TA=$(BA,function(...KB){if(Object.getPrototypeOf(this)!==HI)throw new sA(`Use 'new' to construct ${BA}`);if(yg.Z===void 0)throw new sA(`${BA} has no accessible constructor`);var KQ=yg.Z[KB.length];if(KQ===void 0)throw new sA(`Tried to invoke ctor of ${BA} with invalid number of parameters (${KB.length}) - expected (${Object.keys(yg.Z).toString()}) parameters instead!`);return KQ.apply(this,KB)});var HI=Object.create(Ug,{constructor:{value:TA}});TA.prototype=HI;var vg,yg=new JA(BA,TA,HI,rg,Ig,v,W,QA);return yg.U&&((vg=yg.U).ja??(vg.ja=[]),yg.U.ja.push(yg)),Ig=new nI(BA,yg,!0,!1,!1),vg=new nI(BA+"*",yg,!1,!1,!1),Ug=new nI(BA+" const*",yg,!1,!0,!1),P[l]={pointerType:vg,oa:Ug},PI(gg,TA),[Ig,vg,Ug]})},g:(l,u,y,F,S,v)=>{var H=kI(u,y);S=og(F,S),ig([],[l],W=>{var gA=`constructor ${(W=W[0]).name}`;if(W.M.Z===void 0&&(W.M.Z=[]),W.M.Z[u-1]!==void 0)throw new sA(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${W.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return W.M.Z[u-1]=()=>{rI(`Cannot construct ${W.name} due to unbound types`,H)},ig([],H,QA=>(QA.splice(1,0,null),W.M.Z[u-1]=UI(gA,QA,null,S,v),[])),[]})},b:(l,u,y,F,S,v,H,W,gA)=>{var QA=kI(y,F);u=vA(u),u=XI(u),v=og(S,v),ig([],[l],BA=>{function RA(){rI(`Cannot call ${rg} due to unbound types`,QA)}var rg=`${(BA=BA[0]).name}.${u}`;u.startsWith("@@")&&(u=Symbol[u.substring(2)]),W&&BA.M.ya.push(u);var gg=BA.M.$,TA=gg[u];return TA===void 0||TA.R===void 0&&TA.className!==BA.name&&TA.aa===y-2?(RA.aa=y-2,RA.className=BA.name,gg[u]=RA):(FA(gg,u,rg),gg[u].R[y-2]=RA),ig([],QA,Ig=>(Ig=UI(rg,Ig,BA,v,H,gA),gg[u].R===void 0?(Ig.aa=y-2,gg[u]=Ig):gg[u].R[y-2]=Ig,[])),[]})},z:l=>N(l,_I),r:(l,u,y,F)=>{function S(){}u=vA(u),S.values={},N(l,{name:u,constructor:S,N:function(v){return this.constructor.values[v]},T:(v,H)=>H.value,X:mB(u,y,F),V:null}),DA(u,S)},d:(l,u,y)=>{var F=$I(l,"enum");u=vA(u),l=F.constructor,F=Object.create(F.constructor.prototype,{value:{value:y},constructor:{value:$(`${F.name}_${u}`,function(){})}}),l.values[y]=F,l[u]=F},m:(l,u,y)=>{N(l,{name:u=vA(u),N:F=>F,T:(F,S)=>S,X:SB(u,y),V:null})},l:(l,u,y,F,S,v,H)=>{var W=kI(u,y);l=vA(l),l=XI(l),S=og(F,S),DA(l,function(){rI(`Cannot call ${l} due to unbound types`,W)},u-1),ig([],W,gA=>(gA=[gA[0],null].concat(gA.slice(1)),PI(l,UI(l,gA,null,S,v,H),u-1),[]))},c:(l,u,y,F,S)=>{u=vA(u);let v=W=>W;if(F===0){var H=32-8*y;v=W=>W<<H>>>H,S=v(S)}N(l,{name:u,N:v,T:(W,gA)=>gA,X:L(u,y,F!==0),V:null})},a:(l,u,y)=>{function F(v){return new S(D.buffer,p[v+4>>2],p[v>>2])}var S=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][u];N(l,{name:y=vA(y),N:F,X:F},{wa:!0})},h:l=>{N(l,LB)},A:(l,u)=>{N(l,{name:u=vA(u),N(y){var F=(F=y+4)?gB.decode(b.subarray(F,YI(b,F,p[y>>2],!0))):"";return qg(y),F},T(y,F){F instanceof ArrayBuffer&&(F=new Uint8Array(F));var S=typeof F=="string";if(!(S||ArrayBuffer.isView(F)&&F.BYTES_PER_ELEMENT==1))throw new sA("Cannot pass non-string to std::string");var v=S?AB(F):F.length,H=HB(4+v+1),W=H+4;return p[H>>2]=v,S?Hg(F,W,v+1):b.set(F,W),y!==null&&y.push(qg,H),H},X:GA,V(y){qg(y)}})},f:(l,u,y)=>{if(y=vA(y),u===2)var F=cA,S=ng,v=xI;else F=Kg,S=II,v=JB;N(l,{name:y,N:H=>{var W=F(H+4,p[H>>2]*u,!0);return qg(H),W},T:(H,W)=>{if(typeof W!="string")throw new sA(`Cannot pass non-string to C++ string type ${y}`);var gA=v(W),QA=HB(4+gA+u);return p[QA>>2]=gA/u,S(W,QA+4,gA+u),H!==null&&H.push(qg,QA),QA},X:GA,V(H){qg(H)}})},i:(l,u,y,F,S,v)=>{bA[l]={name:vA(u),ia:og(y,F),Y:og(S,v),la:[]}},e:(l,u,y,F,S,v,H,W,gA,QA)=>{bA[l].la.push({qa:vA(u),va:y,ta:og(F,S),ua:v,Ba:H,Aa:og(W,gA),Ca:QA})},C:(l,u)=>{N(l,{ma:!0,name:u=vA(u),N:()=>{},T:()=>{}})},p:(l,u,y)=>{var[F,...S]=((gA,QA)=>{for(var BA=Array(gA),RA=0;RA<gA;++RA)BA[RA]=$I(p[QA+4*RA>>2],`parameter ${RA}`);return BA})(l,u);u=F.T.bind(F);var v=S.map(gA=>gA.X.bind(gA));l--;var H={toValue:LI};switch(l=v.map((gA,QA)=>{var BA=`argFromPtr${QA}`;return H[BA]=gA,`${BA}(args${QA?"+"+8*QA:""})`}),y){case 0:var W="toValue(handle)";break;case 2:W="new (toValue(handle))";break;case 3:W="";break;case 1:H.getStringOrSymbol=pa,W="toValue(handle)[getStringOrSymbol(methodName)]"}return W+=`(${l})`,F.ma||(H.toReturnWire=u,H.emval_returnValue=Ga,W=`return emval_returnValue(toReturnWire, destructorsRef, ${W})`),W=`return function (handle, methodName, destructorsRef, args) {
|
|
17
17
|
${W}
|
|
18
18
|
}`,y=new Function(Object.keys(H),W)(...Object.values(H)),W=`methodCaller<(${S.map(gA=>gA.name)}) => ${F.name}>`,(gA=>{var QA=YB.length;return YB.push(gA),QA})($(W,y))},E:SI,o:(l,u,y,F,S)=>YB[l](u,y,F,S),D:l=>{var u=LI(l);fA(u),SI(l)},s:(l,u,y,F)=>{var S=new Date().getFullYear(),v=new Date(S,0,1).getTimezoneOffset();S=new Date(S,6,1).getTimezoneOffset(),p[l>>2]=60*Math.max(v,S),f[u>>2]=+(v!=S),u=H=>{var W=Math.abs(H);return`UTC${0<=H?"-":"+"}${String(Math.floor(W/60)).padStart(2,"0")}${String(W%60).padStart(2,"0")}`},l=u(v),u=u(S),S<v?(Hg(l,y,17),Hg(u,F,17)):(Hg(l,F,17),Hg(u,y,17))},y:l=>{var u=b.length;if(2147483648<(l>>>=0))return!1;for(var y=1;4>=y;y*=2){var F=u*(1+.2/y);F=Math.min(F,l+100663296);A:{F=(Math.min(2147483648,65536*Math.ceil(Math.max(l,F)/65536))-c.buffer.byteLength+65535)/65536|0;try{c.grow(F),AA();var S=1;break A}catch{}S=void 0}if(S)return!0}return!1},t:(l,u)=>{var y,F=0,S=0;for(y of xQ()){var v=u+F;p[l+S>>2]=v,F+=Hg(y,v,1/0)+1,S+=4}return 0},u:(l,u)=>{var y=xQ();for(var F of(p[l>>2]=y.length,l=0,y))l+=AB(F)+1;return p[u>>2]=l,0},v:()=>52,w:function(){return 70},k:(l,u,y,F)=>{for(var S=0,v=0;v<y;v++){var H=p[u>>2],W=p[u+4>>2];u+=8;for(var gA=0;gA<W;gA++){var QA=l,BA=b[H+gA],RA=Na[QA];BA===0||BA===10?(QA=QA===1?J:m,BA=YI(RA,0),QA(BA=gB.decode(RA.buffer?RA.subarray(0,BA):new Uint8Array(RA.slice(0,BA)))),RA.length=0):RA.push(BA)}S+=W}return p[F>>2]=S,0}},sI=await async function(){var l;function u(F){var S;return sI=F.exports,c=sI.F,AA(),WI=sI.H,HQ=(F=sI).I,I._malloc=HB=F.J,I._free=qg=F.K,aA--,(S=I.monitorRunDependencies)==null||S.call(I,aA),aA==0&&uA&&(F=uA,uA=null,F()),sI}aA++,(l=I.monitorRunDependencies)==null||l.call(I,aA);var y={a:ka};return I.instantiateWasm?new Promise(F=>{I.instantiateWasm(y,(S,v)=>{F(u(S))})}):(Z??(Z=(F=>{if(E)return F=Buffer.from(F,"base64"),new Uint8Array(F.buffer,F.byteOffset,F.length);for(var S,v,H=0,W=0,gA=F.length,QA=new Uint8Array((3*gA>>2)-(F[gA-2]=="=")-(F[gA-1]=="="));H<gA;H+=4,W+=3)S=kg[F.charCodeAt(H+1)],v=kg[F.charCodeAt(H+2)],QA[W]=kg[F.charCodeAt(H)]<<2|S>>4,QA[W+1]=S<<4|v>>2,QA[W+2]=v<<6|kg[F.charCodeAt(H+3)];return QA})("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C0EAEKEDRQRAQZiDASEBIARBmIMBQRgQiwFFDQJBsIMBIQEgBEGwgwFBGBCLAUUNAkEAIQBBvO4BLQAARQRAA0AgAEECdCAAQcYfEKIDNgKM7gEgAEEBaiIAQQZHDQALQbzuAUEBOgAAQaTuAUGM7gEoAgA2AgALQYzuASEBIAJBCGoiAEGM7gFBGBCLAUUNAkGk7gEhASAAQaTuAUEYEIsBRQ0CQRgQNCIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEGc8QFBAToAAEGY8QEgATYCACABC80KAgV/CX4jAEHgAGsiBSQAIARC////////P4MhCiACIASFQoCAgICAgICAgH+DIQsgAkL///////8/gyIMQiCIIQ8gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCwwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCELIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACELQgAhAQwDCyALQoCAgICAgMD//wCEIQtCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASANhEIAIQFQBEBCgICAgICA4P//ACELDAMLIAtCgICAgICAwP//AIQhCwwCCyABIA2EUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyANQv///////z9YBEAgBUHQAGogASAMIAEgDCAMUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDWCIMQiCIIQ8gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAogAyAKIApQIggbeULAAEIAIAgbfKciCEEPaxBEIAYgCGtBEGohBiAFKQNIIQogBSkDQCEDCyAHIAlqIAZqQf//AGshBgJAIApCD4YiDkIgiEKAgICACIQiAiABQiCIIgR+IhAgA0IPhiIRQiCIIgogD0KAgASEIg1+fCIPIBBUrSAPIANCMYggDoRC/////w+DIgMgDEL/////D4MiDH58Ig4gD1StfCACIA1+fCAOIA4gEUKAgP7/D4MiDyAMfiIRIAQgCn58IhAgEVStIBAgECADIAFC/////w+DIgF+fCIQVq18fCIOVq18IAMgDX4iEiACIAx+fCIRIBJUrUIghiARQiCIhHwgDiAOIBFCIIZ8Ig5WrXwgDiANIA9+Ig0gCiAMfnwiDCABIAJ+fCICIAMgBH58IgNCIIggAiADVq0gDCANVK0gAiAMVK18fEIghoR8IgIgDlStfCACIBAgBCAPfiIMIAEgCn58IgRCIIggBCAMVK1CIIaEfCIKIBBUrSAKIANCIIZ8IgMgClStfHwiCiACVK18IAogAyAEQiCGIgIgASAPfnwiASACVK18IgIgA1StfCIEIApUrXwiA0KAgICAgIDAAINQRQRAIAZBAWohBgwBCyABQj+IIANCAYYgBEI/iIQhAyAEQgGGIAJCP4iEIQQgAUIBhiEBIAJCAYaEIQILIAZB//8BTgRAIAtCgICAgICAwP//AIQhC0IAIQEMAQsCfiAGQQBMBEBBASAGayIHQf8ATQRAIAVBMGogASACIAZB/wBqIgYQRCAFQSBqIAQgAyAGEEQgBUEQaiABIAIgBxCKASAFIAQgAyAHEIoBIAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQEgBSkDKCAFKQMYhCECIAUpAwAhBCAFKQMIDAILQgAhAQwCCyADQv///////z+DIAatQjCGhAsgC4QhCyABUCACQgBZIAJCgICAgICAgICAf1EbRQRAIAsgBEIBfCIBUK18IQsMAQsgASACQoCAgICAgICAgH+FhFBFBEAgBCEBDAELIAsgBCAEQgGDfCIBIARUrXwhCwsgACABNwMAIAAgCzcDCCAFQeAAaiQACwYAIAAQLQt8AQN/IwBBEGsiASQAIAEgADYCDCMAQRBrIgIkACAAKAIAQX9HBEAgAkEIaiACQQxqIAFBDGoQVRBVIQMDQCAAKAIAQQFGDQALIAAoAgBFBEAgAEEBNgIAIAMQ0gIgAEF/NgIACwsgAkEQaiQAIAAoAgQgAUEQaiQAQQFrCyAAIAAgAUEBazYCBCAAQeDVATYCACAAQZCtATYCACAAC/cFAQl/IwBBEGsiCSQAIAEQ1wIgCUEMaiABEFUhCCAAQQhqIgMQayACTQRAAkAgAkEBaiIAIAMQayIBSwRAIwBBIGsiCiQAAkAgACABayIHIAMoAgggAygCBGtBAnVNBEAgAyAHENkCDAELIApBDGohAQJ/IAMQayAHaiEFIwBBEGsiACQAIAAgBTYCDCAFELwCIgRNBEAgAxC5AiIFIARBAXZJBEAgACAFQQF0NgIIIABBCGogAEEMahCgASgCACEECyAAQRBqJAAgBAwBCxCMAQALIQQgAxBrIQUjAEEQayIAJAAgASADQQxqIgs2AhAgAUEANgIMIAQEfyAAQQhqIAsgBBC7AiAAKAIIIQYgACgCDAVBAAshBCABIAY2AgAgASAGIAVBAnRqIgU2AgggASAGIARBAnRqNgIMIAEgBTYCBCAAQRBqJAAjAEEQayIGJAAgASgCCCEEIAZBBGoiACABQQhqNgIIIAAgBDYCACAAIAQgB0ECdGo2AgQgACgCACEEA0AgACgCBCAERwRAIAEoAhAaIAQQugIgACAAKAIAQQRqIgQ2AgAMAQsLIAAoAgggACgCADYCACAGQRBqJAAgASgCBCADKAIAIgAgAygCBGtqIQQgAygCBCAAayIHBEAgBCAAIAf8CgAACyABIAQ2AgQgAyADKAIANgIEIAMgAUEEahDXASADQQRqIAFBCGoQ1wEgA0EIaiABQQxqENcBIAEgASgCBDYCACADEGsaIAEoAgQhAANAIAEoAggiBCAARwRAIAEgBEEEazYCCCABKAIQGgwBCwsgASgCACIABEAgASgCECAAIAEoAgwgASgCAGtBAnUQuAILCyAKQSBqJAAMAQsgACABSQRAIAMoAgAgAEECdGohACADEGsaIAMgABDYAgsLCyADIAIQggEoAgAEQCADIAIQggEoAgAQvwELIAgQrAEhACADIAIQggEgADYCACAIKAIAIQAgCEEANgIAIAAEQCAAEL8BCyAJQRBqJAALySgBC38jAEEQayIKJAACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYzqASgCACIEQRAgAEELakH4A3EgAEELSRsiBkEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUG06gFqIgAgASgCvOoBIgEoAggiBUYEQEGM6gEgBEF+IAJ3cTYCAAwBCyAFIAA2AgwgACAFNgIICyABQQhqIQAgASACQQN0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KAIAKAIcEQQAC8EBAQN/IAAtAABBIHFFBEACQCAAKAIQIgMEfyADBSAAEN8BDQEgACgCEAsgACgCFCIEayACSQRAIAAgASACIAAoAiQRAwAaDAELAkACQCACRSAAKAJQQQBIcg0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQMAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACEHEaIAAgACgCFCACajYCFAsLC6EBAQJ/AkAgABAfRSACIAFrQQVIcg0AIAEgAhDHASACQQRrIQQgABAjIgIgABAfaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAtpAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABIAIgA2siA0GAAiADQYACSSIBGxCYAiABRQRAA0AgACAFQYACEEIgA0GAAmsiA0H/AUsNAAsLIAAgBSADEEILIAVBgAJqJAALBABBAAsKACAALQALQQd2CwoAIABB0PIBEHoLCgAgAEHY8gEQegvPCQIEfwR+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiDEL///////8/gyEJIAIgBCAIGyILQjCIp0H//wFxIQcgDEIwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5QsAAQgAgBRt8pyIFQQ9rEEQgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3lCwABCACAHG3ynIgdBD2sQREEQIAdrIQcgBikDUCEDIAYpA1gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQgAiAEhSEEAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrEEQgBkEwaiACIAEgBxCKASAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQlCgICAgICAgASEIQsgCkIDhiEKAkAgBEIAUwRAQgAhA0IAIQQgCSAKhSABIAuFhFANAiAKIAl9IQIgCyABfSAJIApWrX0iBEL/////////A1YNASAGQSBqIAIgBCACIAQgBFAiBxt5QsAAQgAgBxt8p0EMayIHEEQgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAt8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgDEKAgICAgICAgIB/gyEDIAVB//8BTgRAIANCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahBEIAYgAiAEQQEgBWsQigEgBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIARCPYYgAkIDiIQhASAEQgOIQv///////z+DIAetQjCGhCADhCEEAkACQCACp0EHcSIFQQRHBEAgBCABIAEgBUEES618IgNWrXwhBAwBCyAEIAEgASABQgGDfCIDVq18IQQMAQsgBUUNAQsLIAAgAzcDACAAIAQ3AwggBkHwAGokAAsRACAAIAEgACgCACgCLBEEAAsIACAAQYABSQsRACACBEAgACABIAL8CgAACwsJACAAECMQ9wELhAECAn8BfiMAQRBrIgMkACAAAn4gAUUEQEIADAELIAMgASABQR91IgJzIAJrIgKtQgAgAmciAkHRAGoQRCADKQMIQoCAgICAgMAAhUGegAEgAmutQjCGfEKAgICAgICAgIB/QgAgAUEASBuEIQQgAykDAAs3AwAgACAENwMIIANBEGokAAsNACAAIAFB/wBxOgALC6oMAQh/An9BACABRQ0AGiAAQX9zIQMgAkEXTwRAAkAgAUEDcUUNACABLQAAIANzQf8BcUECdCgC0DMgA0EIdnMhAyACQQFrIgBFIAFBAWoiBEEDcUVyRQRAIAEtAAEgA3NB/wFxQQJ0KALQMyADQQh2cyEDIAJBAmsiAEUgAUECaiIEQQNxRXJFBEAgAS0AAiADc0H/AXFBAnQoAtAzIANBCHZzIQMgAkEDayIARSABQQNqIgRBA3FFckUEQCABLQADIANzQf8BcUECdCgC0DMgA0EIdnMhAyABQQRqIQEgAkEEayECDAMLIAAhAiAEIQEMAgsgACECIAQhAQwBCyAAIQIgBCEBCyACQRRuIghBbGwhCgJAIAhBAWsiCUUEQEEAIQQMAQsgASEAQQAhBANAIAAoAhAgB3MiB0EWdkH8B3EoAtBTIAdBDnZB/AdxKALQSyAHQQZ2QfwHcSgC0EMgB0H/AXFBAnQoAtA7c3NzIQcgACgCDCAGcyIGQRZ2QfwHcSgC0FMgBkEOdkH8B3EoAtBLIAZBBnZB/AdxKALQQyAGQf8BcUECdCgC0Dtzc3MhBiAAKAIIIARzIgRBFnZB/AdxKALQUyAEQQ52QfwHcSgC0EsgBEEGdkH8B3EoAtBDIARB/wFxQQJ0KALQO3NzcyEEIAAoAgQgBXMiBUEWdkH8B3EoAtBTIAVBDnZB/AdxKALQSyAFQQZ2QfwHcSgC0EMgBUH/AXFBAnQoAtA7c3NzIQUgACgCACADcyIDQRZ2QfwHcSgC0FMgA0EOdkH8B3EoAtBLIANBBnZB/AdxKALQQyADQf8BcUECdCgC0Dtzc3MhAyAAQRRqIQAgCUEBayIJDQALIAEgCEEUbGpBFGshAQsgAiAKaiECIAEoAhAgASgCDCABKAIIIAEoAgQgASgCACADcyIAQQh2IABB/wFxQQJ0KALQM3MiAEEIdiAAQf8BcUECdCgC0DNzIgBBCHYgAEH/AXFBAnQoAtAzcyIAQf8BcUECdCgC0DMgBXNzIABBCHZzIgBBCHYgAEH/AXFBAnQoAtAzcyIAQQh2IABB/wFxQQJ0KALQM3MiAEEIdiAAQf8BcUECdCgC0DNzIgBB/wFxQQJ0KALQMyAEc3MgAEEIdnMiAEEIdiAAQf8BcUECdCgC0DNzIgBBCHYgAEH/AXFBAnQoAtAzcyIAQQh2IABB/wFxQQJ0KALQM3MiAEH/AXFBAnQoAtAzIAZzcyAAQQh2cyIAQQh2IABB/wFxQQJ0KALQM3MiAEEIdiAAQf8BcUECdCgC0DNzIgBBCHYgAEH/AXFBAnQoAtAzcyIAQf8BcUECdCgC0DMgB3NzIABBCHZzIgBBCHYgAEH/AXFBAnQoAtAzcyIAQQh2IABB/wFxQQJ0KALQM3MiAEEIdiAAQf8BcUECdCgC0DNzIgBBCHYgAEH/AXFBAnQoAtAzcyEDIAFBFGohAQsgAkEHSwRAA0AgAS0AACADc0H/AXFBAnQoAtAzIANBCHZzIgBBCHYgAS0AASAAc0H/AXFBAnQoAtAzcyIAQQh2IAEtAAIgAHNB/wFxQQJ0KALQM3MiAEEIdiABLQADIABzQf8BcUECdCgC0DNzIgBBCHYgAS0ABCAAc0H/AXFBAnQoAtAzcyIAQQh2IAEtAAUgAHNB/wFxQQJ0KALQM3MiAEEIdiABLQAGIABzQf8BcUECdCgC0DNzIgBBCHYgAS0AByAAc0H/AXFBAnQoAtAzcyEDIAFBCGohASACQQhrIgJBB0sNAAsLAkAgAkUNACABLQAAIANzQf8BcUECdCgC0DMgA0EIdnMhAyACQQFGDQAgAS0AASADc0H/AXFBAnQoAtAzIANBCHZzIQMgAkECRg0AIAEtAAIgA3NB/wFxQQJ0KALQMyADQQh2cyEDIAJBA0YNACABLQADIANzQf8BcUECdCgC0DMgA0EIdnMhAyACQQRGDQAgAS0ABCADc0H/AXFBAnQoAtAzIANBCHZzIQMgAkEFRg0AIAEtAAUgA3NB/wFxQQJ0KALQMyADQQh2cyEDIAJBBkYNACABLQAGIANzQf8BcUECdCgC0DMgA0EIdnMhAwsgA0F/cwsL5QMBBX8jAEEQayIDJAAgAyAAKAIAIgRBCGsoAgAiAjYCDCADIAAgAmo2AgQgAyAEQQRrKAIANgIIIAMoAggiBCABQQAQOyECIAMoAgQhBQJAIAIEQCADKAIMIQAjAEFAaiIBJAAgAUFAayQAQQAgBSAAGyECDAELIwBBQGoiAiQAIAAgBU4EQCACQgA3AhwgAkIANwIkIAJCADcCLCACQgA3AhQgAkEANgIQIAIgATYCDCACIAQ2AgQgAkEANgI8IAJCgYCAgICAgIABNwI0IAIgADYCCCAEIAJBBGogBSAFQQFBACAEKAIAKAIUEQoAIABBACACKAIcGyEGCyACQUBrJAAgBiICDQAjAEFAaiICJAAgAkEANgIQIAJBlNYBNgIMIAIgADYCCCACIAE2AgRBACEAIAJBFGpBAEEn/AsAIAJBADYCPCACQQE6ADsgBCACQQRqIAVBAUEAIAQoAgAoAhgRCwACQAJAAkAgAigCKA4CAAECCyACKAIYQQAgAigCJEEBRhtBACACKAIgQQFGG0EAIAIoAixBAUYbIQAMAQsgAigCHEEBRwRAIAIoAiwNASACKAIgQQFHDQEgAigCJEEBRw0BCyACKAIUIQALIAJBQGskACAAIQILIANBEGokACACCzwBAn9BASAAIABBAU0bIQEDQAJAIAEQNCIADQBB5P4BKAIAIgJFDQAgAhEMAAwBCwsgAEUEQBDrAQsgAAsUAQF/QQQQUyIBIAAoAgA2AgAgAQsLACAAIAE2AgAgAAsMACAAIAEoAgA2AgALBwAgABAkGgsRACAAIAEgASgCACgCFBEBAAsPACAAIAAoAgAoAhARAAALBwAgABAfRQsJAEGFEBCuAgALEAAgACABQYCAgIB4cjYCCAsMACAAIAEtAAA6AAALCwAgAC0AC0H/AHELEwAgACABIAIgACgCACgCDBEDAAsiAQF/IAIQTAR/IAAoAgggAkECdGooAgAgAXFBAEcFQQALC+wBAQN/IABFBEBB0N4BKAIABEBB0N4BKAIAEGEhAQtBgOABKAIABEBBgOABKAIAEGEgAXIhAQtBwOABKAIAIgAEQANAIAAoAkwaIAAoAhQgACgCHEcEQCAAEGEgAXIhAQsgACgCOCIADQALCyABDwsgACgCTEEASCECAkACQCAAKAIUIAAoAhxGDQAgAEEAQQAgACgCJBEDABogACgCFA0AQX8hAQwBCyAAKAIEIgEgACgCCCIDRwRAIAAgASADa6xBASAAKAIoERYAGgtBACEBIABBADYCHCAAQgA3AxAgAEIANwIEIAINAAsgAQsSACAAKAIAIgAEQCAAEJwDGgsLEQAgACABKAIAEJwDNgIAIAALQQEBfyAAIAE3A3AgACAAKAIsIAAoAgQiAmusNwN4IAAgAVAgASAAKAIIIgAgAmusWXIEfyAABSACIAGnags2AmgLHgACQCACRQ0AIAJBAnQiAkUNACAAIAEgAvwKAAALCxYAIAAgASgCADYCACAAIAIoAgA2AgQLtQEBAn8jAEEQayIFJAAgBSABNgIMQQAhAQJAIAICf0EGIAAgBUEMahArDQAaQQQgA0HAACAAEDciBhBfRQ0AGiADIAYQlAEhAQNAAkAgABA+GiABQTBrIQEgACAFQQxqECsgBEECSHINACADQcAAIAAQNyIGEF9FDQMgBEEBayEEIAMgBhCUASABQQpsaiEBDAELCyAAIAVBDGoQK0UNAUECCyACKAIAcjYCAAsgBUEQaiQAIAELtQEBAn8jAEEQayIFJAAgBSABNgIMQQAhAQJAIAICf0EGIAAgBUEMahAsDQAaQQQgA0HAACAAEDgiBhBgRQ0AGiADIAYQlQEhAQNAAkAgABA/GiABQTBrIQEgACAFQQxqECwgBEECSHINACADQcAAIAAQOCIGEGBFDQMgBEEBayEEIAMgBhCVASABQQpsaiEBDAELCyAAIAVBDGoQLEUNAUECCyACKAIAcjYCAAsgBUEQaiQAIAELYwAgAigCBEGwAXEiAkEgRgRAIAEPCwJAIAJBEEcNAAJAAkAgAC0AACICQStrDgMAAQABCyAAQQFqDwsgAkEwRyABIABrQQJIcg0AIAAtAAFBIHJB+ABHDQAgAEECaiEACyAACy4AAkAgACgCBEHKAHEiAARAIABBwABGBEBBCA8LIABBCEcNAUEQDwtBAA8LQQoLEAAgACgCBCAAKAIAa0ECdQvOAQIEfgJ/IwBBEGsiBiQAIAG9IgVC/////////weDIQIgAAJ+IAVCNIhC/w+DIgNQRQRAIANC/w9SBEAgAkIEiCEEIANCgPgAfCEDIAJCPIYMAgsgAkIEiCEEQv//ASEDIAJCPIYMAQsgAlAEQEIAIQNCAAwBCyAGIAJCACACeaciB0ExahBEIAYpAwhCgICAgICAwACFIQRBjPgAIAdrrSEDIAYpAwALNwMAIAAgBUKAgICAgICAgIB/gyADQjCGhCAEhDcDCCAGQRBqJAALsgMBA38jAEEQayIIJAAgCCACNgIIIAggATYCDCAIQQRqIgEgAxAnIAEQSCEJIAEQJSAEQQA2AgBBACEBAkADQCAGIAdGIAFyDQECQCAIQQxqIAhBCGoQKw0AAkAgCSAGKAIAEJQBQSVGBEAgBkEEaiAHRg0CQQAhAgJ/AkAgCSAGKAIEEJQBIgFBxQBGDQBBBCEKIAFB/wFxQTBGDQAgAQwBCyAGQQhqIAdGDQNBCCEKIAEhAiAJIAYoAggQlAELIQEgCCAAIAgoAgwgCCgCCCADIAQgBSABIAIgACgCACgCJBENADYCDCAGIApqQQRqIQYMAQsgCUEBIAYoAgAQXwRAA0AgByAGQQRqIgZHBEAgCUEBIAYoAgAQXw0BCwsDQCAIQQxqIgEgCEEIahArDQIgCUEBIAEQNxBfRQ0CIAEQPhoMAAsACyAJIAhBDGoiARA3EEEgCSAGKAIAEEFGBEAgBkEEaiEGIAEQPhoMAQsgBEEENgIACyAEKAIAIQEMAQsLIARBBDYCAAsgCEEMaiAIQQhqECsEQCAEIAQoAgBBAnI2AgALIAgoAgwgCEEQaiQAC7QDAQN/IwBBEGsiCCQAIAggAjYCCCAIIAE2AgwgCEEEaiIBIAMQJyABEEkhCSABECUgBEEANgIAQQAhAQJAA0AgBiAHRiABcg0BAkAgCEEMaiAIQQhqECwNAAJAIAkgBiwAABCVAUElRgRAIAZBAWogB0YNAkEAIQICfwJAIAkgBiwAARCVASIBQcUARg0AQQEhCiABQf8BcUEwRg0AIAEMAQsgBkECaiAHRg0DQQIhCiABIQIgCSAGLAACEJUBCyEBIAggACAIKAIMIAgoAgggAyAEIAUgASACIAAoAgAoAiQRDQA2AgwgBiAKakEBaiEGDAELIAlBASAGLAAAEGAEQANAIAcgBkEBaiIGRwRAIAlBASAGLAAAEGANAQsLA0AgCEEMaiIBIAhBCGoQLA0CIAlBASABEDgQYEUNAiABED8aDAALAAsgCSAIQQxqIgEQOBDOASAJIAYsAAAQzgFGBEAgBkEBaiEGIAEQPxoMAQsgBEEENgIACyAEKAIAIQEMAQsLIARBBDYCAAsgCEEMaiAIQQhqECwEQCAEIAQoAgBBAnI2AgALIAgoAgwgCEEQaiQACxYAIAAgASACIAMgACgCACgCMBEJABoLPAAgACwAC0EASARAIAAoAggaIAAoAgAQLQsgACABKQIANwIAIAAgASgCCDYCCCABQQA6AAsgAUEAOgAACxMAIAIEQCAAIAEgAvwKAAALIAALKwEBfyMAQRBrIgIkACACIAE2AgxBwN0BIAAgAUEAQQAQ0QMaIAJBEGokAAsjAQF/IwBBEGsiASQAIAEgADYCDCABQQxqEOwBIAFBEGokAAsMACAAQYKGgCA2AAALEQAgABAjIAAQH0ECdGoQ9wELDQAgACgCACABKAIARgsOACAAECMgABAfahD3AQsPACAAIAAoAgAoAgwRAAALFgAgACABIAIgAyAAKAIAKAIgEQkAGgtEAQF/IAAoAgAhAiABEDEhACACQQhqIgEQayAASwR/IAEgABCCASgCAEEARwVBAAtFBEAQPQALIAJBCGogABCCASgCAAsRACAAIAEgASgCACgCHBEBAAsRACAAIAEgASgCACgCGBEBAAsQACAAQSBGIABBCWtBBUlyCw4AIAAoAghB/////wdxC9cBAQF/AkBBjN4BKAIAIgBBAE4EQCAARQ0BQZThASgCACAAQf////8DcUcNAQsCQEGQ3gEoAgBBCkYNAEHU3QEoAgAiAEHQ3QEoAgBGDQBB1N0BIABBAWo2AgAgAEEKOgAADwtBwN0BEN4BDwtBjN4BQYzeASgCACIAQf////8DIAAbNgIAAkACQEGQ3gEoAgBBCkYNAEHU3QEoAgAiAEHQ3QEoAgBGDQBB1N0BIABBAWo2AgAgAEEKOgAADAELQcDdARDeAQtBjN4BKAIAGkGM3gFBADYCAAvDAQEEfyMAQRBrIgckAAJAIABFDQAgBCgCDCEJIAIgAWsiBkEASgRAIAAgASAGIAAoAgAoAjARAwAgBkcNAQsgAyABayIBIAlIBEAgB0EEaiIGIAkgAWsiASAFELACIAAgBygCBCAGIAcsAA9BAEgbIAEgACgCACgCMBEDACEFIAYQIBogASAFRw0BCyADIAJrIgFBAEoEQCAAIAIgASAAKAIAKAIwEQMAIAFHDQELIARBADYCDCAAIQgLIAdBEGokACAIC14BA38gAEEANgIIIABCADcCACABKAIAIQMgASgCBCIBIANrIgRBAnUiAgRAIAAgAhCuAyAAKAIEIQIgBEUgASADRnJFBEAgAiADIAT8CgAACyAAIAIgBGo2AgQLIAALDQAgACgCACABQQJ0agsXACAAEEcEQCAAIAE2AgQPCyAAIAEQUAthAQF/IwBBEGsiAiQAIAIgADYCDAJAIAAgAUYNAANAIAIgAUEBayIBNgIIIAAgAU8NASACKAIMIAIoAggQ8wIgAiACKAIMQQFqIgA2AgwgAigCCCEBDAALAAsgAkEQaiQAC6wBAQR/IwBBEGsiByQAAkAgAEUNACAEKAIMIQYgAiABa0ECdSIIQQBKBEAgACABIAgQjQIgCEcNAQsgAyABa0ECdSIBIAZIBEAgACAHQQRqIAYgAWsiASAFEP0CIgUQIyABEI0CIQYgBRA5GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEI0CIAFHDQELIAQoAgwaIARBADYCDCAAIQkLIAdBEGokACAJCycBAX8jAEEQayIDJAAgAyACNgIMIABB5AAgASACENEBIANBEGokAAvbAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNACAAIAKEIAUgBoSEUARAQQAPCyABIAODQgBZBEAgACACVCABIANTIAEgA1EbBEBBfw8LIAAgAoUgASADhYRCAFIPCyAAIAJWIAEgA1UgASADURsEQEF/DwsgACAChSABIAOFhEIAUiEECyAEC+wBAQR/IwBBEGsiBCQAIABBADYCBCMAQRBrIgUkACAEQQA6AA8gACAAKAIAQQxrKAIAahDZASEGIAAgACgCAEEMaygCAGohAwJAIAYEQCADKAJIBEAgACAAKAIAQQxrKAIAaigCSBDFAwsgBCAAIAAoAgBBDGsoAgBqENkBOgAPDAELIANBBBDVAQsgBUEQaiQAQQQhAyAELQAPBEAgACAAIAAoAgBBDGsoAgBqKAIYIgMgASACIAMoAgAoAiARAwAiATYCBEEGQQAgASACRxshAwsgACAAKAIAQQxrKAIAaiADENUBIARB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AxsLPAAgAEEANgIIIABCADcCACAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIACywBAX8gAEEANgIIIABCADcCACAAIAEoAgAiAiABKAIEIgEgASACaxDAAyAACwgAIABB/wFxC/wBAQN/IAAoAgQgACgCACIDa0ECdSICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrQQJ1TQRAIAAoAgQiASACQQJ0aiECA0AgASACRgRAIAAgAjYCBAUgAUEANgIAIAFBBGohAQwBCwsMAQsgA0EMaiAAIAEgACgCAGtBAnUgAmoQtgEgACgCBCAAKAIAa0ECdSAAEIcCIgQoAggiASACQQJ0aiECA0AgASACRwRAIAFBADYCACABQQRqIQEMAQsLIAQgAjYCCCAAIAQQhQIgBBCBAgsgA0EgaiQADwsgASACSQRAIAAgAyABQQJ0ajYCBAsLUgECf0HU3gEoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQGA0BC0GI6gFBMDYCAEF/DwtB1N4BIAA2AgAgAQt/AgF+A38CQCAAQoCAgIAQVARAIAAhAgwBCwNAIAFBAWsiASAAIABCCoAiAkIKfn2nQTByOgAAIABC/////58BViACIQANAAsLIAJQRQRAIAKnIQMDQCABQQFrIgEgAyADQQpuIgRBCmxrQTByOgAAIANBCUsgBCEDDQALCyABC78BAQN/IAAoAgQgACgCACIDayICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrTQRAIAAgAhCYAwwBCyACIANBDGogACABIAJqIAAoAgBrELQBIAAoAgQgACgCAGsgABDGASIEKAIIIgFqIQIDQCABIAJHBEAgAUEAOgAAIAFBAWohAQwBCwsgBCACNgIIIAAgBBDvASAEELoBCyADQSBqJAAPCyABIAJJBEAgACABIANqNgIECwt9AQN/AkACQCAAIgFBA3FFDQAgAS0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBQYCChAggAigCACIDayADckGAgYKEeHFBgIGChHhGDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAA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BEBBCiEBIAAQXgwBCyAAEH5BAWshASAAKAIECyIDIAFGBEAgACABQQEgASABEPQBIAAQIxoMAQsgABAjGiAEDQAgACIBIANBAWoQUAwBCyAAKAIAIQEgACADQQFqNgIECyABIANqIgAgAkEPahBdIAJBADoADiAAQQFqIAJBDmoQXSACQRBqJAALoQIBA38jAEEgayIIJABB9////wciCSABQX9zaiACTwRAIAAQIyEKIAFB8////wNJBEAgCCABQQF0NgIcIAggASACajYCECAIQRBqIAhBHGoQoAEoAgAQnwFBAWohCQsgCEEcaiAIQRhqIAAQVSgCABC8ASAIQRBqIAkQngEgCCgCECECIAgoAhQaIAQEQCACIAogBBBNCyAGBEAgAiAEaiAHIAYQTQsgAyAEIAVqIglrIQcgAyAJRwRAIAIgBGogBmogBCAKaiAFaiAHEE0LIAFBCkcEQCAKEIsCCyAAIAI2AgAgACAIKAIUEFwgACAEIAZqIAdqIgA2AgQgCEEAOgAPIAAgAmogCEEPahBdIAhBHGoQuwEgCEEgaiQADwsQWwALCQAgAEEBEKgCCwoAIAAoAgAQHxoLCQAgACABEFUaCwcAIABBAkkLBABBBAsoAQF/IAAgACgCBEEBayIBNgIEIAFBf0YEQCAAIAAoAgAoAggRAgALC5UBAQN/IwBBEGsiBCQAIAQgATYCDCAEIAM2AgggBEEEaiAEQQxqEGMgBCgCCCEDIwBBEGsiASQAIAEgAzYCDCABIAM2AghBfyEFAkBBAEEAIAIgAxDRASIDQQBIDQAgACADQQFqIgMQNCIANgIAIABFDQAgACADIAIgASgCDBDRASEFCyABQRBqJAAQYiAEQRBqJAAgBQsPACAAIAAoAgAoAiQRAAALEQAgACABIAEoAgAoAiARAQALDgAgACABKAIANgIAIAALCABB/////wcLBQBB/wALOwAgACADNgIQIAAgAQR/IAEQUwVBAAsiAzYCACAAIAIgA2oiAjYCCCAAIAEgA2o2AgwgACACNgIEIAALYQEBfyMAQRBrIgIkACACIAA2AgwCQCAAIAFGDQADQCACIAFBBGsiATYCCCAAIAFPDQEgAigCDCACKAIIENcBIAIgAigCDEEEaiIANgIMIAIoAgghAQwACwALIAJBEGokAAs5AgF/AX4jAEEQayIEJAAgAykDACEFIAQgAykDCDcDCCAEIAU3AwAgACABIAIgBBDAASAEQRBqJAAL0AEBAn8gAkGAEHEEQCAAQSs6AAAgAEEBaiEACyACQYAIcQRAIABBIzoAACAAQQFqIQALIAJBhAJxIgNBhAJHBEAgAEGu1AA7AAAgAEECaiEACyACQYCAAXEhAgNAIAEtAAAiBARAIAAgBDoAACAAQQFqIQAgAUEBaiEBDAELCyAAAn8CQCADQYACRwRAIANBBEcNAUHGAEHmACACGwwCC0HFAEHlACACGwwBC0HBAEHhACACGyADQYQCRg0AGkHHAEHnACACGws6AAAgA0GEAkcLKwEBfyMAQRBrIgUkACAFIAQoAgA2AgAgACABIAIgAyAFEJYBIAVBEGokAAuqAQEBfwJAIANBgBBxRSACRXINACADQcoAcSIEQQhGIARBwABGcg0AIABBKzoAACAAQQFqIQALIANBgARxBEAgAEEjOgAAIABBAWohAAsDQCABLQAAIgQEQCAAIAQ6AAAgAEEBaiEAIAFBAWohAQwBCwsgAAJ/Qe8AIANBygBxIgFBwABGDQAaQdgAQfgAIANBgIABcRsgAUEIRg0AGkHkAEH1ACACGws6AAALDAAgABAjIAFBAnRqC5IEAQt/IwBBgAFrIgokACAKIAE2AnwgAiADELUCIQggCkHjADYCECAKQQhqQQAgCkEQaiIJEDYhDwJAAkACQCAIQeUATwRAIAgQNCIJRQ0BIA8gCRA8CyAJIQcgAiEBA0AgASADRgRAA0AgACAKQfwAaiIBECtBASAIGwRAIAAgARArBEAgBSAFKAIAQQJyNgIACwNAIAIgA0YNBiAJLQAAQQJGDQcgCUEBaiEJIAJBDGohAgwACwALIAAQNyEOIAZFBEAgBCAOEEEhDgsgDUEBaiEMQQAhECAJIQcgAiEBA0AgASADRgRAIAwhDSAQRQ0CIAAQPhogCSEHIAIhASAIIAtqQQJJDQIDQCABIANGBEAMBAUCQCAHLQAAQQJHDQAgARAfIA1GDQAgB0EAOgAAIAtBAWshCwsgB0EBaiEHIAFBDGohAQwBCwALAAUCQCAHLQAAQQFHDQAgASANEMwBKAIAIRECQCAGBH8gEQUgBCAREEELIA5GBEBBASEQIAEQHyAMRw0CIAdBAjoAACALQQFqIQsMAQsgB0EAOgAACyAIQQFrIQgLIAdBAWohByABQQxqIQEMAQsACwALAAUgB0ECQQEgARBaIgwbOgAAIAdBAWohByABQQxqIQEgCyAMaiELIAggDGshCAwBCwALAAsQPQALIAUgBSgCAEEEcjYCAAsgDxA1IApBgAFqJAAgAgsRACAAIAEgACgCACgCDBEEAAuTBAELfyMAQYABayIKJAAgCiABNgJ8IAIgAxC1AiEIIApB4wA2AhAgCkEIakEAIApBEGoiCRA2IQ8CQAJAAkAgCEHlAE8EQCAIEDQiCUUNASAPIAkQPAsgCSEHIAIhAQNAIAEgA0YEQANAIAAgCkH8AGoiARAsQQEgCBsEQCAAIAEQLARAIAUgBSgCAEECcjYCAAsDQCACIANGDQYgCS0AAEECRg0HIAlBAWohCSACQQxqIQIMAAsACyAAEDghDiAGRQRAIAQgDhDOASEOCyANQQFqIQxBACEQIAkhByACIQEDQCABIANGBEAgDCENIBBFDQIgABA/GiAJIQcgAiEBIAggC2pBAkkNAgNAIAEgA0YEQAwEBQJAIActAABBAkcNACABEB8gDUYNACAHQQA6AAAgC0EBayELCyAHQQFqIQcgAUEMaiEBDAELAAsABQJAIActAABBAUcNACABIA0QIiwAACERAkAgBgR/IBEFIAQgERDOAQsgDkYEQEEBIRAgARAfIAxHDQIgB0ECOgAAIAtBAWohCwwBCyAHQQA6AAALIAhBAWshCAsgB0EBaiEHIAFBDGohAQwBCwALAAsABSAHQQJBASABEFoiDBs6AAAgB0EBaiEHIAFBDGohASALIAxqIQsgCCAMayEIDAELAAsACxA9AAsgBSAFKAIAQQRyNgIACyAPEDUgCkGAAWokACACC0oBAn8CQCAALQAAIgJFIAIgAS0AACIDR3INAANAIAEtAAEhAyAALQABIgJFDQEgAUEBaiEBIABBAWohACACIANGDQALCyACIANrC4QBAQJ/IwBBoAFrIgQkACAEIAAgBEGeAWogARsiADYClAEgBCABQQFrIgVBACABIAVPGzYCmAEgBEEAQZAB/AsAIARBfzYCTCAEQeIANgIkIARBfzYCUCAEIARBnwFqNgIsIAQgBEGUAWo2AlQgAEEAOgAAIAQgAiADEM0DIARBoAFqJAALuwIBBH8gA0H87QEgAxsiBSgCACEDAkAC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IBAtIAAoAiQQLSAAKAIwEC0gACgCPBAtCyAACwcAIAEgAGsLDABBARDWARogABAtCwkAIAAQsQEQLQsTACAAIAEgAiAAKAIAKAIwEQMACwkAIAAQ2AEQLQsMACAAQQRqENoBIAALDAAgAEEIahDaASAACygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsCAAsUACAAQZj1ADYCACAAQQRqECUgAAvyAwICfgV/IwBBIGsiBSQAIAFC////////P4MhAgJ+IAFCMIhC//8BgyIDpyIEQYH4AGtB/Q9NBEAgAkIEhiAAQjyIhCECIARBgPgAa60hAwJAIABC//////////8PgyIAQoGAgICAgICACFoEQCACQgF8IQIMAQsgAEKAgICAgICAgAhSDQAgAkIBgyACfCECC0IAIAIgAkL/////////B1YiBBshACAErSADfAwBCyAAIAKEUCADQv//AVJyRQRAIAJCBIYgAEI8iIRCgICAgICAgASEIQBC/w8MAQsgBEH+hwFLBEBCACEAQv8PDAELQYD4AEGB+AAgA1AiBxsiCCAEayIGQfAASgRAQgAhAEIADAELIAVBEGogACACIAJCgICAgICAwACEIAcbIgJBgAEgBmsQRCAFIAAgAiAGEIoBIAUpAwhCBIYgBSkDACICQjyIhCEAAkAgBCAIRyAFKQMQIAUpAxiEQgBSca0gAkL//////////w+DhCICQoGAgICAgICACFoEQCAAQgF8IQAMAQsgAkKAgICAgICAgAhSDQAgAEIBgyAAfCEACyAAQoCAgICAgIAIhSAAIABC/////////wdWIgQbIQAgBK0LIQIgBUEgaiQAIAFCgICAgICAgICAf4MgAkI0hoQgAIS/C4kCAAJAIAAEfyABQf8ATQ0BAkBB3OEBKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDwsgAUGAQHFBgMADRyABQYCwA09xRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAA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AXI2AgQgCSAGIAkoAgBBAXFyQQJyNgIAIAEgBmoiAiACKAIEQQFyNgIEIAEgBhDbAQsCQCAAKAIEIgJBA3FFDQAgAkF4cSIBIAVBEGpNDQAgACAFIAJBAXFyQQJyNgIEIAAgBWoiBCABIAVrIgJBA3I2AgQgACABaiIBIAEoAgRBAXI2AgQgBCACENsBCyAAQQhqCwsiAEUNARogCCAANgIMQQAhAQsgAQshAEEAIAgoAgwgABshAQsgCEEQaiQAIAENAEHk/gEoAgAiAEUNACAAEQwADAELCyABRQRAEOsBCyABCwoAIAEgAGtBDG0LCQAgABAuNgIACyMBAn8gACEBA0AgASICQQRqIQEgAigCAA0ACyACIABrQQJ1Cy8BAX8jAEEQayIDJAACQCAAIAFGBEAgAEEAOgB4DAELIAEgAhCpAQsgA0EQaiQACxAAIAAoAgggACgCAGtBAnULCQAgAEEANgIAC0kBAX8jAEEQayIDJAACQAJAIAJBHksNACABLQB4QQFxDQAgAUEBOgB4DAELIAIQwQIhAQsgA0EQaiQAIAAgAjYCBCAAIAE2AgALOgECfyMAQRBrIgAkACAAQf////8DNgIMIABB/////wc2AgggAEEMaiAAQQhqELUDKAIAIABBEGokAAs0AQF/IwBBEGsiAyQAIAMgARBzNgIMIAMgAhBzNgIIIAAgA0EMaiADQQhqEGYgA0EQaiQAC04BAX8jAEEQayIDJAAgAyABNgIIIAMgADYCDCADIAI2AgRBACEBIANBBGoiACADQQxqENMBRQRAIAAgA0EIahDTASEBCyADQRBqJAAgAQswAQF/IwBBEGsiAyQAIAMgATYCDCADIAI2AgggACADQQxqIANBCGoQZiADQRBqJAALMwEBfyMAQRBrIgMkACAAEB8aIAAgAhCDASADQQA6AA8gASACaiADQQ9qEF0gA0EQaiQACzEAIABB/////wNLBEAQqgIACwJ/IABBAnQhAEEEENYBBEAgAEEEELQCDAELIAAQUwsLCQAgABDtARAtCxUAIABB8KoBNgIAIABBEGoQIBogAAsVACAAQciqATYCACAAQQxqECAaIAALgAMBBH8gAiEAA0ACQCAEIAdNIAAgA09yDQAgACwAACIBQf8BcSEFAn9BASABQQBODQAaIAFBQkkNASABQV9NBEAgAyAA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ZEYNAEEAIQAgC0EANgIQIBEgDygCACALKAJkIAtBEGoQQyALKAIQBEAgBSAFKAIAQQRyNgIADAELQQEhAAsgEBAgGiANECAaIA4QIBogDBAgGiARECAaIA8QNQwDCyACIQELIANBAWohAwwACwALIAtBkARqJAAgAAsMACAAQQFBLRD9AhoLCwAgAEEBQS0QsAILHAEBfyAALQAAIQIgACABLQAAOgAAIAEgAjoAAAtlAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADCAFBEAgBkENaiAGQQ5qEPMCCyACIAEgASACKAIAEIoCIAZBDGogAyAAKAIAEJ4DIAFqNgIAIAZBEGokAAtBACABIAIgAyAEQQQQZyEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQAAIgAgAEGgAmogBSAEQQAQzQEgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAAAiACAAQagBaiAFIARBABDNASAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLQQAgASACIAMgBEEEEGghASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEM8BIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQAAIgAgAEGoAWogBSAEQQAQzwEgAGsiAEGnAUwEQCABIABBDG1BB282AgALCxgBAX9BDBBTIgBBADYCCCAAQgA3AgAgAAsEAEECC8oBAQR/IwBBEGsiAyQAAkAgAUH3////A00EQAJAIAEQvQEEQCAAIAEQUCAAIQQMAQsgA0EIaiABEJABQQFqEI8BIAMoAgwaIAAgAygCCCIENgIAIAAgAygCDBBcIAAgATYCBAsjAEEQayIFJAAgBSACNgIMIAQhBiABIQIDQCACBEAgBiAFKAIMNgIAIAJBAWshAiAGQQRqIQYMAQsLIAVBEGokACADQQA2AgQgBCABQQJ0aiADQQRqEFYgA0EQaiQADAELEFsA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hoRCAEKAgICAgIDAwz8QLyAFKQNIIQIgBSkDQCEEDAELIAlC////////P4MgBiAHcq1CMIaEIQILIAAgBDcDACAAIAI3AwggBUGAAWokAAuIEAIFfw9+IwBB0AJrIgUkACAEQv///////z+DIQsgAkL///////8/gyEKIAIgBIVCgICAgICAgICAf4MhDCAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCEH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIg5CgICAgICAwP//AFQgDkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEMDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQwgAyEBDAILIAEgDkKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACEMDAMLIAxCgICAgICAwP//AIQhDEIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASAOhFAEQEKAgICAgIDg//8AIAwgAiADhFAbIQxCACEBDAILIAIgA4RQBEAgDEKAgICAgIDA//8AhCEMQgAhAQwCCyAOQv///////z9YBEAgBUHAAmogASAKIAEgCiAKUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDyAIhCiAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyALIAMgCyALUCIJG3lCwABCACAJG3ynIglBD2sQRCAGIAlqQRBrIQYgBSkDuAIhCyAFKQOwAiEDCyAFQaACaiALQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABBAIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEEAgBUGAAmogBSkDmAJCAYYgBSkDkAJCP4iEIgRCACACQgAQQCAFQfABaiAEQgBCACAFKQOIAn1CABBAIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEEAgBUHQAWogBEIAQgAgBSkD6AF9QgAQQCAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABBAIAVBsAFqIARCAEIAIAUpA8gBfUIAEEAgBUGgAWogAkIAIAUpA7gBQgGGIAUpA7ABQj+IhEIBfSICQgAQQCAFQZABaiADQg+GQgAgAkIAEEAgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDiAFKQOYAXwiBCAOVK18IARCAVatfH1CABBAIAVBgAFqQgEgBH1CACACQgAQQCAGIAggB2tqIghB//8AaiEGAn4gBSkDcCITQgGGIg0gBSkDiAEiD0IBhiAFKQOAAUI/iIR8IhBC5+wAfSIUQiCIIgIgCkKAgICAgIDAAIQiFUIBhiIWQiCIIgR+IhEgAUIBhiIOQiCIIgsgECAUVq0gDSAQVq0gBSkDeEIBhiATQj+IhCAPQj+IfHx8QgF9IhNCIIgiEH58Ig0gEVStIA0gDSATQv////8PgyITIAFCP4giFyAKQgGGhEL/////D4MiCn58Ig1WrXwgBCAQfnwgBCATfiIRIAogEH58Ig8gEVStQiCGIA9CIIiEfCANIA9CIIZ8Ig8gDVStfCAPIA8gFEL/////D4MiFCAKfiINIAIgC358IhEgDVStIBEgESATIA5C/v///w+DIg1+fCIRVq18fCIPVq18IA8gBCAUfiIYIA0gEH58IgQgAiAKfnwiCiALIBN+fCIQQiCIIAogEFatIAQgGFStIAQgClatfHxCIIaEfCIEIA9UrXwgBCAEIBEgAiANfiIKIAsgFH58IgJCIIggAiAKVK1CIIaEfCIKIBFUrSAKIAogEEIghnwiClatfHwiBFatfCAEIAQgCiACQiCGIgIgDSAUfnwgAlStQn+FIgJWIAIgClJxrXwiBFatfCICQv////////8AWARAIBYgF4QhFSAFQdAAaiAEIAJCgICAgICAwABUIgetIguGIgogAiALhiAEQgGIIAdBP3OtiIQiBCADIBIQQCAIQf7/AGogBiAHG0EBayEGIAFCMYYgBSkDWH0gBSkDUCIBQgBSrX0hC0IAIAF9DAELIAVB4ABqIAJCP4YgBEIBiIQiCiACQgGIIgQgAyASEEAgAUIwhiAFKQNofSAFKQNgIgJCAFKtfSELIAEhDkIAIAJ9CyECIAZB//8BTgRAIAxCgICAgICAwP//AIQhDEIAIQEMAQsCfiAGQQBKBEAgC0IBhiACQj+IhCEBIARC////////P4MgBq1CMIaEIQsgAkIBhgwBCyAGQY9/TARAQgAhAQwCCyAFQUBrIAogBEEBIAZrEIoBIAVBMGogDiAVIAZB8ABqEEQgBUEgaiADIBIgBSkDQCIKIAUpA0giCxBAIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgIgAUIBhiIEVK19IQEgAiAEfQshAiAFQRBqIAMgEkIDQgAQQCAFIAMgEkIFQgAQQCALIAogAyAKQgGDIgMgAnwiAlQgASACIANUrXwiASASViABIBJRG618IgMgClStfCIEIAMgAyAEQoCAgICAgMD//wBUIAIgBSkDEFYgASAFKQMYIgRWIAEgBFEbca18IgNWrXwiBCADIARCgICAgICAwP//AFQgAiAFKQMAViABIAUpAwgiAlYgASACURtxrXwiASADVK18IAyEIQwLIAAgATcDACAAIAw3AwggBUHQAmokAAu/AgEBfyMAQdAAayIEJAACQCADQYCAAU4EQCAEQSBqIAEgAkIAQoCAgICAgID//wAQLyAEKQMoIQIgBCkDICEBIANB//8BSQRAIANB//8AayEDDAILIARBEGogASACQgBCgICAgICAgP//ABAvQf3/AiADIANB/f8CTxtB/v8BayEDIAQpAxghAiAEKQMQIQEMAQsgA0GBgH9KDQAgBEFAayABIAJCAEKAgICAgICAORAvIAQpA0ghAiAEKQNAIQEgA0H0gH5LBEAgA0GN/wBqIQMMAQsgBEEwaiABIAJCAEKAgICAgICAORAvQeiBfSADIANB6IF9TRtBmv4BaiEDIAQpAzghAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhAvIAAgBCkDCDcDCCAAIAQpAwA3AwAgBEHQAGokAAs8ACAAIAE3AwAgACACQv///////z+DIAJCgICAgICAwP//AINCMIinIANCMIinQYCAAnFyrUIwhoQ3AwgLwAECAX8CfkF/IQMCQCAAQgBSIAFC////////////AIMiBEKAgICAgIDA//8AViAEQoCAgICAgMD//wBRGw0AIAJC////////////AIMiBUKAgICAgIDA//8AViAFQoCAgICAgMD//wBScQ0AIAAgBCAFhIRQBEBBAA8LIAEgAoNCAFkEQCABIAJSIAEgAlNxDQEgACABIAKFhEIAUg8LIABCAFIgASACVSABIAJRGw0AIAAgASAChYRCAFIhAwsgAws0AQF/IAFBgICAgARPBEAQjAEACyAAIAEQswIiAjYCBCAAIAI2AgAgACACIAFBAnRqNgIICwoAIABBMGtBCkkLFwAgAEEwa0EKSSAAQSByQeEAa0EGSXILEwAgAEEgciAAIABBwQBrQRpJGwspAQF/IAAoAgAiAQRAIAEQvQNBf0cEQCAAKAIARQ8LIABBADYCAAtBAQspAQF/IAAoAgAiAQRAIAEQwwNBf0cEQCAAKAIARQ8LIABBADYCAAtBAQsUACACIAAgASAAayIAEE0gACACagskAQJ/IwBBEGsiAiQAIAEgABDTASEDIAJBEGokACABIAAgAxsLDAAgAEEAIABBf0cbCywBAX8gAUEASARAEIwBAAsgACABEFMiAjYCBCAAIAI2AgAgACABIAJqNgIIC5EBAQN/AkAgASACEIoCIQQjAEEQayIDJAAgBEH3////B00EQAJAIAQQ1AEEQCAAIAQQUCAAIQUMAQsgA0EIaiAEEJ8BQQFqEJ4BIAMoAgwaIAAgAygCCCIFNgIAIAAgAygCDBBcIAAgBDYCBAsgASACIAUQtAMgA0EAOgAHIANBB2oQXSADQRBqJAAMAQsQWwALCw8AIAAgACgCGCABajYCGAsXACAAIAI2AhwgACABNgIUIAAgATYCGAtUAQJ/AkAgACgCACICRQ0AAn8gAigCGCIDIAIoAhxGBEAgAiABIAIoAgAoAjQRBAAMAQsgAiADQQRqNgIYIAMgATYCACABC0F/Rw0AIABBADYCAAsLMQEBfyAAKAIMIgEgACgCEEYEQCAAIAAoAgAoAigRAAAPCyAAIAFBBGo2AgwgASgCAAsnAQF/IAAoAgwiASAAKAIQRgRAIAAgACgCACgCJBEAAA8LIAEoAgALLgEBfyMAQRBrIgEkACABIAA2AgBB6gsgARByEH9BoPEAKAIAEGEaIAFBEGokAAskAQF/AkAgACgCACICRQ0AIAIgARDCA0F/Rw0AIABBADYCAAsLPQEBfyADBEAgACADELcDIAAoAgQhAyACIAFrIgRFIAEgAkZyRQRAIAMgASAE/AoAAAsgACADIARqNgIECwsJACAAEI8CEC0LPQEBfyAAKAIYIgIgACgCHEYEQCAAIAEQowEgACgCACgCNBEEAA8LIAAgAkEBajYCGCACIAE6AAAgARCjAQsqAQF/IAAoAgwiASAAKAIQRgRAIAAgACgCACgCJBEAAA8LIAEsAAAQowELDwAgACAAKAIAKAIYEQAAC6wCAQJ/IwBBEGsiASQAIAAgACgCAEEMaygCAGooAhgEQCABIAA2AgwgAUEAOgAIIAAgACgCAEEMaygCAGoQ2QEEQCAAIAAoAgBBDGsoAgBqKAJIIgIEQCACEMUDCyABQQE6AAgLAkAgAS0ACEUNACAAIAAoAgBBDGsoAgBqKAIYEMQDQX9HDQAgACAAKAIAQQxrKAIAakEBENUBCwJAIAEoAgwiACAAKAIAQQxrKAIAaigCGEUNACABKAIMIgAgACgCAEEMaygCAGoQ2QFFDQAgASgCDCIAIAAoAgBBDGsoAgBqKAIEQYDAAHFFDQAgASgCDCIAIAAoAgBBDGsoAgBqKAIYEMQDQX9HDQAgASgCDCIAIAAoAgBBDGsoAgBqQQEQ1QELCyABQRBqJAALCQAgABCQAhAtCy0AIABByABqEDogAEE8ahA6IABBMGoQOiAAQSRqEDogAEEYahA6IABBDGoQOgsEAEF/C3wBAn8gACAAKAJIIgFBAWsgAXI2AkggACgCFCAAKAIcRwRAIABBAEEAIAAoAiQRAwAaCyAAQQA2AhwgAEIANwMQIAAoAgAiAUEEcQRAIAAgAUEgcjYCAEF/DwsgACAAKAIsIAAoAjBqIgI2AgggACACNgIEIAFBG3RBH3ULBQAQFwALLQAgAEHMAGoQOiAAQUBrEDogAEE0ahA6IABBKGoQOiAAQRxqEDogAEEQahA6CxIAIABFBEBBAA8LIAAgARCWAgsPACAAIAEgAkE0QTUQ0QMLvAIAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACAkKCAkBAgMECgkKCggJBQYHCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCyACIAIoAgAiAUEEajYCACAAIAEyAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEzAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEwAAA3AwAPCyACIAIoAgAiAUEEajYCACAAIAExAAA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAErAwA5AwAPCyAAIAIgAxEBAAsPCyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAPCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwALbwEFfyAAKAIAIgMsAABBMGsiAUEJSwRAQQAPCwNAQX8hBCACQcyZs+YATQRAQX8gASACQQpsIgVqIAEgBUH/////B3NLGyEECyAAIANBAWoiBTYCACADLAABIAQhAiAFIQNBMGsiAUEKSQ0ACyACC/oSAhN/An4jAEFAaiIIJAAgCCABNgI8IAhBKWohFyAIQSdqIRggCEEoaiERAkACQAJAAkADQEEAIQcDQCABIQ0gByAOQf////8Hc0oNAiAHIA5qIQ4CQAJAAkACQCABIgctAAAiCwRAA0ACQAJAIAtB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQsDQCALLQABQSVHBEAgCyEBDAILIAdBAWohByALLQACIAtBAmoiASELQSVGDQALCyAHIA1rIgcgDkH/////B3MiGUoNCSAABEAgACANIAcQQgsgBw0HIAggATYCPCABQQFqIQdBfyEQAkAgASwAAUEwayIKQQlLDQAgAS0AAkEkRw0AIAFBA2ohB0EBIRIgCiEQCyAIIAc2AjxBACEMAkAgBywAACILQSBrIgFBH0sEQCAHIQoMAQsgByEKQQEgAXQiAUGJ0QRxRQ0AA0AgCCAHQQFqIgo2AjwgASAMciEMIAcsAAEiC0EgayIBQSBPDQEgCiEHQQEgAXQiAUGJ0QRxDQALCwJAIAtBKkYEQAJ/AkAgCiwAAUEwayIBQQlLDQAgCi0AAkEkRw0AAn8gAEUEQCAEIAFBAnRqQQo2AgBBAAwBCyADIAFBA3RqKAIACyEPIApBA2ohAUEBDAELIBINBiAKQQFqIQEgAEUEQCAIIAE2AjxBACESQQAhDwwDCyACIAIoAgAiB0EEajYCACAHKAIAIQ9BAAshEiAIIAE2AjwgD0EATg0BQQAgD2shDyAMQYDAAHIhDAwBCyAIQTxqEM8DIg9BAEgNCiAIKAI8IQELQQAhB0F/IQkCf0EAIAEtAABBLkcNABogAS0AAUEqRgRAAn8CQCABLAACQTBrIgpBCUsNACABLQADQSRHDQAgAUEEaiEBAn8gAEUEQCAEIApBAnRqQQo2AgBBAAwBCyADIApBA3RqKAIACwwBCyASDQYgAUECaiEBQQAgAEUNABogAiACKAIAIgpBBGo2AgAgCigCAAshCSAIIAE2AjwgCUEATgwBCyAIIAFBAWo2AjwgCEE8ahDPAyEJIAgoAjwhAUEBCyEUA0AgByEVQRwhCiABIhMsAAAiB0H7AGtBRkkNCyABQQFqIQEgByAVQTpsakHv8ABqLQAAIgdBAWtB/wFxQQhJDQALIAggATYCPAJAIAdBG0cEQCAHRQ0MIBBBAE4EQCAARQRAIAQgEEECdGogBzYCAAwMCyAIIAMgEEEDdGopAwA3AzAMAgsgAEUNCCAIQTBqIAcgAiAGEM4DDAELIBBBAE4NC0EAIQcgAEUNCAsgAC0AAEEgcQ0LIAxB//97cSILIAwgDEGAwABxGyEMQQAhEEHuCCEWIBEhCgJAAkACfwJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkAgEy0AACIHwCITQVNxIBMgB0EPcUEDRhsgEyAVGyIHQdgAaw4hBBYWFhYWFhYWEBYJBhAQEBYGFhYWFgIFAxYWChYBFhYEAAsCQCAHQcEAaw4HEBYLFhAQEAALIAdB0wBGDQsMFQsgCCkDMCEbQe4IDAULQQAhBwJAAkACQAJAAkACQAJAIBUOCAABAgMEHAUGHAsgCCgCMCAONgIADBsLIAgoAjAgDjYCAAwaCyAIKAIwIA6sNwMADBkLIAgoAjAgDjsBAAwYCyAIKAIwIA46AAAMFwsgCCgCMCAONgIADBYLIAgoAjAgDqw3AwAMFQtBCCAJIAlBCE0bIQkgDEEIciEMQfgAIQcLIBEhASAHQSBxIQsgCCkDMCIbIhpQRQRAA0AgAUEBayIBIBqnQQ9xLQCAdSALcjoAACAaQg9WIBpCBIghGg0ACwsgASENIAxBCHFFIBtQcg0DIAdBBHZB7ghqIRZBAiEQDAMLIBEhASAIKQMwIhsiGlBFBEADQCABQQFrIgEgGqdBB3FBMHI6AAAgGkIHViAaQgOIIRoNAAsLIAEhDSAMQQhxRQ0CIAkgFyABayIBIAEgCUgbIQkMAgsgCCkDMCIbQgBTBEAgCEIAIBt9Ihs3AzBBASEQQe4IDAELIAxBgBBxBEBBASEQQe8IDAELQfAIQe4IIAxBAXEiEBsLIRYgGyAREKYBIQ0LIBQgCUEASHENESAMQf//e3EgDCAUGyEMIBtCAFIgCXJFBEAgESENQQAhCQwOCyAJIBtQIBEgDWtqIgEgASAJSBshCQwNCyAILQAwIQcMCwsgCCgCMCIBQZUcIAEbIg1BAEH/////ByAJIAlB/////wdPGyIHEOABIgEgDWsgByABGyIBIA1qIQogCUEATgRAIAshDCABIQkMDAsgCyEMIAEhCSAKLQAADQ8MCwsgCCkDMCIaUEUNAUEAIQcMCQsgCQRAIAgoAjAMAgtBACEHIABBICAPQQAgDBBFDAILIAhBADYCDCAIIBo+AgggCCAIQQhqIgc2AjBBfyEJIAcLIQtBACEHA0ACQCALKAIAIg1FDQAgCEEEaiANEMwDIg1BAEgNDyANIAkgB2tLDQAgC0EEaiELIAcgDWoiByAJSQ0BCwtBPSEKIAdBAEgNDCAAQSAgDyAHIAwQRSAHRQRAQQAhBwwBC0EAIQogCCgCMCELA0AgCygCACINRQ0BIAhBBGoiCSANEMwDIg0gCmoiCiAHSw0BIAAgCSANEEIgC0EEaiELIAcgCksNAAsLIABBICAPIAcgDEGAwABzEEUgDyAHIAcgD0gbIQcMCAsgFCAJQQBIcQ0JQT0hCiAAIAgrAzAgDyAJIAwgByAFESAAIgdBAE4NBwwKCyAHLQABIQsgB0EBaiEHDAALAAsgAA0JIBJFDQNBASEHA0AgBCAHQQJ0aigCACIABEAgAyAHQQN0aiAAIAIgBhDOA0EBIQ4gB0EBaiIHQQpHDQEMCwsLIAdBCk8EQEEBIQ4MCgsDQCAEIAdBAnRqKAIADQFBASEOIAdBAWoiB0EKRw0ACwwJC0EcIQoMBgsgCCAHOgAnQQEhCSAYIQ0gCyEMCyAJIAogDWsiCyAJIAtKGyIBIBBB/////wdzSg0DQT0hCiAPIAEgEGoiCSAJIA9IGyIHIBlLDQQgAEEgIAcgCSAMEEUgACAWIBAQQiAAQTAgByAJIAxBgIAEcxBFIABBMCABIAtBABBFIAAgDSALEEIgAEEgIAcgCSAMQYDAAHMQRSAIKAI8IQEMAQsLC0EAIQ4MAwtBPSEKC0GI6gEgCjYCAAtBfyEOCyAIQUBrJAAgDgvCAgEEfyMAQdABayIFJAAgBSACNgLMASAFQaABaiICQQBBKPwLACAFIAUoAswBNgLIAQJAQQAgASAFQcgBaiAFQdAAaiACIAMgBBDQA0EASARAQX8hBAwBCyAAKAJMQQBIIAAgACgCACIIQV9xNgIAAn8CQAJAIAAoAjBFBEAgAEHQADYCMCAAQQA2AhwgAEIANwMQIAAoAiwhBiAAIAU2AiwMAQsgACgCEA0BC0F/IAAQ3wENARoLIAAgASAFQcgBaiAFQdAAaiAFQaABaiADIAQQ0AMLIQIgBgRAIABBAEEAIAAoAiQRAwAaIABBADYCMCAAIAY2AiwgAEEANgIcIAAoAhQhASAAQgA3AxAgAkF/IAEbIQILIAAgACgCACIAIAhBIHFyNgIAQX8gAiAAQSBxGyEEDQALIAVB0AFqJAAgBAt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARDSAyEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALCz4BAX8jAEEQayIBJAAgASAANgIMAn8gAEEETwRAQZ0fIAFBDGoQlwJBAAwBCyAAQQJ0KAKILQsgAUEQaiQACwYAIAEQLQsJACABIAJsEDQLJQECfyAAKAIEIgAQqAFBAWoiARA0IgIEfyACIAAgARBxBUEACwsNACAAKAIEIAAoAgBrCzABAX8jAEEQayIEJAAgACgCACEAIAQgAzoADyABIAIgBEEPaiAAEQMAIARBEGokAAuNAgIBfwF8IwBBEGsiAyQAIANBDmogASACIAAoAgARBQAgAyADLwAOOwEMIwBBEGsiASQAAkAgAy0ADUEBRgRAIwBBEGsiAiQAQazgAS0AAEEBcUUEQEECQYQsQQMQDyEAQazgAUEBOgAAQajgASAANgIACyACIAMtAAw2AgggAkEANgIEQajgASgCAEEAQQAgAkEEaiACQQhqEA4hBCACIAIoAgQ2AgAgAUEIaiIAIAT8AzYCBCAAQfzgATYCACACEJ8CIAJBEGokACAAKAIEIQIgAEEANgIEIAAQtQEMAQsgAUEANgIMIAFB/OABNgIIIAFBCGoQtQFBAiECCyABQRBqJAAgA0EQaiQAIAILVAECfyMAQRBrIgQkACABIAAoAgQiBUEBdWohASAAKAIAIQAgBUEBcQRAIAEoAgAgAGooAgAhAAsgBCADOgAPIAEgAiAEQQ9qIAARBQAgBEEQaiQAC1IBAn8jAEEQayIDJAAgASAAKAIEIgRBAXVqIQEgACgCACEAIARBAXEEQCABKAIAIABqKAIAIQALIAMgAjoADyABIANBD2ogABEBACADQRBqJAALMAEBfyMAQRBrIgQkACAAKAIAIQAgBCADOAIMIAEgAiAEQQxqIAARAwAgBEEQaiQAC40CAgF/AXwjAEEQayIDJAAgA0EIaiABIAIgACgCABEFACADIAMpAgg3AwAjAEEQayIBJAACQCADLQAEQQFGBEAjAEEQayICJABBoOABLQAAQQFxRQRAQQJBxCZBAxAPIQBBoOABQQE6AABBnOABIAA2AgALIAIgAyoCADgCCCACQQA2AgRBnOABKAIAQQBBACACQQRqIAJBCGoQDiEEIAIgAigCBDYCACABQQhqIgAgBPwDNgIEIABB/OABNgIAIAIQnwIgAkEQaiQAIAAoAgQhAiAAQQA2AgQgABC1AQwBCyABQQA2AgwgAUH84AE2AgggAUEIahC1AUECIQILIAFBEGokACADQRBqJAAgAgtUAQJ/IwBBEGsiBCQAIAEgACgCBCIFQQF1aiEBIAAoAgAhACAFQQFxBEAgASgCACAAaigCACEACyAEIAM4AgwgASACIARBDGogABEFACAEQRBqJAALUgECfyMAQRBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQAgBEEBcQRAIAEoAgAgAGooAgAhAAsgAyACOAIMIAEgA0EMaiAAEQEAIANBEGokAAsbACAAIAEoAgggBRA7BEAgASACIAMgBBDnAQsLOAAgACABKAIIIAUQOwRAIAEgAiADIAQQ5wEPCyAAKAIIIgAgASACIAMgBCAFIAAoAgAoAhQRCgALkgIBBn8gACABKAIIIAUQOwRAIAEgAiADIAQQ5wEPCyABLQA1IAAoAgwhBiABQQA6ADUgAS0ANCABQQA6ADQgAEEQaiIJIAEgAiADIAQgBRDlASABLQA0IgpyIQggAS0ANSILciEHAkAgBkECSQ0AIAkgBkEDdGohCSAAQRhqIQYDQCABLQA2DQECQCAKQQFxBEAgASgCGEEBRg0DIAAtAAhBAnENAQwDCyALQQFxRQ0AIAAtAAhBAXFFDQILIAFBADsBNCAGIAEgAiADIAQgBRDlASABLQA1IgsgB3JBAXEhByABLQA0IgogCHJBAXEhCCAGQQhqIgYgCUkNAAsLIAEgB0EBcToANSABIAhBAXE6ADQLkgEAIAAgASgCCCAEEDsEQCABIAIgAxDmAQ8LAkAgACABKAIAIAQQO0UNAAJAIAEoAhAgAkcEQCACIAEoAhRHDQELIANBAUcNASABQQE2AiAPCyABIAI2AhQgASADNgIgIAEgASgCKEEBajYCKAJAIAEoAiRBAUcNACABKAIYQQJHDQAgAUEBOgA2CyABQQQ2AiwLC/YBACAAIAEoAgggBBA7BEAgASACIAMQ5gEPCwJAIAAgASgCACAEEDsEQAJAIAEoAhAgAkcEQCACIAEoAhRHDQELIANBAUcNAiABQQE2AiAPCyABIAM2AiACQCABKAIsQQRGDQAgAUEAOwE0IAAoAggiACABIAIgAkEBIAQgACgCACgCFBEKACABLQA1QQFGBEAgAUEDNgIsIAEtADRFDQEMAwsgAUEENgIsCyABIAI2AhQgASABKAIoQQFqNgIoIAEoAiRBAUcNASABKAIYQQJHDQEgAUEBOgA2DwsgACgCCCIAIAEgAiADIAQgACgCACgCGBELAAsLrwQBA38gACABKAIIIAQQOwRAIAEgAiADEOYBDwsCQAJAIAAgASgCACAEEDsEQAJAIAEoAhAgAkcEQCACIAEoAhRHDQELIANBAUcNAyABQQE2AiAPCyABIAM2AiAgASgCLEEERg0BIABBEGoiBSAAKAIMQQN0aiEHQQAhAwNAAkACQCABAn8CQCAFIAdPDQAgAUEAOwE0IAUgASACIAJBASAEEOUBIAEtADYNACABLQA1QQFHDQMgAS0ANEEBRgRAIAEoAhhBAUYNA0EBIQNBASEGIAAtAAhBAnFFDQMMBAtBASEDIAAtAAhBAXENA0EDDAELQQNBBCADGws2AiwgBg0FDAQLIAFBAzYCLAwECyAFQQhqIQUMAAsACyAAKAIMIQUgAEEQaiIGIAEgAiADIAQQtwEgBUECSQ0BIAYgBUEDdGohBiAAQRhqIQUCQCAAKAIIIgBBAnFFBEAgASgCJEEBRw0BCwNAIAEtADYNAyAFIAEgAiADIAQQtwEgBUEIaiIFIAZJDQALDAILIABBAXFFBEADQCABLQA2DQMgASgCJEEBRg0DIAUgASACIAMgBBC3ASAFQQhqIgUgBkkNAAwDCwALA0AgAS0ANg0CIAEoAiRBAUYEQCABKAIYQQFGDQMLIAUgASACIAMgBBC3ASAFQQhqIgUgBkkNAAsMAQsgASACNgIUIAEgASgCKEEBajYCKCABKAIkQQFHDQAgASgCGEECRw0AIAFBAToANgsLjgUBBH8jAEFAaiIEJAACQCABQaDZAUEAEDsEQCACQQA2AgBBASEFDAELAkAgACABIAAtAAhBGHEEf0EBBSABRQ0BIAFB9NYBEFIiA0UNASADLQAIQRhxQQBHCxA7IQYLIAYEQEEBIQUgAigCACIARQ0BIAIgACgCADYCAAwBCwJAIAFFDQAgAUGk1wEQUiIGRQ0BIAIoAgAiAQRAIAIgASgCADYCAAsgBigCCCIDIAAoAggiAUF/c3FBB3EgA0F/cyABcUHgAHFyDQFBASEFIAAoAgwgBigCDEEAEDsNASAAKAIMQZTZAUEAEDsEQCAGKAIMIgBFDQIgAEHU1wEQUkUhBQwCCyAAKAIMIgNFDQBBACEFIANBpNcBEFIiAQRAIAAtAAhBAXFFDQICfyAGKAIMIQBBACECAkADQEEAIABFDQIaIABBpNcBEFIiA0UNASADKAIIIAEoAghBf3NxDQFBASABKAIMIAMoAgxBABA7DQIaIAEtAAhBAXFFDQEgASgCDCIARQ0BIABBpNcBEFIiAQRAIAMoAgwhAAwBCwsgAEGI2AEQUiIARQ0AIAAgAygCDBCpAiECCyACCyEFDAILIANBiNgBEFIiAQRAIAAtAAhBAXFFDQIgASAGKAIMEKkCIQUMAgsgA0HE1gEQUiIBRQ0BIAYoAgwiAEUNASAAQcTWARBSIgBFDQEgAigCACEDIARBCGpBAEE4/AsAIAQgA0EARzoAOyAEQX82AhAgBCABNgIMIAQgADYCBCAEQQE2AjQgACAEQQRqIANBASAAKAIAKAIcEQgAIAQoAhwiAEEBRgRAIAIgBCgCFEEAIAMbNgIACyAAQQFGIQUMAQtBACEFCyAEQUBrJAAgBQtvAQJ/IAAgASgCCEEAEDsEQCABIAIgAxDpAQ8LIAAoAgwhBCAAQRBqIgUgASACIAMQqwICQCAEQQJJDQAgBSAEQQN0aiEEIABBGGohAANAIAAgASACIAMQqwIgAS0ANg0BIABBCGoiACAESQ0ACwsLMgAgACABKAIIQQAQOwRAIAEgAiADEOkBDwsgACgCCCIAIAEgAiADIAAoAgAoAhwRCAALGQAgACABKAIIQQAQOwRAIAEgAiADEOkBCwvIAQECfyMAQdAAayIDJAACQAJ/QQEgACABQQAQOw0AGkEAIAFFDQAaQQAgAUHE1gEQUiIBRQ0AGiACKAIAIgRFDQEgA0EYakEAQTj8CwAgA0EBOgBLIANBfzYCICADIAA2AhwgAyABNgIUIANBATYCRCABIANBFGogBEEBIAEoAgAoAhwRCAAgAygCLCIAQQFGBEAgAiADKAIkNgIACyAAQQFGCyADQdAAaiQADwsgA0GeFjYCCCADQecDNgIEIANBig02AgAQPQALAwAACxEBAX9BBBBTIgBBADYCACAACwkAQaD0ARA5GgslAEGs9AEtAABFBEBBoPQBQdisARCRAUGs9AFBAToAAAtBoPQBCwkAQZD0ARAgGgskAEGc9AEtAABFBEBBkPQBQc4NELABQZz0AUEBOgAAC0GQ9AELCQBBgPQBEDkaCyUAQYz0AS0AAEUEQEGA9AFBhKwBEJEBQYz0AUEBOgAAC0GA9AELCQBB8PMBECAaCyQAQfzzAS0AAEUEQEHw8wFBmRUQsAFB/PMBQQE6AAALQfDzAQsJAEHg8wEQORoLqQIBBH8gAiABIAAoAgBqIgBHBEACQCACKAIEIgQgAigCACIBa0ECdSIGIAAoAgggACgCACICa0ECdU0EQCAGIAAoAgQiAyACayIFQQJ1SwRAIAIgA0cEQCAFBEAgAiABIAX8CgAACyAAKAIEIQMLIAQgASAFaiIBayICRSABIARGckUEQCADIAEgAvwKAAALIAAgAiADajYCBAwCCyAEIAFrIgNFIAEgBEZyRQRAIAIgASAD/AoAAAsgACACIANqNgIEDAELIAAoAgAiAgRAIAAgAjYCBCAAKAIIGiACEC0gAEEANgIIIABCADcCAAsgACAAIAYQtgEQrgMgACgCBCECIAQgAWsiA0UgASAERnJFBEAgAiABIAP8CgAACyAAIAIgA2o2AgQLCwslAEHs8wEtAABFBEBB4PMBQeCrARCRAUHs8wFBAToAAAtB4PMBCwkAQeTeARAgGgsaAEHd8wEtAABFBEBB3fMBQQE6AAALQeTeAQsJAEHQ8wEQORoLJQBB3PMBLQAARQRAQdDzAUG8qwEQkQFB3PMBQQE6AAALQdDzAQsJAEHY3gEQIBoLGgBBzfMBLQAARQRAQc3zAUEBOgAAC0HY3gELGwBBqPwBIQADQCAAQQxrEDkiAEGQ/AFHDQALC1QAQczzAS0AAARAQcjzASgCAA8LQaj8AS0AAEUEQEGo/AFBAToAAAtBkPwBQfjUARApQZz8AUGE1QEQKUHM8wFBAToAAEHI8wFBkPwBNgIAQZD8AQsbAEGI/AEhAANAIABBDGsQICIAQfD7AUcNAAsLFQAgASAAKAIAaiEAQQwQUyAAEIEBC1IAQcTzAS0AAARAQcDzASgCAA8LQYj8AS0AAEUEQEGI/AFBAToAAAtB8PsBQdEVECpB/PsBQc4VECpBxPMBQQE6AABBwPMBQfD7ATYCAEHw+wELGwBB4PsBIQADQCAAQQxrEDkiAEHA+QFHDQALC7ACAEG88wEtAAAEQEG48wEoAgAPC0Hg+wEtAABFBEBB4PsBQQE6AAALQcD5AUHw0AEQKUHM+QFBkNEBEClB2PkBQbTRARApQeT5AUHM0QEQKUHw+QFB5NEBEClB/PkBQfTRARApQYj6AUGI0gEQKUGU+gFBnNIBEClBoPoBQbjSARApQaz6AUHg0gEQKUG4+gFBgNMBEClBxPoBQaTTARApQdD6AUHI0wEQKUHc+gFB2NMBEClB6PoBQejTARApQfT6AUH40wEQKUGA+wFB5NEBEClBjPsBQYjUARApQZj7AUGY1AEQKUGk+wFBqNQBEClBsPsBQbjUARApQbz7AUHI1AEQKUHI+wFB2NQBEClB1PsBQejUARApQbzzAUEBOgAAQbjzAUHA+QE2AgBBwPkBCxsAQbD5ASEAA0AgAEEMaxAgIgBBkPcBRw0ACwuYAgBBtPMBLQAABEBBsPMBKAIADwtBsPkBLQAARQRAQbD5AUEBOgAAC0GQ9wFBmwgQKkGc9wFBkggQKkGo9wFBzQ8QKkG09wFBnA4QKkHA9wFB4QgQKkHM9wFBhxEQKkHY9wFBowgQKkHk9wFBkwkQKkHw9wFB1QwQKkH89wFBxAwQKkGI+AFBzAwQKkGU+AFB3wwQKkGg+AFB6g0QKkGs+AFBlRUQKkG4+AFBhg0QKkHE+AFB9gsQKkHQ+AFB4QgQKkHc+AFB3g0QKkHo+AFBkA4QKkH0+AFB0w8QKkGA+QFByg0QKkGM+QFBngoQKkGY+QFBiwkQKkGk+QFB+BQQKkG08wFBAToAAEGw8wFBkPcBNgIAQZD3AQsbAEGI9wEhAANAIABBDGsQOSIAQeD1AUcNAAsLzAEAQazzAS0AAARAQajzASgCAA8LQYj3AS0AAEUEQEGI9wFBAToAAAtB4PUBQZzOARApQez1AUG4zgEQKUH49QFB1M4BEClBhPYBQfTOARApQZD2AUGczwEQKUGc9gFBwM8BEClBqPYBQdzPARApQbT2AUGA0AEQKUHA9gFBkNABEClBzPYBQaDQARApQdj2AUGw0AEQKUHk9gFBwNABEClB8PYBQdDQARApQfz2AUHg0AEQKUGs8wFBAToAAEGo8wFB4PUBNgIAQeD1AQsbAEHY9QEhAANAIABBDGsQICIAQbD0AUcNAAsLvgEAQaTzAS0AAARAQaDzASgCAA8LQdj1AS0AAEUEQEHY9QFBAToAAAtBsPQBQcwIECpBvPQBQdMIECpByPQBQbEIECpB1PQBQbkIECpB4PQBQagIECpB7PQBQdoIECpB+PQBQcMIECpBhPUBQdoNECpBkPUBQeINECpBnPUBQeoQECpBqPUBQasTECpBtPUBQY8JECpBwPUBQbIPECpBzPUBQcIKECpBpPMBQQE6AABBoPMBQbD0ATYCAEGw9AELDwAgASAAKAIAaiACOgAACwsAIABBpKsBEJEBCwoAIABB7hAQsAELCwAgAEGQqwEQkQELCgAgAEHlEBCwAQsMACAAIAFBEGoQ5AELDAAgACABQQxqEOQBCwcAIAAsAAkLBwAgACwACAsJACAAEMMCEC0LDQAgASAAKAIAai0AAAsJACAAEMQCEC0LFQAgACgCCCIARQRAQQEPCyAAEMwCC44BAQZ/A0ACQCACIANGIAQgCE1yDQBBASEGIAAoAgghByMAQRBrIgUkACAFIAc2AgwgBUEIaiAFQQxqEGNBACACIAMgAmsgAUH07wEgARsQ0gEhChBiIAVBEGokAAJAAkAgCiIFQQJqDgMCAgEACyAFIQYLIAhBAWohCCAGIAlqIQkgAiAGaiECDAELCyAJC0YBAn8gACgCCCECIwBBEGsiASQAIAEgAjYCDCABQQhqIAFBDGoQYxBiIAFBEGokACAAKAIIIgBFBEBBAQ8LIAAQzAJBAUYLiQEBAn8jAEEQayIGJAAgBCACNgIAAn9BAiAGQQxqIgVBACAAKAIIEO4BIgBBAWpBAkkNABpBASAAQQFrIgIgAyAEKAIAa0sNABoDfyACBH8gBS0AACEAIAQgBCgCACIBQQFqNgIAIAEgADoAACACQQFrIQIgBUEBaiEFDAEFQQALCwsgBkEQaiQAC7kGAQ1/IwBBEGsiESQAIAIhCANAAkAgAyAIRgRAIAMhCAwBCyAILQAARQ0AIAhBAWohCAwBCwsgByAFNgIAIAQgAjYCAANAAkACfwJAIAIgA0YgBSAGRnINACARIAEpAgA3AwggACgCCCEJIwBBEGsiECQAIBAgCTYCDCAQQQhqIBBBDGoQYyAIIAJrIQ5BACELIwBBkAhrIgwkACAMIAQoAgAiCTYCDCAFIAxBEGogBRshDwJAAkACQCAJRSAGIAVrQQJ1QYACIAUbIg1FckUEQANAIA5BgwFLIA5BAnYiCiANT3JFBEAgCSEKDAQLIA8gDEEMaiAKIA0gCiANSRsgARCbAyESIAwoAgwhCiASQX9GBEBBACENQX8hCwwDCyANIBJBACAPIAxBEGpHGyIUayENIA8gFEECdGohDyAJIA5qIAprQQAgChshDiALIBJqIQsgCkUNAiAKIQkgDQ0ADAILAAsgCSEKCyAKRQ0BCyANRSAORXINACALIQkDQAJAAkAgDyAKIA4gARDSASILQQJqQQJNBEACQAJAIAtBAWoOAgYAAQsgDEEANgIMDAILIAFBADYCAAwBCyAMIAwoAgwgC2oiCjYCDCAJQQFqIQkgDUEBayINDQELIAkhCwwCCyAPQQRqIQ8gDiALayEOIAkhCyAODQALCyAFBEAgBCAMKAIMNgIACyAMQZAIaiQAEGIgEEEQaiQAAkACQAJAAkAgCyIJQX9GBEADQCAHIAU2AgAgAiAEKAIARg0GQQEhBgJAAkACQCAFIAIgCCACayARQQhqIAAoAggQzQIiAUECag4DBwACAQsgBCACNgIADAQLIAEhBgsgAiAGaiECIAcoAgBBBGohBQwACwALIAcgBygCACAJQQJ0aiIFNgIAIAUgBkYNAyAEKAIAIQIgAyAIRg0GIAUgAkEBIAEgACgCCBDNAkUNAQtBAgwECyAHIAcoAgBBBGoiBTYCACAEIAQoAgBBAWoiAjYCACACIQgDQCADIAhGDQUgCC0AAEUNBiAIQQFqIQgMAAsACyAEIAI2AgBBAQwCCyAEKAIAIQILIAIgA0cLIBFBEGokAA8LIAMhCAwACwALpgUBDH8jAEEQayIPJAAgAiEIA0ACQCADIAhGBEAgAyEIDAELIAgoAgBFDQAgCEEEaiEIDAELCyAHIAU2AgAgBCACNgIAAkADQAJAAkAgAiADRiAFIAZGcgR/IAIFIA8gASkCADcDCEEBIRAgBSEJIAYgBWshCyAAKAIIIQpBACENIwBBEGsiDiQAIA4gCjYCDCAOQQhqIA5BDGoQYyMAQRBrIhEkAAJAIAQoAgAiCkUgCCACa0ECdSISRXINACALQQAgBRshCwNAIBFBDGogCSALQQRJGyAKKAIAEJYCIgxBf0YEQEF/IQ0MAgsgCQR/IAtBA00EQCALIAxJDQMgCSARQQxqIAwQcRoLIAsgDGshCyAJIAxqBUEACyEJIAooAgBFBEBBACEKDAILIAwgDWohDSAKQQRqIQogEkEBayISDQALCyAJBEAgBCAKNgIACyARQRBqJAAQYiAOQRBqJAACQAJAAkACQCANIglBAWoOAgAIAQsgByAFNgIAA0AgAiAEKAIARg0CIAUgAigCACAAKAIIEO4BIgFBf0YNAiAHIAcoAgAgAWoiBTYCACACQQRqIQIMAAsACyAHIAcoAgAgCWoiBTYCACAFIAZGDQEgAyAIRgRAIAQoAgAhAiADIQgMBgsgD0EEaiICQQAgACgCCBDuASIIQX9GDQQgBiAHKAIAayAISQ0GA0AgCARAIAItAAAhBSAHIAcoAgAiCUEBajYCACAJIAU6AAAgCEEBayEIIAJBAWohAgwBCwsgBCAEKAIAQQRqIgI2AgAgAiEIA0AgAyAIRgRAIAMhCAwFCyAIKAIARQ0EIAhBBGohCAwACwALIAQgAjYCAAwDCyAEKAIACyADRyEQDAMLIAcoAgAhBQwBCwtBAiEQCyAPQRBqJAAgEAsJACAAENsCEC0LMwAjAEEQayIAJAAgACAENgIMIAAgAyACazYCCCAAQQxqIABBCGoQtQMoAgAgAEEQaiQACzsAA0AgASACRkUEQCADIQAgBCABLAAAEEwEfyABLQAABSAACzoAACAEQQFqIQQgAUEBaiEBDAELCyABCwsAIAEgAiABEEwbCyoAA0AgASACRkUEQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohAQwBCwsgAQsPACAAIAEgAkGgkAEQpgILHQAgARBMBH9BoJABKAIAIAFBAnRqKAIABSABC8ALDwAgACABIAJBmIQBEKYCCyEAIAEQTAR/QZiEASgCACABQf8BcUECdGooAgAFIAELwAsJACAAENACEC0LOwADQCABIAJGRQRAIAMhACAEIAEoAgAQTAR/IAEoAgAFIAALOgAAIARBAWohBCABQQRqIQEMAQsLIAELDAAgASACIAEQTBvACyoAA0AgASACRkUEQCADIAEsAAA2AgAgA0EEaiEDIAFBAWohAQwBCwsgAQsPACAAIAEgAkGgkAEQpwILHAAgARBMBH9BoJABKAIAIAFBAnRqKAIABSABCwsPACAAIAEgAkGYhAEQpwILHAAgARBMBH9BmIQBKAIAIAFBAnRqKAIABSABCwsQACAABEAgABDHAwsgABAtCzoAA0ACQCACIANGDQAgAigCABBMRQ0AIAIoAgBBAnRBkKIBaigCACABcUUNACACQQRqIQIMAQsLIAILOQADQAJAIAIgA0YNACACKAIAEEwEQCACKAIAQQJ0QZCiAWooAgAgAXENAQsgAkEEaiECDAELCyACC0YAA0AgASACRkUEQEEAIQAgAyABKAIAEEwEfyABKAIAQQJ0QZCiAWooAgAFQQALNgIAIANBBGohAyABQQRqIQEMAQsLIAELIwBBACEAIAIQTAR/IAJBAnRBkKIBaigCACABcUEARwVBAAsLDwAgACAAKAIAKAIEEQIACwkAIAAQ1gIQLQsVAQF/QdQAEFMiAEEAQdQA/AsAIAALFAAgACgCACABaiACLQAAOgAAQQELrgEAAkAgBRBHRQRAIAAgBSkCADcCACAAIAUoAgg2AgggABBeGgwBCyAFKAIAIQQgBSgCBCECIwBBEGsiAyQAAkACQAJAIAIQvQEEQCAAIgEgAhBQDAELIAJB9////wNLDQEgA0EIaiACEJABQQFqEI8BIAMoAgwaIAAgAygCCCIBNgIAIAAgAygCDBBcIAAgAjYCBAsgASAEIAJBAWoQZSADQRBqJAAMAQsQWwALCwsJACAAIAUQ5AELhAMBCH8jAEHgA2siACQAIABB3ANqIgYgAxAnIAYQSCEKIAUQHwRAIAVBABDMASgCACAKQS0QS0YhCwsgAiALIABB3ANqIABB2ANqIABB1ANqIABB0ANqIABBxANqECQiDCAAQbgDahAkIgYgAEGsA2oQJCIHIABBqANqEN8CIABB4wA2AhAgAEEIakEAIABBEGoiAhA2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KAK8ASAEEI8DOQMAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwvKBAEDfwJ/IwBB4AJrIgAkACAAIAI2AtgCIAAgATYC3AIgAEHMAWogAyAAQeABaiAAQdwBaiAAQdgBahD7ASAAQcABahAkIgEgARAoECEgACABQQAQIiICNgK8ASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGQQAhAwNAAkACQAJAIABB3AJqIABB2AJqECsNACAAKAK8ASABEB8gAmpGBEAgARAfIQYgASABEB9BAXQQISABIAEQKBAhIAAgBiABQQAQIiICajYCvAELIABB3AJqEDcgAEEHaiAAQQZqIAIgAEG8AWogACgC3AEgACgC2AEgAEHMAWogAEEQaiAAQQxqIABBCGogAEHgAWoQ+gENACADDQFBACEDIAAoArwBIAJrIgdBAEwNAgJAAkAgAi0AACIGQStrIggOAwEAAQALIAZBLkYNAkEBIQMgBkEwa0H/AXFBCkkNAwwBCyAHQQFGDQICQCAIDgMAAwADCyACLQABIgZBLkYNAUEBIQMgBkEwa0H/AXFBCU0NAgsCQCAAQcwBahAfRQ0AIAAtAAdBAXFFDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK8ASAEEJEDOAIAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCSAzcDACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCVAzsBACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtB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DCECDAYLIANBIHIhAyABQQRqIQIgBEEEayEEIAEtAAMgCHQgB2ohBwsCQCAFQQRxRQ0AIAcgBigCIEYNACAKQd4ONgIYIAZB0f4ANgIEIAIhASAGKAIEIQUMAQsLIAIhAUEAIQdBACEDCyAGQdD+ADYCBAtBASECDAELQQAhBCAMIQILIAogDzYCECAKIBA2AgwgCiAENgIEIAogATYCACAGIAM2AkAgBiAHNgI8AkACQCAGKAIsRQRAIA8gFUYNASAGKAIEQdD+AEsNAQsCfyAVIA9rIQMCQAJAIAooAhwiASgCOCIMRQRAQQEhBSABIAooAihBASABKAIodEEBIAooAiARAwAiDDYCOCAMRQ0BCyABKAIsIgRFBEAgAUIANwIwIAFBASABKAIodCIENgIsCyADIARPBEAgBARAIAwgECAEayAE/AoAAAsgAUEANgI0DAILIAQgASgCNCIIayIFIAMgAyAFSxsiBARAIAggDGogECADayAE/AoAAAsgAyAFSwRAIAMgBGsiAwRAIAEoAjggECADayAD/AoAAAsgASADNgI0DAILQQAhBSABIAEoAjQgBGoiA0EAIAMgASgCLCIMRxs2AjQgDCABKAIwIgNNDQAgASADIARqNgIwCyAFDAELIAEgASgCLDYCMEEACw0BIAooAhAhDyAKKAIEIQQLIAogCigCCCAkIARrajYCCCAKIBUgD2siASAKKAIUajYCFCAGIAYoAiAgAWo2AiAgBi0ADEEEcUUgDyAVRnJFBEAgCigCDCABayEDIAYoAhwhBSAGAn8gBigCFARAIAUgAyABEFEMAQsgBSADIAEQswELIgE2AhwgCiABNgIwCyAKIAYoAkBBwABBACAGKAIIG2pBgAFBACAGKAIEIgFBv/4ARhtqQYACQYACQQAgAUHC/gBGGyABQcf+AEYbajYCLCACQXsgAhsgAiAPIBVGGyACIAQgJEYbIRwMAgsgBkHS/gA2AgQLQXwhHAsgF0EQaiQAIBxBAUsNASATQagBaiEBIBMoAqwBIQMgGigCACEJIBooAgQgEygCFGshDCMAQSBrIggkAAJAIAwgCWsiBUEATA0AIAEoAgggASgCBCICayAFTgRAIAIgA2siBCAFSARAIAwgBCAJaiIHayILRSAHIAxGckUEQCACIAcgC/wKAAALIAEgAiALajYCBCAE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eQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AE5vdgBUaHUAQXVndXN0AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAZ2V0AE9jdABmbG9hdABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AFNhdABudW1Qb2ludHMAY29sb3JzAFVucGFja09wdGlvbnMAcG9zaXRpb25zAHJvdGF0aW9ucwB0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scwBpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzAHNjYWxlcwBhbHBoYXMAW1NQWjogRVJST1JdIENoZWNrIGZhaWxlZDogJXM6JWQ6ICVzAHZmMzJfcHRyAEFwcgB2ZWN0b3IAbW9uZXlfZ2V0IGVycm9yAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiByZWFkIGVycm9yAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAERlY2VtYmVyAHVuc2lnbmVkIGNoYXIAaW9zX2Jhc2U6OmNsZWFyAE1hcgAvZW1zZGsvZW1zY3JpcHRlbi9zeXN0ZW0vbGliL2xpYmN4eGFiaS9zcmMvcHJpdmF0ZV90eXBlaW5mby5jcHAAU2VwACVJOiVNOiVTICVwAFN1bgBKdW4ATW9uAG5hbgBKYW4AY29vcmRpbmF0ZVN5c3RlbQBDb29yZGluYXRlU3lzdGVtAEp1bABib29sAGxsAEFwcmlsAGludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jawBpbmNvcnJlY3QgaGVhZGVyIGNoZWNrAGluY29ycmVjdCBsZW5ndGggY2hlY2sAaW5jb3JyZWN0IGRhdGEgY2hlY2sAcHVzaF9iYWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAEZyaQBzaABoZWFkZXIgY3JjIG1pc21hdGNoAE1hcmNoAEF1ZwB1bnNpZ25lZCBsb25nIGxvbmcAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlLjBMZgAlTGYAcmVzaXplAGludmFsaWQgd2luZG93IHNpemUAdHJ1ZQBUdWUAZmFsc2UAaW52YWxpZCBibG9jayB0eXBlAEp1bmUAZG91YmxlAHNoRGVncmVlAGJhZF9hcnJheV9uZXdfbGVuZ3RoIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQBSYXdHYXVzc2lhbkNsb3VkAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiBoZWFkZXIgbm90IGZvdW5kACUwKmxsZAAlKmxsZAArJWxsZAAlKy40bGQAdm9pZABsb2NhbGUgbm90IHN1cHBvcnRlZABhbnRpYWxpYXNlZABXZWQAJVktJW0tJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFRvbyBtYW55IHBvaW50czogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IHZlcnNpb24gbm90IHN1cHBvcnRlZDogJWQARGVjAC4vc3B6L3NyYy9jYy9sb2FkLXNwei5jYwBGZWIAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAVmVjdG9yVUludDhUACVIOiVNOiVTAE5BTgBQTQBBTQAlSDolTQBMQ19BTEwAQVNDSUkATEFORwBSVUYATFVGAElORgBSREYATERGAFVOU1BFQ0lGSUVEAEMAUlVCAExVQgBSREIATERCAGNhdGNoaW5nIGEgY2xhc3Mgd2l0aG91dCBhbiBvYmplY3Q/AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+ADAxMjM0NTY3ODkAQy5VVEYtOABWZWN0b3JGbG9hdDMyADEuMy4xAC4ALQAocGFja2VkLmFscGhhcy5zaXplKCkpID09IChudW1Qb2ludHMpAChudWxsKQAocGFja2VkLmNvbG9ycy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNjYWxlcy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNoLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIHNoRGltICogMykAKHBhY2tlZC5yb3RhdGlvbnMuc2l6ZSgpKSA9PSAobnVtUG9pbnRzICogKHBhY2tlZC51c2VzUXVhdGVybmlvblNtYWxsZXN0VGhyZWUgPyA0IDogMykpAChwYWNrZWQucG9zaXRpb25zLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIDMgKiAodXNlc0Zsb2F0MTYgPyAyIDogMykpACUAbGVuZ3RoX2Vycm9yIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUgd2l0aCBtZXNzYWdlICIlcyIAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAW1NQWjogRVJST1JdIFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQKAAkAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwBBkCALthMgEAAA9GwAAPRsAABAEAAAqG0AACgQAABOM3NwejEzR2F1c3NpYW5DbG91ZEUAAACobQAASBAAAE4zc3B6MTNVbnBhY2tPcHRpb25zRQBwcGlpcAD0bAAAbBAAAKhtAAB0EAAATlN0M19fMjZ2ZWN0b3JJZk5TXzlhbGxvY2F0b3JJZkVFRUUAaXBwACxuAADEEAAAAAAAAAMAAADcEAAAAAAAACgSAAAAAAAAWBIAAAAAAABOU3QzX18yOG9wdGlvbmFsSWZFRQAAAADQbQAA6BAAABgRAABOU3QzX18yMjdfX29wdGlvbmFsX21vdmVfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAJBEAAFQRAABOU3QzX18yMjdfX29wdGlvbmFsX2NvcHlfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAYBEAAIgRAABOU3QzX18yMjBfX29wdGlvbmFsX21vdmVfYmFzZUlmTGIxRUVFAAAA0G0AAJQRAAC8EQAATlN0M19fMjIwX19vcHRpb25hbF9jb3B5X2Jhc2VJZkxiMUVFRQAAANBtAADIEQAA9BEAAE5TdDNfXzIyM19fb3B0aW9uYWxfc3RvcmFnZV9iYXNlSWZMYjBFRUUAAAAAqG0AAPwRAABOU3QzX18yMjRfX29wdGlvbmFsX2Rlc3RydWN0X2Jhc2VJZkxiMUVFRQAAAKhtAAAwEgAATlN0M19fMjE4X19zZmluYWVfY3Rvcl9iYXNlSUxiMUVMYjFFRUUAAKhtAABgEgAATlN0M19fMjIwX19zZmluYWVfYXNzaWduX2Jhc2VJTGIxRUxiMUVFRQAAAACIbgAAnBIAAAAAAABsEAAAUE5TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAAAAAIhuAADUEgAAAQAAAGwQAABQS05TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAHBwAHYAdnAAAACMEgAAcHAAAJRsAACMEgAAPG0AAHZwcGQAAAAAlGwAAIwSAAAYbQAAPG0AAHZwcHBkAAAAGG0AAMQSAABwcHAATBMAADxtAACobQAAVBMAAE4xMGVtc2NyaXB0ZW4zdmFsRQAAnBAAAGwQAAAYbQAAcHBwcAAAAAAAAAAArGwAAGwQAAAYbQAAPG0AAGlwcHBkAAAALG4AAMATAAAAAAAAAwAAANgTAAAAAAAAKBIAAAAAAABYEgAAAAAAAE5TdDNfXzI4b3B0aW9uYWxJaEVFAAAAANBtAADkEwAAFBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfbW92ZV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAAAgFAAAUBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfY29weV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAABcFAAAhBQAAE5TdDNfXzIyMF9fb3B0aW9uYWxfbW92ZV9iYXNlSWhMYjFFRUUAAADQbQAAkBQAALgUAABOU3QzX18yMjBfX29wdGlvbmFsX2NvcHlfYmFzZUloTGIxRUVFAAAA0G0AAMQUAADwFAAATlN0M19fMjIzX19vcHRpb25hbF9zdG9yYWdlX2Jhc2VJaExiMEVFRQAAAACobQAA+BQAAE5TdDNfXzIyNF9fb3B0aW9uYWxfZGVzdHJ1Y3RfYmFzZUloTGIxRUVFAAAAqG0AACwVAABOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQCIbgAAYBUAAAAAAAAkFQAAUE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAAAAAIhuAACYFQAAAQAAACQVAABQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAHBwAHZwAFAVAABwcAAAlGwAAFAVAADEbAAAdnBwaQAAAACUbAAAUBUAABhtAADEbAAAdnBwcGkAAAAYbQAAiBUAAHBwcABMEwAAxGwAAJgTAAAkFQAAGG0AAHBwcHAAAAAArGwAACQVAAAYbQAAxGwAAGlwcHBpAHAAdnAAaXBwAHZwcGkAaXBwAHZwcGkAcHBwAHZwcHAAAABcbQAAYBYAAE4zc3B6MTZDb29yZGluYXRlU3lzdGVtRQBwAHZwAGlwcAB2cHBpAAAAAAAAAwAAAAgAAAAPAAAAqG0AAKAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAqG0AAOgWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAqG0AADAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAKhtAAB8FwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACobQAAyBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAqG0AAPAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAKhtAAAYGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACobQAAQBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAqG0AAGgYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAKhtAACQGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACobQAAuBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAqG0AAOAYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAKhtAAAIGQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACobQAAMBkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAAqG0AAFgZAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAAKhtAACAGQAATjEwZW1zY3Jp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AAAJqAAACAQAAAiEAAAIRAAACegAEAcIAAAIXAAACBwAAAmYABQHUwAACHwAAAg8AAAJ2AASBxcAAAhsAAAILAAACbgAAAgMAAAIjAAACEwAAAn4ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcQAEQcLAAAIYgAACCIAAAmkAAAIAgAACIIAAAhCAAAJ5AAQBwcAAAhaAAAIGgAACZQAFAdDAAAIegAACDoAAAnUABIHEwAACGoAAAgqAAAJtAAACAoAAAiKAAAISgAACfQAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzAARBw8AAAhmAAAIJgAACawAAAgGAAAIhgAACEYAAAnsABAHCQAACF4AAAgeAAAJnAAUB2MAAAh+AAAIPgAACdwAEgcbAAAIbgAACC4AAAm8AAAIDgAACI4AAAhOAAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgH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Y05TXzExY2hhcl90cmFpdHNJY0VFRUUA0G0AAHg9AAAAPAAATlN0M19fMjE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAABAAAAAAAAAAKw+AABZAAAAWgAAADgAAAD4////rD4AAFsAAABcAAAAwP///8D///+sPgAAXQAAAF4AAADIPQAALD4AAGg+AAB8PgAAkD4AAKQ+AABUPgAAQD4AAPA9AADcPQAAQAAAAAAAAAAcPQAATAAAAE0AAAA4AAAA+P///xw9AABOAAAATwAAAMD////A////HD0AAFAAAABRAAAAQAAAAAAAAAA8PAAARAAAAEUAAADA////wP///zw8AABGAAAARwAAADgAAAAAAAAAhDwAAEgAAABJAAAAyP///8j///+EPAAASgAAAEsAAADQbQAAuD4AABw9AABOU3QzX18yMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAAAAAAAAAED8AAF8AAABgAAAAqG0AABg/AABOU3QzX18yOGlvc19iYXNlRQAAAAAAAADRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADA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")),u((await async function(F){return MA(F)}(y)).instance))}();if(I.preInit)for(typeof I.preInit=="function"&&(I.preInit=[I.preInit]);0<I.preInit.length;)I.preInit.shift()();return function l(){function u(){var y;if(I.calledRun=!0,!O){if(IA=!0,sI.G(),n?.(I),(y=I.onRuntimeInitialized)==null||y.call(I),I.postRun)for(typeof I.postRun=="function"&&(I.postRun=[I.postRun]);I.postRun.length;){var F=I.postRun.shift();eA.push(F)}lA(eA)}}if(0<aA)uA=l;else{if(I.preRun)for(typeof I.preRun=="function"&&(I.preRun=[I.preRun]);I.preRun.length;)hA();lA(pA),0<aA?uA=l:I.setStatus?(I.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>I.setStatus(""),1),u()},1)):u()}}(),g=IA?I:new Promise((l,u)=>{n=l,s=u}),g}const hI=(B,A,g=I=>I)=>{const I=B.vf32_ptr(A),Q=A.size();return new Float32Array(B.HEAPF32.buffer,I,Q).map(g)},Ja=B=>1/(1+Math.exp(-B)),Ya=B=>A=>A*B+.5,xa=async(B,A)=>{var g;const I=await La(),Q=B instanceof Uint8Array?B:new Uint8Array(B);let C=null;try{if(C=I._malloc(Uint8Array.BYTES_PER_ELEMENT*Q.length),C===null)throw new Error("couldn't allocate memory");I.HEAPU8.set(Q,C/Uint8Array.BYTES_PER_ELEMENT);const E=I.CoordinateSystem[((g=A?.unpackOptions)==null?void 0:g.coordinateSystem)??"UNSPECIFIED"],a=I.load_spz(C,Q.length,{coordinateSystem:E}),i=((t,e,o)=>{const r=o?.colorScaleFactor??.282;return{numPoints:e.numPoints,shDegree:e.shDegree,antialiased:e.antialiased,positions:hI(t,e.positions),scales:hI(t,e.scales,Math.exp),rotations:hI(t,e.rotations),alphas:hI(t,e.alphas,Ja),colors:hI(t,e.colors,Ya(r)),sh:hI(t,e.sh)}})(I,a,A);return((t,e)=>{t._free(t.vf32_ptr(e.positions)),t._free(t.vf32_ptr(e.scales)),t._free(t.vf32_ptr(e.rotations)),t._free(t.vf32_ptr(e.alphas)),t._free(t.vf32_ptr(e.colors)),t._free(t.vf32_ptr(e.sh))})(I,a),i}catch(E){throw E}finally{C!==null&&I._free(C)}},Ha=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),ZC=`async function pI(w = {}) {
|
|
19
19
|
var s, N, i = w, y = typeof window == "object", F = typeof WorkerGlobalScope < "u", U = typeof process == "object" && ((s = process.versions) == null ? void 0 : s.node) && process.type != "renderer";
|
|
@@ -893,30 +893,30 @@ self.onmessage = async function(w) {
|
|
|
893
893
|
}
|
|
894
894
|
};
|
|
895
895
|
//# sourceMappingURL=SPZ.worker-d-ZlUCr9.js.map
|
|
896
|
-
`,OQ=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",ZC],{type:"text/javascript;charset=utf-8"});function Ka(B){let A;try{if(A=OQ&&(self.URL||self.webkitURL).createObjectURL(OQ),!A)throw"";const g=new Worker(A,{type:"module",name:B?.name});return g.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),g}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(ZC),{type:"module",name:B?.name})}}class ja{constructor(A,g){this.gltfLoader=A,this.renderer=g,this.gltfLoader?.register&&this.gltfLoader.register(()=>({name:"KHR_spz_gaussian_splats_compression"}));try{this.spzWorker=new Ka,this.spzWorkerJobId=0,this.spzWorkerCallbacks=new Map,this.spzWorker.onmessage=I=>{const{id:Q,pos:C,col:E,c0:a,c1:i,error:t}=I.data||{},e=this.spzWorkerCallbacks.get(Q);e&&(this.spzWorkerCallbacks.delete(Q),t?e.reject(new Error(t)):e.resolve({pos:C,col:E,c0:a,c1:i}))},this.spzWorker.onerror=I=>{for(const[,Q]of this.spzWorkerCallbacks)Q.reject(I instanceof Error?I:new Error(String(I)));this.spzWorkerCallbacks.clear()}}catch{this.spzWorker=void 0}}parseSplats(A,g,I,Q){return new Promise(async(C,E)=>{await this.#e(),this.gltfLoader.parse(A,"",async a=>{try{const i=await this.#B(a,Q);C(i)}catch(i){E(i)}},a=>E(a))})}async#B(A,g){if(g)return this.#A(A);const I=A.parser,Q=I.json,C=this.#Q(Q);return C?.type==="SPZ"?this.#C(I,C,A):C?.type==="KHR"?this.#E(I,Q,C,A):C?.type==="ULTRA"?this.#A(A):(A.scene||(A.scene=new V.Object3D),A.scene.asset=A.asset,A.scene)}#Q(A){if(!A?.meshes)return null;for(let g=0;g<A.meshes.length;g++){const I=A.meshes[g];for(let Q=0;Q<(I.primitives?.length||0);Q++){const C=I.primitives[Q],E=C?.extensions;if(E?.KHR_spz_gaussian_splats_compression&&Number.isInteger(E.KHR_spz_gaussian_splats_compression.bufferView))return{mesh:g,prim:Q,type:"SPZ",bv:E.KHR_spz_gaussian_splats_compression.bufferView};if(E?.KHR_gaussian_splatting)return{mesh:g,prim:Q,type:"KHR"};if(E?.ULTRA_splats)return{mesh:g,prim:Q,type:"ULTRA"}}}return null}async#C(A,g,I){let Q=await A.getDependency("bufferView",g.bv);if(Q?.buffer?.byteLength&&(Q=Q.buffer.slice(Q.byteOffset,Q.byteLength+Q.byteOffset)),this.spzWorker){const h=this.spzWorkerJobId++,w=new Promise((Z,aA)=>{this.spzWorkerCallbacks.set(h,{resolve:Z,reject:aA})});try{this.spzWorker.postMessage({id:h,spz:Q},[Q])}catch(Z){throw this.spzWorkerCallbacks.delete(h),Z}const{pos:f,col:p,c0:R,c1:U}=await w,G=new Float32Array(f),k=new Float32Array(p),J=new Float32Array(R),m=new Float32Array(U),O=new V.BufferAttribute(G,3),X=new V.BufferAttribute(k,4),IA=new V.BufferAttribute(J,3),AA=new V.BufferAttribute(m,3);return I.scene.traverse(Z=>Z.dispose&&Z.dispose()),{isSplatsData:!0,positions:O,colors:X,cov0:IA,cov1:AA}}const C=await xa(Q,{coordinateSystem:"LUF"}),E=C.numPoints??C.positions.length/3,a=new Float32Array(C.positions),i=C.colors??C.color,t=C.alphas??C.opacity??C.opacities,e=new Float32Array(4*E);for(let h=0;h<E;h++){const w=i[3*h+0],f=i[3*h+1],p=i[3*h+2],R=t?this.#a(t[h]):1,[U,G,k]=this.#I(w,f,p);e.set([U,G,k,R],4*h)}const o=C.rotations??C.quaternions,r=C.scales??C.scale,n=this.#g(o,r),s=new V.BufferAttribute(a,3),c=new V.BufferAttribute(e,4),D=new V.BufferAttribute(n.c0,3),b=new V.BufferAttribute(n.c1,3);return I.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:s,colors:c,cov0:D,cov1:b}}async#E(A,g,I,Q){const C=g.meshes[I.mesh].primitives[I.prim],E=async h=>{const w=C.attributes?.[h];return Number.isInteger(w)?A.getDependency("accessor",w):null};let a=await E("POSITION");if(!a)return this.#A(Q);a?.buffer&&(a=new Float32Array(a.buffer,a.byteOffset,3*a.count));let i=await E("COLOR_0");i?.buffer&&(i=new Float32Array(i.buffer,i.byteOffset,(i.itemSize||4)*i.count));let t=await E("ROTATION")||await E("_ROTATION"),e=await E("SCALE")||await E("_SCALE");t?.buffer&&(t=new Float32Array(t.buffer,t.byteOffset,4*t.count)),e?.buffer&&(e=new Float32Array(e.buffer,e.byteOffset,3*e.count));const o=a.length/3,r=new Float32Array(4*o);if(i){const h=i.length===4*o?4:3;for(let w=0;w<o;w++){const f=i[w*h+0],p=i[w*h+1],R=i[w*h+2],[U,G,k]=this.#I(f,p,R);r.set([U,G,k,h===4?i[w*h+3]:1],4*w)}}else for(let h=0;h<o;h++)r.set([1,1,1,1],4*h);const n=this.#g(t,e),s=new V.BufferAttribute(a,3),c=new V.BufferAttribute(r,4),D=new V.BufferAttribute(n.c0,3),b=new V.BufferAttribute(n.c1,3);return Q.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:s,colors:c,cov0:D,cov1:b}}async#A(A){const g=A.scene.children[0].geometry,I=g.attributes.position,Q=g.attributes.color,C=g.attributes.cov_0||g.attributes.COV_0,E=g.attributes.cov_1||g.attributes.COV_1;return A.scene.traverse(a=>a.dispose&&a.dispose()),{isSplatsData:!0,positions:I,colors:Q,cov0:C,cov1:E}}#g(A,g){const I=(A?.length||0)/4,Q=new Float32Array(3*I),C=new Float32Array(3*I),E=new Float32Array(9);for(let a=0;a<I;a++){const i=A?A[4*a+0]:0,t=A?A[4*a+1]:0,e=A?A[4*a+2]:0,o=A?A[4*a+3]:1,r=i*i,n=t*t,s=e*e,c=i*t,D=i*e,b=t*e,h=o*i,w=o*t,f=o*e;E[0]=1-2*(n+s),E[1]=2*(c-f),E[2]=2*(D+w),E[3]=2*(c+f),E[4]=1-2*(r+s),E[5]=2*(b-h),E[6]=2*(D-w),E[7]=2*(b+h),E[8]=1-2*(r+n);const p=Math.max(1e-12,g?g[3*a+0]:0),R=Math.max(1e-12,g?g[3*a+1]:0),U=Math.max(1e-12,g?g[3*a+2]:0),G=p*p,k=R*R,J=U*U,m=E[0]*E[0]*G+E[1]*E[1]*k+E[2]*E[2]*J,O=E[3]*E[0]*G+E[4]*E[1]*k+E[5]*E[2]*J,X=E[6]*E[0]*G+E[7]*E[1]*k+E[8]*E[2]*J,IA=E[3]*E[3]*G+E[4]*E[4]*k+E[5]*E[5]*J,AA=E[6]*E[3]*G+E[7]*E[4]*k+E[8]*E[5]*J,Z=E[6]*E[6]*G+E[7]*E[7]*k+E[8]*E[8]*J,aA=3*a;Q[aA+0]=m,Q[aA+1]=O,Q[aA+2]=X,C[aA+0]=IA,C[aA+1]=AA,C[aA+2]=Z}return{c0:Q,c1:C}}#a(A){return Number.isFinite(A)?A>=0&&A<=1?A:A>=0&&A<=255&&Math.abs(A-Math.round(A))<.001?A/255:A>=0&&A<=65535&&Math.abs(A-Math.round(A))<.001?A/65535:Math.min(1,Math.max(0,A)):1}#I(A,g,I){const Q=o=>o>=0&&o<=255&&Math.abs(o-Math.round(o))<.001,C=o=>o>=0&&o<=65535&&Math.abs(o-Math.round(o))<.001,E=o=>o<=.04045?o/12.92:Math.pow((o+.055)/1.055,2.4),a=o=>Math.min(1,Math.max(0,o));let i=A,t=g,e=I;if(!(A>=0&&A<=1&&g>=0&&g<=1&&I>=0&&I<=1))if(Q(A)&&Q(g)&&Q(I))i=A/255,t=g/255,e=I/255;else if(C(A)&&C(g)&&C(I))i=A/65535,t=g/65535,e=I/65535;else{const o=r=>.5+.28209479177387814*r;i=o(A),t=o(g),e=o(I)}return i=a(i),t=a(t),e=a(e),[E(i),E(t),E(e)]}#e(){return new Promise(A=>{const g=setInterval(()=>{const I=this.gltfLoader;I.hasDracoLoader&&!I.dracoLoader||I.hasKTX2Loader&&!I.ktx2Loader||(clearInterval(g),A())},10)})}}class _C extends d.Loader{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(g){return new Wa(g)}),this.register(function(g){return new Pa(g)}),this.register(function(g){return new Ie(g)}),this.register(function(g){return new Be(g)}),this.register(function(g){return new Qe(g)}),this.register(function(g){return new za(g)}),this.register(function(g){return new Xa(g)}),this.register(function(g){return new Za(g)}),this.register(function(g){return new _a(g)}),this.register(function(g){return new Oa(g)}),this.register(function(g){return new $a(g)}),this.register(function(g){return new Va(g)}),this.register(function(g){return new ge(g)}),this.register(function(g){return new Ae(g)}),this.register(function(g){return new va(g)}),this.register(function(g){return new Ce(g)}),this.register(function(g){return new Ee(g)})}load(A,g,I,Q){const C=this;let E;if(this.resourcePath!=="")E=this.resourcePath;else if(this.path!==""){const t=d.LoaderUtils.extractUrlBase(A);E=d.LoaderUtils.resolveURL(t,this.path)}else E=d.LoaderUtils.extractUrlBase(A);this.manager.itemStart(A);const a=function(t){Q?Q(t):console.error(t),C.manager.itemError(A),C.manager.itemEnd(A)},i=new d.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(A,function(t){try{C.parse(t,E,function(e){g(e),C.manager.itemEnd(A)},a)}catch(e){a(e)}},I,a)}setDRACOLoader(A){return this.dracoLoader=A,this}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,g,I,Q){let C;const E={},a={},i=new TextDecoder;if(typeof A=="string")C=JSON.parse(A);else if(A instanceof ArrayBuffer)if(i.decode(new Uint8Array(A,0,4))===$C){try{E[dA.KHR_BINARY_GLTF]=new ie(A)}catch(e){return void(Q&&Q(e))}C=JSON.parse(E[dA.KHR_BINARY_GLTF].content)}else C=JSON.parse(i.decode(A));else C=A;if(C.asset===void 0||C.asset.version[0]<2)return void(Q&&Q(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const t=new le(C,{path:g||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});t.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){const o=this.pluginCallbacks[e](t);o.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),a[o.name]=o,E[o.name]=!0}if(C.extensionsUsed)for(let e=0;e<C.extensionsUsed.length;++e){const o=C.extensionsUsed[e],r=C.extensionsRequired||[];switch(o){case dA.KHR_MATERIALS_UNLIT:E[o]=new Ta;break;case dA.KHR_DRACO_MESH_COMPRESSION:E[o]=new te(C,this.dracoLoader);break;case dA.KHR_TEXTURE_TRANSFORM:E[o]=new oe;break;case dA.KHR_MESH_QUANTIZATION:E[o]=new ne;break;default:r.indexOf(o)>=0&&a[o]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+o+'".')}}t.setExtensions(E),t.setPlugins(a),t.parse(I,Q)}parseAsync(A,g){const I=this;return new Promise(function(Q,C){I.parse(A,g,Q,C)})}}function qa(){let B={};return{get:function(A){return B[A]},add:function(A,g){B[A]=g},remove:function(A){delete B[A]},removeAll:function(){B={}}}}const dA={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class va{constructor(A){this.parser=A,this.name=dA.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,g=this.parser.json.nodes||[];for(let I=0,Q=g.length;I<Q;I++){const C=g[I];C.extensions&&C.extensions[this.name]&&C.extensions[this.name].light!==void 0&&A._addNodeRef(this.cache,C.extensions[this.name].light)}}_loadLight(A){const g=this.parser,I="light:"+A;let Q=g.cache.get(I);if(Q)return Q;const C=g.json,E=((C.extensions&&C.extensions[this.name]||{}).lights||[])[A];let a;const i=new d.Color(16777215);E.color!==void 0&&i.setRGB(E.color[0],E.color[1],E.color[2],d.LinearSRGBColorSpace);const t=E.range!==void 0?E.range:0;switch(E.type){case"directional":a=new d.DirectionalLight(i),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new d.PointLight(i),a.distance=t;break;case"spot":a=new d.SpotLight(i),a.distance=t,E.spot=E.spot||{},E.spot.innerConeAngle=E.spot.innerConeAngle!==void 0?E.spot.innerConeAngle:0,E.spot.outerConeAngle=E.spot.outerConeAngle!==void 0?E.spot.outerConeAngle:Math.PI/4,a.angle=E.spot.outerConeAngle,a.penumbra=1-E.spot.innerConeAngle/E.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+E.type)}return a.position.set(0,0,0),Mg(a,E),E.intensity!==void 0&&(a.intensity=E.intensity),a.name=g.createUniqueName(E.name||"light_"+A),Q=Promise.resolve(a),g.cache.add(I,Q),Q}getDependency(A,g){if(A==="light")return this._loadLight(g)}createNodeAttachment(A){const g=this,I=this.parser,Q=I.json.nodes[A],C=(Q.extensions&&Q.extensions[this.name]||{}).light;return C===void 0?null:this._loadLight(C).then(function(E){return I._getNodeRef(g.cache,C,E)})}}class Ta{constructor(){this.name=dA.KHR_MATERIALS_UNLIT}getMaterialType(){return d.MeshBasicMaterial}extendParams(A,g,I){const Q=[];A.color=new d.Color(1,1,1),A.opacity=1;const C=g.pbrMetallicRoughness;if(C){if(Array.isArray(C.baseColorFactor)){const E=C.baseColorFactor;A.color.setRGB(E[0],E[1],E[2],d.LinearSRGBColorSpace),A.opacity=E[3]}C.baseColorTexture!==void 0&&Q.push(I.assignTexture(A,"map",C.baseColorTexture,d.SRGBColorSpace))}return Promise.all(Q)}}class Oa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name].emissiveStrength;return Q!==void 0&&(g.emissiveIntensity=Q),Promise.resolve()}}class Wa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];if(E.clearcoatFactor!==void 0&&(g.clearcoat=E.clearcoatFactor),E.clearcoatTexture!==void 0&&C.push(I.assignTexture(g,"clearcoatMap",E.clearcoatTexture)),E.clearcoatRoughnessFactor!==void 0&&(g.clearcoatRoughness=E.clearcoatRoughnessFactor),E.clearcoatRoughnessTexture!==void 0&&C.push(I.assignTexture(g,"clearcoatRoughnessMap",E.clearcoatRoughnessTexture)),E.clearcoatNormalTexture!==void 0&&(C.push(I.assignTexture(g,"clearcoatNormalMap",E.clearcoatNormalTexture)),E.clearcoatNormalTexture.scale!==void 0)){const a=E.clearcoatNormalTexture.scale;g.clearcoatNormalScale=new d.Vector2(a,a)}return Promise.all(C)}}class Pa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_DISPERSION}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name];return g.dispersion=Q.dispersion!==void 0?Q.dispersion:0,Promise.resolve()}}class Va{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return E.iridescenceFactor!==void 0&&(g.iridescence=E.iridescenceFactor),E.iridescenceTexture!==void 0&&C.push(I.assignTexture(g,"iridescenceMap",E.iridescenceTexture)),E.iridescenceIor!==void 0&&(g.iridescenceIOR=E.iridescenceIor),g.iridescenceThicknessRange===void 0&&(g.iridescenceThicknessRange=[100,400]),E.iridescenceThicknessMinimum!==void 0&&(g.iridescenceThicknessRange[0]=E.iridescenceThicknessMinimum),E.iridescenceThicknessMaximum!==void 0&&(g.iridescenceThicknessRange[1]=E.iridescenceThicknessMaximum),E.iridescenceThicknessTexture!==void 0&&C.push(I.assignTexture(g,"iridescenceThicknessMap",E.iridescenceThicknessTexture)),Promise.all(C)}}class za{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_SHEEN}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[];g.sheenColor=new d.Color(0,0,0),g.sheenRoughness=0,g.sheen=1;const E=Q.extensions[this.name];if(E.sheenColorFactor!==void 0){const a=E.sheenColorFactor;g.sheenColor.setRGB(a[0],a[1],a[2],d.LinearSRGBColorSpace)}return E.sheenRoughnessFactor!==void 0&&(g.sheenRoughness=E.sheenRoughnessFactor),E.sheenColorTexture!==void 0&&C.push(I.assignTexture(g,"sheenColorMap",E.sheenColorTexture,d.SRGBColorSpace)),E.sheenRoughnessTexture!==void 0&&C.push(I.assignTexture(g,"sheenRoughnessMap",E.sheenRoughnessTexture)),Promise.all(C)}}class Xa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return E.transmissionFactor!==void 0&&(g.transmission=E.transmissionFactor),E.transmissionTexture!==void 0&&C.push(I.assignTexture(g,"transmissionMap",E.transmissionTexture)),Promise.all(C)}}class Za{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_VOLUME}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];g.thickness=E.thicknessFactor!==void 0?E.thicknessFactor:0,E.thicknessTexture!==void 0&&C.push(I.assignTexture(g,"thicknessMap",E.thicknessTexture)),g.attenuationDistance=E.attenuationDistance||1/0;const a=E.attenuationColor||[1,1,1];return g.attenuationColor=new d.Color().setRGB(a[0],a[1],a[2],d.LinearSRGBColorSpace),Promise.all(C)}}class _a{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_IOR}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name];return g.ior=Q.ior!==void 0?Q.ior:1.5,Promise.resolve()}}class $a{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_SPECULAR}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];g.specularIntensity=E.specularFactor!==void 0?E.specularFactor:1,E.specularTexture!==void 0&&C.push(I.assignTexture(g,"specularIntensityMap",E.specularTexture));const a=E.specularColorFactor||[1,1,1];return g.specularColor=new d.Color().setRGB(a[0],a[1],a[2],d.LinearSRGBColorSpace),E.specularColorTexture!==void 0&&C.push(I.assignTexture(g,"specularColorMap",E.specularColorTexture,d.SRGBColorSpace)),Promise.all(C)}}class Ae{constructor(A){this.parser=A,this.name=dA.EXT_MATERIALS_BUMP}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return g.bumpScale=E.bumpFactor!==void 0?E.bumpFactor:1,E.bumpTexture!==void 0&&C.push(I.assignTexture(g,"bumpMap",E.bumpTexture)),Promise.all(C)}}class ge{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return E.anisotropyStrength!==void 0&&(g.anisotropy=E.anisotropyStrength),E.anisotropyRotation!==void 0&&(g.anisotropyRotation=E.anisotropyRotation),E.anisotropyTexture!==void 0&&C.push(I.assignTexture(g,"anisotropyMap",E.anisotropyTexture)),Promise.all(C)}}class Ie{constructor(A){this.parser=A,this.name=dA.KHR_TEXTURE_BASISU}loadTexture(A){const g=this.parser,I=g.json,Q=I.textures[A];if(!Q.extensions||!Q.extensions[this.name])return null;const C=Q.extensions[this.name],E=g.options.ktx2Loader;if(!E){if(I.extensionsRequired&&I.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return g.loadTextureImage(A,C.source,E)}}class Be{constructor(A){this.parser=A,this.name=dA.EXT_TEXTURE_WEBP}loadTexture(A){const g=this.name,I=this.parser,Q=I.json,C=Q.textures[A];if(!C.extensions||!C.extensions[g])return null;const E=C.extensions[g],a=Q.images[E.source];let i=I.textureLoader;if(a.uri){const t=I.options.manager.getHandler(a.uri);t!==null&&(i=t)}return I.loadTextureImage(A,E.source,i)}}class Qe{constructor(A){this.parser=A,this.name=dA.EXT_TEXTURE_AVIF}loadTexture(A){const g=this.name,I=this.parser,Q=I.json,C=Q.textures[A];if(!C.extensions||!C.extensions[g])return null;const E=C.extensions[g],a=Q.images[E.source];let i=I.textureLoader;if(a.uri){const t=I.options.manager.getHandler(a.uri);t!==null&&(i=t)}return I.loadTextureImage(A,E.source,i)}}class Ce{constructor(A){this.name=dA.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const g=this.parser.json,I=g.bufferViews[A];if(I.extensions&&I.extensions[this.name]){const Q=I.extensions[this.name],C=this.parser.getDependency("buffer",Q.buffer),E=this.parser.options.meshoptDecoder;if(!E||!E.supported){if(g.extensionsRequired&&g.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return C.then(function(a){const i=Q.byteOffset||0,t=Q.byteLength||0,e=Q.count,o=Q.byteStride,r=new Uint8Array(a,i,t);return E.decodeGltfBufferAsync?E.decodeGltfBufferAsync(e,o,r,Q.mode,Q.filter).then(function(n){return n.buffer}):E.ready.then(function(){const n=new ArrayBuffer(e*o);return E.decodeGltfBuffer(new Uint8Array(n),e,o,r,Q.mode,Q.filter),n})})}return null}}class Ee{constructor(A){this.name=dA.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const g=this.parser.json,I=g.nodes[A];if(!I.extensions||!I.extensions[this.name]||I.mesh===void 0)return null;const Q=g.meshes[I.mesh];for(const i of Q.primitives)if(i.mode!==bg.TRIANGLES&&i.mode!==bg.TRIANGLE_STRIP&&i.mode!==bg.TRIANGLE_FAN&&i.mode!==void 0)return null;const C=I.extensions[this.name].attributes,E=[],a={};for(const i in C)E.push(this.parser.getDependency("accessor",C[i]).then(t=>(a[i]=t,a[i])));return E.length<1?null:(E.push(this.parser.createNodeMesh(A)),Promise.all(E).then(i=>{const t=i.pop(),e=t.isGroup?t.children:[t],o=i[0].count,r=[];for(const n of e){const s=new d.Matrix4,c=new d.Vector3,D=new d.Quaternion,b=new d.Vector3(1,1,1),h=new d.InstancedMesh(n.geometry,n.material,o);for(let w=0;w<o;w++)a.TRANSLATION&&c.fromBufferAttribute(a.TRANSLATION,w),a.ROTATION&&D.fromBufferAttribute(a.ROTATION,w),a.SCALE&&b.fromBufferAttribute(a.SCALE,w),h.setMatrixAt(w,s.compose(c,D,b));for(const w in a)if(w==="_COLOR_0"){const f=a[w];h.instanceColor=new d.InstancedBufferAttribute(f.array,f.itemSize,f.normalized)}else w!=="TRANSLATION"&&w!=="ROTATION"&&w!=="SCALE"&&n.geometry.setAttribute(w,a[w]);d.Object3D.prototype.copy.call(h,n),this.parser.assignFinalMaterial(h),r.push(h)}return t.isGroup?(t.clear(),t.add(...r),t):r[0]}))}}const $C="glTF",ae=1313821514,ee=5130562;class ie{constructor(A){this.name=dA.KHR_BINARY_GLTF,this.content=null,this.body=null;const g=new DataView(A,0,12),I=new TextDecoder;if(this.header={magic:I.decode(new Uint8Array(A.slice(0,4))),version:g.getUint32(4,!0),length:g.getUint32(8,!0)},this.header.magic!==$C)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const Q=this.header.length-12,C=new DataView(A,12);let E=0;for(;E<Q;){const a=C.getUint32(E,!0);E+=4;const i=C.getUint32(E,!0);if(E+=4,i===ae){const t=new Uint8Array(A,12+E,a);this.content=I.decode(t)}else if(i===ee){const t=12+E;this.body=A.slice(t,t+a)}E+=a}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class te{constructor(A,g){if(!g)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=dA.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=g,this.dracoLoader.preload()}decodePrimitive(A,g){const I=this.json,Q=this.dracoLoader,C=A.extensions[this.name].bufferView,E=A.extensions[this.name].attributes,a={},i={},t={};for(const e in E){const o=nQ[e]||e.toLowerCase();a[o]=E[e]}for(const e in A.attributes){const o=nQ[e]||e.toLowerCase();if(E[e]!==void 0){const r=I.accessors[A.attributes[e]],n=MI[r.componentType];t[o]=n.name,i[o]=r.normalized===!0}}return g.getDependency("bufferView",C).then(function(e){return new Promise(function(o,r){Q.decodeDracoFile(e,function(n){for(const s in n.attributes){const c=n.attributes[s],D=i[s];D!==void 0&&(c.normalized=D)}o(n)},a,t,d.LinearSRGBColorSpace,r)})})}}class oe{constructor(){this.name=dA.KHR_TEXTURE_TRANSFORM}extendTexture(A,g){return(g.texCoord!==void 0&&g.texCoord!==A.channel||g.offset!==void 0||g.rotation!==void 0||g.scale!==void 0)&&(A=A.clone(),g.texCoord!==void 0&&(A.channel=g.texCoord),g.offset!==void 0&&A.offset.fromArray(g.offset),g.rotation!==void 0&&(A.rotation=g.rotation),g.scale!==void 0&&A.repeat.fromArray(g.scale),A.needsUpdate=!0),A}}class ne{constructor(){this.name=dA.KHR_MESH_QUANTIZATION}}class AE extends d.Interpolant{constructor(A,g,I,Q){super(A,g,I,Q)}copySampleValue_(A){const g=this.resultBuffer,I=this.sampleValues,Q=this.valueSize,C=A*Q*3+Q;for(let E=0;E!==Q;E++)g[E]=I[C+E];return g}interpolate_(A,g,I,Q){const C=this.resultBuffer,E=this.sampleValues,a=this.valueSize,i=2*a,t=3*a,e=Q-g,o=(I-g)/e,r=o*o,n=r*o,s=A*t,c=s-t,D=-2*n+3*r,b=n-r,h=1-D,w=b-r+o;for(let f=0;f!==a;f++){const p=E[c+f+a],R=E[c+f+i]*e,U=E[s+f+a],G=E[s+f]*e;C[f]=h*p+w*R+D*U+b*G}return C}}const re=new d.Quaternion;class se extends AE{interpolate_(A,g,I,Q){const C=super.interpolate_(A,g,I,Q);return re.fromArray(C).normalize().toArray(C),C}}const bg={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},MI={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},WQ={9728:d.NearestFilter,9729:d.LinearFilter,9984:d.NearestMipmapNearestFilter,9985:d.LinearMipmapNearestFilter,9986:d.NearestMipmapLinearFilter,9987:d.LinearMipmapLinearFilter},PQ={33071:d.ClampToEdgeWrapping,33648:d.MirroredRepeatWrapping,10497:d.RepeatWrapping},qB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},nQ={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Tg={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},ce={CUBICSPLINE:void 0,LINEAR:d.InterpolateLinear,STEP:d.InterpolateDiscrete},he="OPAQUE",De="MASK",de="BLEND";function QI(B,A,g){for(const I in g.extensions)B[I]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[I]=g.extensions[I])}function Mg(B,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(B.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function be(B,A){if(B.updateMorphTargets(),A.weights!==void 0)for(let g=0,I=A.weights.length;g<I;g++)B.morphTargetInfluences[g]=A.weights[g];if(A.extras&&Array.isArray(A.extras.targetNames)){const g=A.extras.targetNames;if(B.morphTargetInfluences.length===g.length){B.morphTargetDictionary={};for(let I=0,Q=g.length;I<Q;I++)B.morphTargetDictionary[g[I]]=I}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function we(B){let A;const g=B.extensions&&B.extensions[dA.KHR_DRACO_MESH_COMPRESSION];if(A=g?"draco:"+g.bufferView+":"+g.indices+":"+vB(g.attributes):B.indices+":"+vB(B.attributes)+":"+B.mode,B.targets!==void 0)for(let I=0,Q=B.targets.length;I<Q;I++)A+=":"+vB(B.targets[I]);return A}function vB(B){let A="";const g=Object.keys(B).sort();for(let I=0,Q=g.length;I<Q;I++)A+=g[I]+":"+B[g[I]]+";";return A}function rQ(B){switch(B){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const ue=new d.Matrix4;class le{constructor(A={},g={}){this.json=A,this.extensions={},this.plugins={},this.options=g,this.cache=new qa,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let I=!1,Q=-1,C=!1,E=-1;if(typeof navigator<"u"){const a=navigator.userAgent;I=/^((?!chrome|android).)*safari/i.test(a)===!0;const i=a.match(/Version\/(\d+)/);Q=I&&i?parseInt(i[1],10):-1,C=a.indexOf("Firefox")>-1,E=C?a.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||I&&Q<17||C&&E<98?this.textureLoader=new d.TextureLoader(this.options.manager):this.textureLoader=new d.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new d.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,g){const I=this,Q=this.json,C=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(E){return E._markDefs&&E._markDefs()}),Promise.all(this._invokeAll(function(E){return E.beforeRoot&&E.beforeRoot()})).then(function(){return Promise.all([I.getDependencies("scene"),I.getDependencies("animation"),I.getDependencies("camera")])}).then(function(E){const a={scene:E[0][Q.scene||0],scenes:E[0],animations:E[1],cameras:E[2],asset:Q.asset,parser:I,userData:{}};return QI(C,a,Q),Mg(a,Q),Promise.all(I._invokeAll(function(i){return i.afterRoot&&i.afterRoot(a)})).then(function(){for(const i of a.scenes)i.updateMatrixWorld();A(a)})}).catch(g)}_markDefs(){const A=this.json.nodes||[],g=this.json.skins||[],I=this.json.meshes||[];for(let Q=0,C=g.length;Q<C;Q++){const E=g[Q].joints;for(let a=0,i=E.length;a<i;a++)A[E[a]].isBone=!0}for(let Q=0,C=A.length;Q<C;Q++){const E=A[Q];E.mesh!==void 0&&(this._addNodeRef(this.meshCache,E.mesh),E.skin!==void 0&&(I[E.mesh].isSkinnedMesh=!0)),E.camera!==void 0&&this._addNodeRef(this.cameraCache,E.camera)}}_addNodeRef(A,g){g!==void 0&&(A.refs[g]===void 0&&(A.refs[g]=A.uses[g]=0),A.refs[g]++)}_getNodeRef(A,g,I){if(A.refs[g]<=1)return I;const Q=I.clone(),C=(E,a)=>{const i=this.associations.get(E);i!=null&&this.associations.set(a,i);for(const[t,e]of E.children.entries())C(e,a.children[t])};return C(I,Q),Q.name+="_instance_"+A.uses[g]++,Q}_invokeOne(A){const g=Object.values(this.plugins);g.push(this);for(let I=0;I<g.length;I++){const Q=A(g[I]);if(Q)return Q}return null}_invokeAll(A){const g=Object.values(this.plugins);g.unshift(this);const I=[];for(let Q=0;Q<g.length;Q++){const C=A(g[Q]);C&&I.push(C)}return I}getDependency(A,g){const I=A+":"+g;let Q=this.cache.get(I);if(!Q){switch(A){case"scene":Q=this.loadScene(g);break;case"node":Q=this._invokeOne(function(C){return C.loadNode&&C.loadNode(g)});break;case"mesh":Q=this._invokeOne(function(C){return C.loadMesh&&C.loadMesh(g)});break;case"accessor":Q=this.loadAccessor(g);break;case"bufferView":Q=this._invokeOne(function(C){return C.loadBufferView&&C.loadBufferView(g)});break;case"buffer":Q=this.loadBuffer(g);break;case"material":Q=this._invokeOne(function(C){return C.loadMaterial&&C.loadMaterial(g)});break;case"texture":Q=this._invokeOne(function(C){return C.loadTexture&&C.loadTexture(g)});break;case"skin":Q=this.loadSkin(g);break;case"animation":Q=this._invokeOne(function(C){return C.loadAnimation&&C.loadAnimation(g)});break;case"camera":Q=this.loadCamera(g);break;default:if(Q=this._invokeOne(function(C){return C!=this&&C.getDependency&&C.getDependency(A,g)}),!Q)throw new Error("Unknown type: "+A)}this.cache.add(I,Q)}return Q}getDependencies(A){let g=this.cache.get(A);if(!g){const I=this,Q=this.json[A+(A==="mesh"?"es":"s")]||[];g=Promise.all(Q.map(function(C,E){return I.getDependency(A,E)})),this.cache.add(A,g)}return g}loadBuffer(A){const g=this.json.buffers[A],I=this.fileLoader;if(g.type&&g.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+g.type+" buffer type is not supported.");if(g.uri===void 0&&A===0)return Promise.resolve(this.extensions[dA.KHR_BINARY_GLTF].body);const Q=this.options;return new Promise(function(C,E){I.load(d.LoaderUtils.resolveURL(g.uri,Q.path),C,void 0,function(){E(new Error('THREE.GLTFLoader: Failed to load buffer "'+g.uri+'".'))})})}loadBufferView(A){const g=this.json.bufferViews[A];return this.getDependency("buffer",g.buffer).then(function(I){const Q=g.byteLength||0,C=g.byteOffset||0;return I.slice(C,C+Q)})}loadAccessor(A){const g=this,I=this.json,Q=this.json.accessors[A];if(Q.bufferView===void 0&&Q.sparse===void 0){const E=qB[Q.type],a=MI[Q.componentType],i=Q.normalized===!0,t=new a(Q.count*E);return Promise.resolve(new d.BufferAttribute(t,E,i))}const C=[];return Q.bufferView!==void 0?C.push(this.getDependency("bufferView",Q.bufferView)):C.push(null),Q.sparse!==void 0&&(C.push(this.getDependency("bufferView",Q.sparse.indices.bufferView)),C.push(this.getDependency("bufferView",Q.sparse.values.bufferView))),Promise.all(C).then(function(E){const a=E[0],i=qB[Q.type],t=MI[Q.componentType],e=t.BYTES_PER_ELEMENT,o=e*i,r=Q.byteOffset||0,n=Q.bufferView!==void 0?I.bufferViews[Q.bufferView].byteStride:void 0,s=Q.normalized===!0;let c,D;if(n&&n!==o){const b=Math.floor(r/n),h="InterleavedBuffer:"+Q.bufferView+":"+Q.componentType+":"+b+":"+Q.count;let w=g.cache.get(h);w||(c=new t(a,b*n,Q.count*n/e),w=new d.InterleavedBuffer(c,n/e),g.cache.add(h,w)),D=new d.InterleavedBufferAttribute(w,i,r%n/e,s)}else c=a===null?new t(Q.count*i):new t(a,r,Q.count*i),D=new d.BufferAttribute(c,i,s);if(Q.sparse!==void 0){const b=qB.SCALAR,h=MI[Q.sparse.indices.componentType],w=Q.sparse.indices.byteOffset||0,f=Q.sparse.values.byteOffset||0,p=new h(E[1],w,Q.sparse.count*b),R=new t(E[2],f,Q.sparse.count*i);a!==null&&(D=new d.BufferAttribute(D.array.slice(),D.itemSize,D.normalized)),D.normalized=!1;for(let U=0,G=p.length;U<G;U++){const k=p[U];if(D.setX(k,R[U*i]),i>=2&&D.setY(k,R[U*i+1]),i>=3&&D.setZ(k,R[U*i+2]),i>=4&&D.setW(k,R[U*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}D.normalized=s}return D})}loadTexture(A){const g=this.json,I=this.options,Q=g.textures[A].source,C=g.images[Q];let E=this.textureLoader;if(C.uri){const a=I.manager.getHandler(C.uri);a!==null&&(E=a)}return this.loadTextureImage(A,Q,E)}loadTextureImage(A,g,I){const Q=this,C=this.json,E=C.textures[A],a=C.images[g],i=(a.uri||a.bufferView)+":"+E.sampler;if(this.textureCache[i])return this.textureCache[i];const t=this.loadImageSource(g,I).then(function(e){e.flipY=!1,e.name=E.name||a.name||"",e.name===""&&typeof a.uri=="string"&&a.uri.startsWith("data:image/")===!1&&(e.name=a.uri);const o=(C.samplers||{})[E.sampler]||{};return e.magFilter=WQ[o.magFilter]||d.LinearFilter,e.minFilter=WQ[o.minFilter]||d.LinearMipmapLinearFilter,e.wrapS=PQ[o.wrapS]||d.RepeatWrapping,e.wrapT=PQ[o.wrapT]||d.RepeatWrapping,e.generateMipmaps=!e.isCompressedTexture&&e.minFilter!==d.NearestFilter&&e.minFilter!==d.LinearFilter,Q.associations.set(e,{textures:A}),e}).catch(function(){return null});return this.textureCache[i]=t,t}loadImageSource(A,g){const I=this,Q=this.json,C=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(o=>o.clone());const E=Q.images[A],a=self.URL||self.webkitURL;let i=E.uri||"",t=!1;if(E.bufferView!==void 0)i=I.getDependency("bufferView",E.bufferView).then(function(o){t=!0;const r=new Blob([o],{type:E.mimeType});return i=a.createObjectURL(r),i});else if(E.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const e=Promise.resolve(i).then(function(o){return new Promise(function(r,n){let s=r;g.isImageBitmapLoader===!0&&(s=function(c){const D=new d.Texture(c);D.needsUpdate=!0,r(D)}),g.load(d.LoaderUtils.resolveURL(o,C.path),s,void 0,n)})}).then(function(o){var r;return t===!0&&a.revokeObjectURL(i),Mg(o,E),o.userData.mimeType=E.mimeType||((r=E.uri).search(/\.jpe?g($|\?)/i)>0||r.search(/^data\:image\/jpeg/)===0?"image/jpeg":r.search(/\.webp($|\?)/i)>0||r.search(/^data\:image\/webp/)===0?"image/webp":r.search(/\.ktx2($|\?)/i)>0||r.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"),o}).catch(function(o){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),o});return this.sourceCache[A]=e,e}assignTexture(A,g,I,Q){const C=this;return this.getDependency("texture",I.index).then(function(E){if(!E)return null;if(I.texCoord!==void 0&&I.texCoord>0&&((E=E.clone()).channel=I.texCoord),C.extensions[dA.KHR_TEXTURE_TRANSFORM]){const a=I.extensions!==void 0?I.extensions[dA.KHR_TEXTURE_TRANSFORM]:void 0;if(a){const i=C.associations.get(E);E=C.extensions[dA.KHR_TEXTURE_TRANSFORM].extendTexture(E,a),C.associations.set(E,i)}}return Q!==void 0&&(E.colorSpace=Q),A[g]=E,E})}assignFinalMaterial(A){const g=A.geometry;let I=A.material;const Q=g.attributes.tangent===void 0,C=g.attributes.color!==void 0,E=g.attributes.normal===void 0;if(A.isPoints){const a="PointsMaterial:"+I.uuid;let i=this.cache.get(a);i||(i=new d.PointsMaterial,d.Material.prototype.copy.call(i,I),i.color.copy(I.color),i.map=I.map,i.sizeAttenuation=!1,this.cache.add(a,i)),I=i}else if(A.isLine){const a="LineBasicMaterial:"+I.uuid;let i=this.cache.get(a);i||(i=new d.LineBasicMaterial,d.Material.prototype.copy.call(i,I),i.color.copy(I.color),i.map=I.map,this.cache.add(a,i)),I=i}if(Q||C||E){let a="ClonedMaterial:"+I.uuid+":";Q&&(a+="derivative-tangents:"),C&&(a+="vertex-colors:"),E&&(a+="flat-shading:");let i=this.cache.get(a);i||(i=I.clone(),C&&(i.vertexColors=!0),E&&(i.flatShading=!0),Q&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(a,i),this.associations.set(i,this.associations.get(I))),I=i}A.material=I}getMaterialType(){return d.MeshStandardMaterial}loadMaterial(A){const g=this,I=this.json,Q=this.extensions,C=I.materials[A];let E;const a={},i=[];if((C.extensions||{})[dA.KHR_MATERIALS_UNLIT]){const e=Q[dA.KHR_MATERIALS_UNLIT];E=e.getMaterialType(),i.push(e.extendParams(a,C,g))}else{const e=C.pbrMetallicRoughness||{};if(a.color=new d.Color(1,1,1),a.opacity=1,Array.isArray(e.baseColorFactor)){const o=e.baseColorFactor;a.color.setRGB(o[0],o[1],o[2],d.LinearSRGBColorSpace),a.opacity=o[3]}e.baseColorTexture!==void 0&&i.push(g.assignTexture(a,"map",e.baseColorTexture,d.SRGBColorSpace)),a.metalness=e.metallicFactor!==void 0?e.metallicFactor:1,a.roughness=e.roughnessFactor!==void 0?e.roughnessFactor:1,e.metallicRoughnessTexture!==void 0&&(i.push(g.assignTexture(a,"metalnessMap",e.metallicRoughnessTexture)),i.push(g.assignTexture(a,"roughnessMap",e.metallicRoughnessTexture))),E=this._invokeOne(function(o){return o.getMaterialType&&o.getMaterialType(A)}),i.push(Promise.all(this._invokeAll(function(o){return o.extendMaterialParams&&o.extendMaterialParams(A,a)})))}C.doubleSided===!0&&(a.side=d.DoubleSide);const t=C.alphaMode||he;if(t===de?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,t===De&&(a.alphaTest=C.alphaCutoff!==void 0?C.alphaCutoff:.5)),C.normalTexture!==void 0&&E!==d.MeshBasicMaterial&&(i.push(g.assignTexture(a,"normalMap",C.normalTexture)),a.normalScale=new d.Vector2(1,1),C.normalTexture.scale!==void 0)){const e=C.normalTexture.scale;a.normalScale.set(e,e)}if(C.occlusionTexture!==void 0&&E!==d.MeshBasicMaterial&&(i.push(g.assignTexture(a,"aoMap",C.occlusionTexture)),C.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=C.occlusionTexture.strength)),C.emissiveFactor!==void 0&&E!==d.MeshBasicMaterial){const e=C.emissiveFactor;a.emissive=new d.Color().setRGB(e[0],e[1],e[2],d.LinearSRGBColorSpace)}return C.emissiveTexture!==void 0&&E!==d.MeshBasicMaterial&&i.push(g.assignTexture(a,"emissiveMap",C.emissiveTexture,d.SRGBColorSpace)),Promise.all(i).then(function(){const e=new E(a);return C.name&&(e.name=C.name),Mg(e,C),g.associations.set(e,{materials:A}),C.extensions&&QI(Q,e,C),e})}createUniqueName(A){const g=d.PropertyBinding.sanitizeNodeName(A||"");return g in this.nodeNamesUsed?g+"_"+ ++this.nodeNamesUsed[g]:(this.nodeNamesUsed[g]=0,g)}loadGeometries(A){const g=this,I=this.extensions,Q=this.primitiveCache;function C(a){return I[dA.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,g).then(function(i){return VQ(i,a,g)})}const E=[];for(let a=0,i=A.length;a<i;a++){const t=A[a],e=we(t),o=Q[e];if(o)E.push(o.promise);else{let r;r=t.extensions&&t.extensions[dA.KHR_DRACO_MESH_COMPRESSION]?C(t):VQ(new d.BufferGeometry,t,g),Q[e]={primitive:t,promise:r},E.push(r)}}return Promise.all(E)}loadMesh(A){const g=this,I=this.json,Q=this.extensions,C=I.meshes[A],E=C.primitives,a=[];for(let t=0,e=E.length;t<e;t++){const o=E[t].material===void 0?((i=this.cache).DefaultMaterial===void 0&&(i.DefaultMaterial=new d.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:d.FrontSide})),i.DefaultMaterial):this.getDependency("material",E[t].material);a.push(o)}var i;return a.push(g.loadGeometries(E)),Promise.all(a).then(function(t){const e=t.slice(0,t.length-1),o=t[t.length-1],r=[];for(let s=0,c=o.length;s<c;s++){const D=o[s],b=E[s];let h;const w=e[s];if(b.mode===bg.TRIANGLES||b.mode===bg.TRIANGLE_STRIP||b.mode===bg.TRIANGLE_FAN||b.mode===void 0)h=C.isSkinnedMesh===!0?new d.SkinnedMesh(D,w):new d.Mesh(D,w),h.isSkinnedMesh===!0&&h.normalizeSkinWeights(),b.mode===bg.TRIANGLE_STRIP?h.geometry=TQ(h.geometry,d.TriangleStripDrawMode):b.mode===bg.TRIANGLE_FAN&&(h.geometry=TQ(h.geometry,d.TriangleFanDrawMode));else if(b.mode===bg.LINES)h=new d.LineSegments(D,w);else if(b.mode===bg.LINE_STRIP)h=new d.Line(D,w);else if(b.mode===bg.LINE_LOOP)h=new d.LineLoop(D,w);else{if(b.mode!==bg.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+b.mode);h=new d.Points(D,w)}Object.keys(h.geometry.morphAttributes).length>0&&be(h,C),h.name=g.createUniqueName(C.name||"mesh_"+A),Mg(h,C),b.extensions&&QI(Q,h,b),g.assignFinalMaterial(h),r.push(h)}for(let s=0,c=r.length;s<c;s++)g.associations.set(r[s],{meshes:A,primitives:s});if(r.length===1)return C.extensions&&QI(Q,r[0],C),r[0];const n=new d.Group;C.extensions&&QI(Q,n,C),g.associations.set(n,{meshes:A});for(let s=0,c=r.length;s<c;s++)n.add(r[s]);return n})}loadCamera(A){let g;const I=this.json.cameras[A],Q=I[I.type];if(Q)return I.type==="perspective"?g=new d.PerspectiveCamera(d.MathUtils.radToDeg(Q.yfov),Q.aspectRatio||1,Q.znear||1,Q.zfar||2e6):I.type==="orthographic"&&(g=new d.OrthographicCamera(-Q.xmag,Q.xmag,Q.ymag,-Q.ymag,Q.znear,Q.zfar)),I.name&&(g.name=this.createUniqueName(I.name)),Mg(g,I),Promise.resolve(g);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(A){const g=this.json.skins[A],I=[];for(let Q=0,C=g.joints.length;Q<C;Q++)I.push(this._loadNodeShallow(g.joints[Q]));return g.inverseBindMatrices!==void 0?I.push(this.getDependency("accessor",g.inverseBindMatrices)):I.push(null),Promise.all(I).then(function(Q){const C=Q.pop(),E=Q,a=[],i=[];for(let t=0,e=E.length;t<e;t++){const o=E[t];if(o){a.push(o);const r=new d.Matrix4;C!==null&&r.fromArray(C.array,16*t),i.push(r)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',g.joints[t])}return new d.Skeleton(a,i)})}loadAnimation(A){const g=this.json,I=this,Q=g.animations[A],C=Q.name?Q.name:"animation_"+A,E=[],a=[],i=[],t=[],e=[];for(let o=0,r=Q.channels.length;o<r;o++){const n=Q.channels[o],s=Q.samplers[n.sampler],c=n.target,D=c.node,b=Q.parameters!==void 0?Q.parameters[s.input]:s.input,h=Q.parameters!==void 0?Q.parameters[s.output]:s.output;c.node!==void 0&&(E.push(this.getDependency("node",D)),a.push(this.getDependency("accessor",b)),i.push(this.getDependency("accessor",h)),t.push(s),e.push(c))}return Promise.all([Promise.all(E),Promise.all(a),Promise.all(i),Promise.all(t),Promise.all(e)]).then(function(o){const r=o[0],n=o[1],s=o[2],c=o[3],D=o[4],b=[];for(let w=0,f=r.length;w<f;w++){const p=r[w],R=n[w],U=s[w],G=c[w],k=D[w];if(p===void 0)continue;p.updateMatrix&&p.updateMatrix();const J=I._createAnimationTracks(p,R,U,G,k);if(J)for(let m=0;m<J.length;m++)b.push(J[m])}const h=new d.AnimationClip(C,void 0,b);return Mg(h,Q),h})}createNodeMesh(A){const g=this.json,I=this,Q=g.nodes[A];return Q.mesh===void 0?null:I.getDependency("mesh",Q.mesh).then(function(C){const E=I._getNodeRef(I.meshCache,Q.mesh,C);return Q.weights!==void 0&&E.traverse(function(a){if(a.isMesh)for(let i=0,t=Q.weights.length;i<t;i++)a.morphTargetInfluences[i]=Q.weights[i]}),E})}loadNode(A){const g=this,I=this.json.nodes[A],Q=g._loadNodeShallow(A),C=[],E=I.children||[];for(let i=0,t=E.length;i<t;i++)C.push(g.getDependency("node",E[i]));const a=I.skin===void 0?Promise.resolve(null):g.getDependency("skin",I.skin);return Promise.all([Q,Promise.all(C),a]).then(function(i){const t=i[0],e=i[1],o=i[2];o!==null&&t.traverse(function(r){r.isSkinnedMesh&&r.bind(o,ue)});for(let r=0,n=e.length;r<n;r++)t.add(e[r]);return t})}_loadNodeShallow(A){const g=this.json,I=this.extensions,Q=this;if(this.nodeCache[A]!==void 0)return this.nodeCache[A];const C=g.nodes[A],E=C.name?Q.createUniqueName(C.name):"",a=[],i=Q._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(A)});return i&&a.push(i),C.camera!==void 0&&a.push(Q.getDependency("camera",C.camera).then(function(t){return Q._getNodeRef(Q.cameraCache,C.camera,t)})),Q._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(A)}).forEach(function(t){a.push(t)}),this.nodeCache[A]=Promise.all(a).then(function(t){let e;if(e=C.isBone===!0?new d.Bone:t.length>1?new d.Group:t.length===1?t[0]:new d.Object3D,e!==t[0])for(let o=0,r=t.length;o<r;o++)e.add(t[o]);if(C.name&&(e.userData.name=C.name,e.name=E),Mg(e,C),C.extensions&&QI(I,e,C),C.matrix!==void 0){const o=new d.Matrix4;o.fromArray(C.matrix),e.applyMatrix4(o)}else C.translation!==void 0&&e.position.fromArray(C.translation),C.rotation!==void 0&&e.quaternion.fromArray(C.rotation),C.scale!==void 0&&e.scale.fromArray(C.scale);if(Q.associations.has(e)){if(C.mesh!==void 0&&Q.meshCache.refs[C.mesh]>1){const o=Q.associations.get(e);Q.associations.set(e,{...o})}}else Q.associations.set(e,{});return Q.associations.get(e).nodes=A,e}),this.nodeCache[A]}loadScene(A){const g=this.extensions,I=this.json.scenes[A],Q=this,C=new d.Group;I.name&&(C.name=Q.createUniqueName(I.name)),Mg(C,I),I.extensions&&QI(g,C,I);const E=I.nodes||[],a=[];for(let i=0,t=E.length;i<t;i++)a.push(Q.getDependency("node",E[i]));return Promise.all(a).then(function(i){for(let t=0,e=i.length;t<e;t++)C.add(i[t]);return Q.associations=(t=>{const e=new Map;for(const[o,r]of Q.associations)(o instanceof d.Material||o instanceof d.Texture)&&e.set(o,r);return t.traverse(o=>{const r=Q.associations.get(o);r!=null&&e.set(o,r)}),e})(C),C})}_createAnimationTracks(A,g,I,Q,C){const E=[],a=A.name?A.name:A.uuid,i=[];let t;switch(Tg[C.path]===Tg.weights?A.traverse(function(r){r.morphTargetInfluences&&i.push(r.name?r.name:r.uuid)}):i.push(a),Tg[C.path]){case Tg.weights:t=d.NumberKeyframeTrack;break;case Tg.rotation:t=d.QuaternionKeyframeTrack;break;case Tg.translation:case Tg.scale:t=d.VectorKeyframeTrack;break;default:I.itemSize===1?t=d.NumberKeyframeTrack:t=d.VectorKeyframeTrack}const e=Q.interpolation!==void 0?ce[Q.interpolation]:d.InterpolateLinear,o=this._getArrayFromAccessor(I);for(let r=0,n=i.length;r<n;r++){const s=new t(i[r]+"."+Tg[C.path],g.array,o,e);Q.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(s),E.push(s)}return E}_getArrayFromAccessor(A){let g=A.array;if(A.normalized){const I=rQ(g.constructor),Q=new Float32Array(g.length);for(let C=0,E=g.length;C<E;C++)Q[C]=g[C]*I;g=Q}return g}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(g){return new(this instanceof d.QuaternionKeyframeTrack?se:AE)(this.times,this.values,this.getValueSize()/3,g)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function VQ(B,A,g){const I=A.attributes,Q=[];function C(E,a){return g.getDependency("accessor",E).then(function(i){B.setAttribute(a,i)})}for(const E in I){const a=nQ[E]||E.toLowerCase();a in B.attributes||Q.push(C(I[E],a))}if(A.indices!==void 0&&!B.index){const E=g.getDependency("accessor",A.indices).then(function(a){B.setIndex(a)});Q.push(E)}return d.ColorManagement.workingColorSpace!==d.LinearSRGBColorSpace&&"COLOR_0"in I&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${d.ColorManagement.workingColorSpace}" not supported.`),Mg(B,A),function(E,a,i){const t=a.attributes,e=new d.Box3;if(t.POSITION===void 0)return;{const n=i.json.accessors[t.POSITION],s=n.min,c=n.max;if(s===void 0||c===void 0)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(e.set(new d.Vector3(s[0],s[1],s[2]),new d.Vector3(c[0],c[1],c[2])),n.normalized){const D=rQ(MI[n.componentType]);e.min.multiplyScalar(D),e.max.multiplyScalar(D)}}const o=a.targets;if(o!==void 0){const n=new d.Vector3,s=new d.Vector3;for(let c=0,D=o.length;c<D;c++){const b=o[c];if(b.POSITION!==void 0){const h=i.json.accessors[b.POSITION],w=h.min,f=h.max;if(w!==void 0&&f!==void 0){if(s.setX(Math.max(Math.abs(w[0]),Math.abs(f[0]))),s.setY(Math.max(Math.abs(w[1]),Math.abs(f[1]))),s.setZ(Math.max(Math.abs(w[2]),Math.abs(f[2]))),h.normalized){const p=rQ(MI[h.componentType]);s.multiplyScalar(p)}n.max(s)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}e.expandByVector(n)}E.boundingBox=e;const r=new d.Sphere;e.getCenter(r.center),r.radius=e.min.distanceTo(e.max)/2,E.boundingSphere=r}(B,A,g),Promise.all(Q).then(function(){return A.targets!==void 0?function(E,a,i){let t=!1,e=!1,o=!1;for(let c=0,D=a.length;c<D;c++){const b=a[c];if(b.POSITION!==void 0&&(t=!0),b.NORMAL!==void 0&&(e=!0),b.COLOR_0!==void 0&&(o=!0),t&&e&&o)break}if(!t&&!e&&!o)return Promise.resolve(E);const r=[],n=[],s=[];for(let c=0,D=a.length;c<D;c++){const b=a[c];if(t){const h=b.POSITION!==void 0?i.getDependency("accessor",b.POSITION):E.attributes.position;r.push(h)}if(e){const h=b.NORMAL!==void 0?i.getDependency("accessor",b.NORMAL):E.attributes.normal;n.push(h)}if(o){const h=b.COLOR_0!==void 0?i.getDependency("accessor",b.COLOR_0):E.attributes.color;s.push(h)}}return Promise.all([Promise.all(r),Promise.all(n),Promise.all(s)]).then(function(c){const D=c[0],b=c[1],h=c[2];return t&&(E.morphAttributes.position=D),e&&(E.morphAttributes.normal=b),o&&(E.morphAttributes.color=h),E.morphTargetsRelative=!0,E})}(B,A.targets,g):B})}const TB=new WeakMap;class gE extends d.Loader{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,g,I,Q){const C=new d.FileLoader(this.manager);C.setPath(this.path),C.setResponseType("arraybuffer"),C.setRequestHeader(this.requestHeader),C.setWithCredentials(this.withCredentials),C.load(A,E=>{this.parse(E,g,Q)},I,Q)}parse(A,g,I=()=>{}){this.decodeDracoFile(A,g,null,null,d.SRGBColorSpace,I).catch(I)}decodeDracoFile(A,g,I,Q,C=d.LinearSRGBColorSpace,E=()=>{}){const a={attributeIDs:I||this.defaultAttributeIDs,attributeTypes:Q||this.defaultAttributeTypes,useUniqueIDs:!!I,vertexColorSpace:C};return this.decodeGeometry(A,a).then(g).catch(E)}decodeGeometry(A,g){const I=JSON.stringify(g);if(TB.has(A)){const i=TB.get(A);if(i.key===I)return i.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let Q;const C=this.workerNextTaskID++,E=A.byteLength,a=this._getWorker(C,E).then(i=>(Q=i,new Promise((t,e)=>{Q._callbacks[C]={resolve:t,reject:e},Q.postMessage({type:"decode",id:C,taskConfig:g,buffer:A},[A])}))).then(i=>this._createGeometry(i.geometry));return a.catch(()=>!0).then(()=>{Q&&C&&this._releaseTask(Q,C)}),TB.set(A,{key:I,promise:a}),a}_createGeometry(A){const g=new d.BufferGeometry;A.index&&g.setIndex(new d.BufferAttribute(A.index.array,1));for(let I=0;I<A.attributes.length;I++){const Q=A.attributes[I],C=Q.name,E=Q.array,a=Q.itemSize,i=new d.BufferAttribute(E,a);C==="color"&&(this._assignVertexColorSpace(i,Q.vertexColorSpace),i.normalized=!(E instanceof Float32Array)),g.setAttribute(C,i)}return g}_assignVertexColorSpace(A,g){if(g!==d.SRGBColorSpace)return;const I=new d.Color;for(let Q=0,C=A.count;Q<C;Q++)I.fromBufferAttribute(A,Q),d.ColorManagement.colorSpaceToWorking(I,d.SRGBColorSpace),A.setXYZ(Q,I.r,I.g,I.b)}_loadLibrary(A,g){const I=new d.FileLoader(this.manager);return I.setPath(this.decoderPath),I.setResponseType(g),I.setWithCredentials(this.withCredentials),new Promise((Q,C)=>{I.load(A,Q,void 0,C)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",g=[];return A?g.push(this._loadLibrary("draco_decoder.js","text")):(g.push(this._loadLibrary("draco_wasm_wrapper.js","text")),g.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(g).then(I=>{const Q=I[0];A||(this.decoderConfig.wasmBinary=I[1]);const C=fe.toString(),E=["/* draco decoder */",Q,"","/* worker */",C.substring(C.indexOf("{")+1,C.lastIndexOf("}"))].join(`
|
|
896
|
+
`,OQ=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",ZC],{type:"text/javascript;charset=utf-8"});function Ka(B){let A;try{if(A=OQ&&(self.URL||self.webkitURL).createObjectURL(OQ),!A)throw"";const g=new Worker(A,{type:"module",name:B?.name});return g.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),g}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(ZC),{type:"module",name:B?.name})}}class ja{constructor(A,g){this.gltfLoader=A,this.renderer=g,this.gltfLoader?.register&&this.gltfLoader.register(()=>({name:"KHR_spz_gaussian_splats_compression"}));try{this.spzWorker=new Ka,this.spzWorkerJobId=0,this.spzWorkerCallbacks=new Map,this.spzWorker.onmessage=I=>{const{id:Q,pos:C,col:E,c0:a,c1:i,error:t}=I.data||{},e=this.spzWorkerCallbacks.get(Q);e&&(this.spzWorkerCallbacks.delete(Q),t?e.reject(new Error(t)):e.resolve({pos:C,col:E,c0:a,c1:i}))},this.spzWorker.onerror=I=>{for(const[,Q]of this.spzWorkerCallbacks)Q.reject(I instanceof Error?I:new Error(String(I)));this.spzWorkerCallbacks.clear()}}catch{this.spzWorker=void 0}}parseSplats(A,g,I,Q){return new Promise(async(C,E)=>{await this.#e(),this.gltfLoader.parse(A,"",async a=>{try{const i=await this.#B(a,Q);C(i)}catch(i){E(i)}},a=>E(a))})}async#B(A,g){if(g)return this.#A(A);const I=A.parser,Q=I.json,C=this.#Q(Q);return C?.type==="SPZ"?this.#C(I,C,A):C?.type==="KHR"?this.#E(I,Q,C,A):C?.type==="ULTRA"?this.#A(A):(A.scene||(A.scene=new V.Object3D),A.scene.asset=A.asset,A.scene)}#Q(A){if(!A?.meshes)return null;for(let g=0;g<A.meshes.length;g++){const I=A.meshes[g];for(let Q=0;Q<(I.primitives?.length||0);Q++){const C=I.primitives[Q],E=C?.extensions;if(E?.KHR_spz_gaussian_splats_compression&&Number.isInteger(E.KHR_spz_gaussian_splats_compression.bufferView))return{mesh:g,prim:Q,type:"SPZ",bv:E.KHR_spz_gaussian_splats_compression.bufferView};if(E?.KHR_gaussian_splatting)return{mesh:g,prim:Q,type:"KHR"};if(E?.ULTRA_splats)return{mesh:g,prim:Q,type:"ULTRA"}}}return null}async#C(A,g,I){let Q=await A.getDependency("bufferView",g.bv);if(Q?.buffer?.byteLength&&(Q=Q.buffer.slice(Q.byteOffset,Q.byteLength+Q.byteOffset)),this.spzWorker){const h=this.spzWorkerJobId++,w=new Promise((Z,aA)=>{this.spzWorkerCallbacks.set(h,{resolve:Z,reject:aA})});try{this.spzWorker.postMessage({id:h,spz:Q},[Q])}catch(Z){throw this.spzWorkerCallbacks.delete(h),Z}const{pos:f,col:p,c0:R,c1:U}=await w,G=new Float32Array(f),k=new Float32Array(p),J=new Float32Array(R),m=new Float32Array(U),O=new V.BufferAttribute(G,3),X=new V.BufferAttribute(k,4),IA=new V.BufferAttribute(J,3),AA=new V.BufferAttribute(m,3);return I.scene.traverse(Z=>Z.dispose&&Z.dispose()),{isSplatsData:!0,positions:O,colors:X,cov0:IA,cov1:AA}}const C=await xa(Q,{coordinateSystem:"LUF"}),E=C.numPoints??C.positions.length/3,a=new Float32Array(C.positions),i=C.colors??C.color,t=C.alphas??C.opacity??C.opacities,e=new Float32Array(4*E);for(let h=0;h<E;h++){const w=i[3*h+0],f=i[3*h+1],p=i[3*h+2],R=t?this.#a(t[h]):1,[U,G,k]=this.#I(w,f,p);e.set([U,G,k,R],4*h)}const o=C.rotations??C.quaternions,r=C.scales??C.scale,n=this.#g(o,r),s=new V.BufferAttribute(a,3),c=new V.BufferAttribute(e,4),D=new V.BufferAttribute(n.c0,3),b=new V.BufferAttribute(n.c1,3);return I.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:s,colors:c,cov0:D,cov1:b}}async#E(A,g,I,Q){const C=g.meshes[I.mesh].primitives[I.prim],E=async h=>{const w=C.attributes?.[h];return Number.isInteger(w)?A.getDependency("accessor",w):null};let a=await E("POSITION");if(!a)return this.#A(Q);a?.buffer&&(a=new Float32Array(a.buffer,a.byteOffset,3*a.count));let i=await E("COLOR_0");i?.buffer&&(i=new Float32Array(i.buffer,i.byteOffset,(i.itemSize||4)*i.count));let t=await E("ROTATION")||await E("_ROTATION"),e=await E("SCALE")||await E("_SCALE");t?.buffer&&(t=new Float32Array(t.buffer,t.byteOffset,4*t.count)),e?.buffer&&(e=new Float32Array(e.buffer,e.byteOffset,3*e.count));const o=a.length/3,r=new Float32Array(4*o);if(i){const h=i.length===4*o?4:3;for(let w=0;w<o;w++){const f=i[w*h+0],p=i[w*h+1],R=i[w*h+2],[U,G,k]=this.#I(f,p,R);r.set([U,G,k,h===4?i[w*h+3]:1],4*w)}}else for(let h=0;h<o;h++)r.set([1,1,1,1],4*h);const n=this.#g(t,e),s=new V.BufferAttribute(a,3),c=new V.BufferAttribute(r,4),D=new V.BufferAttribute(n.c0,3),b=new V.BufferAttribute(n.c1,3);return Q.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:s,colors:c,cov0:D,cov1:b}}async#A(A){const g=A.scene.children[0].geometry,I=g.attributes.position,Q=g.attributes.color,C=g.attributes.cov_0||g.attributes.COV_0,E=g.attributes.cov_1||g.attributes.COV_1;return A.scene.traverse(a=>a.dispose&&a.dispose()),{isSplatsData:!0,positions:I,colors:Q,cov0:C,cov1:E}}#g(A,g){const I=(A?.length||0)/4,Q=new Float32Array(3*I),C=new Float32Array(3*I),E=new Float32Array(9);for(let a=0;a<I;a++){const i=A?A[4*a+0]:0,t=A?A[4*a+1]:0,e=A?A[4*a+2]:0,o=A?A[4*a+3]:1,r=i*i,n=t*t,s=e*e,c=i*t,D=i*e,b=t*e,h=o*i,w=o*t,f=o*e;E[0]=1-2*(n+s),E[1]=2*(c-f),E[2]=2*(D+w),E[3]=2*(c+f),E[4]=1-2*(r+s),E[5]=2*(b-h),E[6]=2*(D-w),E[7]=2*(b+h),E[8]=1-2*(r+n);const p=Math.max(1e-12,g?g[3*a+0]:0),R=Math.max(1e-12,g?g[3*a+1]:0),U=Math.max(1e-12,g?g[3*a+2]:0),G=p*p,k=R*R,J=U*U,m=E[0]*E[0]*G+E[1]*E[1]*k+E[2]*E[2]*J,O=E[3]*E[0]*G+E[4]*E[1]*k+E[5]*E[2]*J,X=E[6]*E[0]*G+E[7]*E[1]*k+E[8]*E[2]*J,IA=E[3]*E[3]*G+E[4]*E[4]*k+E[5]*E[5]*J,AA=E[6]*E[3]*G+E[7]*E[4]*k+E[8]*E[5]*J,Z=E[6]*E[6]*G+E[7]*E[7]*k+E[8]*E[8]*J,aA=3*a;Q[aA+0]=m,Q[aA+1]=O,Q[aA+2]=X,C[aA+0]=IA,C[aA+1]=AA,C[aA+2]=Z}return{c0:Q,c1:C}}#a(A){return Number.isFinite(A)?A>=0&&A<=1?A:A>=0&&A<=255&&Math.abs(A-Math.round(A))<.001?A/255:A>=0&&A<=65535&&Math.abs(A-Math.round(A))<.001?A/65535:Math.min(1,Math.max(0,A)):1}#I(A,g,I){const Q=o=>o>=0&&o<=255&&Math.abs(o-Math.round(o))<.001,C=o=>o>=0&&o<=65535&&Math.abs(o-Math.round(o))<.001,E=o=>o<=.04045?o/12.92:Math.pow((o+.055)/1.055,2.4),a=o=>Math.min(1,Math.max(0,o));let i=A,t=g,e=I;if(!(A>=0&&A<=1&&g>=0&&g<=1&&I>=0&&I<=1))if(Q(A)&&Q(g)&&Q(I))i=A/255,t=g/255,e=I/255;else if(C(A)&&C(g)&&C(I))i=A/65535,t=g/65535,e=I/65535;else{const o=r=>.5+.28209479177387814*r;i=o(A),t=o(g),e=o(I)}return i=a(i),t=a(t),e=a(e),[E(i),E(t),E(e)]}#e(){return new Promise(A=>{const g=setInterval(()=>{const I=this.gltfLoader;I.hasDracoLoader&&!I.dracoLoader||I.hasKTX2Loader&&!I.ktx2Loader||(clearInterval(g),A())},10)})}}class _C extends d.Loader{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(g){return new Wa(g)}),this.register(function(g){return new Pa(g)}),this.register(function(g){return new Ie(g)}),this.register(function(g){return new Be(g)}),this.register(function(g){return new Qe(g)}),this.register(function(g){return new za(g)}),this.register(function(g){return new Xa(g)}),this.register(function(g){return new Za(g)}),this.register(function(g){return new _a(g)}),this.register(function(g){return new Oa(g)}),this.register(function(g){return new $a(g)}),this.register(function(g){return new Va(g)}),this.register(function(g){return new ge(g)}),this.register(function(g){return new Ae(g)}),this.register(function(g){return new va(g)}),this.register(function(g){return new Ce(g)}),this.register(function(g){return new Ee(g)})}load(A,g,I,Q){const C=this;let E;if(this.resourcePath!=="")E=this.resourcePath;else if(this.path!==""){const t=d.LoaderUtils.extractUrlBase(A);E=d.LoaderUtils.resolveURL(t,this.path)}else E=d.LoaderUtils.extractUrlBase(A);this.manager.itemStart(A);const a=function(t){Q?Q(t):console.error(t),C.manager.itemError(A),C.manager.itemEnd(A)},i=new d.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(A,function(t){try{C.parse(t,E,function(e){g(e),C.manager.itemEnd(A)},a)}catch(e){a(e)}},I,a)}setDRACOLoader(A){return this.dracoLoader=A,this}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,g,I,Q){let C;const E={},a={},i=new TextDecoder;if(typeof A=="string")C=JSON.parse(A);else if(A instanceof ArrayBuffer)if(i.decode(new Uint8Array(A,0,4))===$C){try{E[dA.KHR_BINARY_GLTF]=new ie(A)}catch(e){return void(Q&&Q(e))}C=JSON.parse(E[dA.KHR_BINARY_GLTF].content)}else C=JSON.parse(i.decode(A));else C=A;if(C.asset===void 0||C.asset.version[0]<2)return void(Q&&Q(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const t=new le(C,{path:g||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});t.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){const o=this.pluginCallbacks[e](t);o.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),a[o.name]=o,E[o.name]=!0}if(C.extensionsUsed)for(let e=0;e<C.extensionsUsed.length;++e){const o=C.extensionsUsed[e],r=C.extensionsRequired||[];switch(o){case dA.KHR_MATERIALS_UNLIT:E[o]=new Ta;break;case dA.KHR_DRACO_MESH_COMPRESSION:E[o]=new te(C,this.dracoLoader);break;case dA.KHR_TEXTURE_TRANSFORM:E[o]=new oe;break;case dA.KHR_MESH_QUANTIZATION:E[o]=new ne;break;default:r.indexOf(o)>=0&&a[o]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+o+'".')}}t.setExtensions(E),t.setPlugins(a),t.parse(I,Q)}parseAsync(A,g){const I=this;return new Promise(function(Q,C){I.parse(A,g,Q,C)})}}function qa(){let B={};return{get:function(A){return B[A]},add:function(A,g){B[A]=g},remove:function(A){delete B[A]},removeAll:function(){B={}}}}const dA={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class va{constructor(A){this.parser=A,this.name=dA.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,g=this.parser.json.nodes||[];for(let I=0,Q=g.length;I<Q;I++){const C=g[I];C.extensions&&C.extensions[this.name]&&C.extensions[this.name].light!==void 0&&A._addNodeRef(this.cache,C.extensions[this.name].light)}}_loadLight(A){const g=this.parser,I="light:"+A;let Q=g.cache.get(I);if(Q)return Q;const C=g.json,E=((C.extensions&&C.extensions[this.name]||{}).lights||[])[A];let a;const i=new d.Color(16777215);E.color!==void 0&&i.setRGB(E.color[0],E.color[1],E.color[2],d.LinearSRGBColorSpace);const t=E.range!==void 0?E.range:0;switch(E.type){case"directional":a=new d.DirectionalLight(i),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new d.PointLight(i),a.distance=t;break;case"spot":a=new d.SpotLight(i),a.distance=t,E.spot=E.spot||{},E.spot.innerConeAngle=E.spot.innerConeAngle!==void 0?E.spot.innerConeAngle:0,E.spot.outerConeAngle=E.spot.outerConeAngle!==void 0?E.spot.outerConeAngle:Math.PI/4,a.angle=E.spot.outerConeAngle,a.penumbra=1-E.spot.innerConeAngle/E.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+E.type)}return a.position.set(0,0,0),Mg(a,E),E.intensity!==void 0&&(a.intensity=E.intensity),a.name=g.createUniqueName(E.name||"light_"+A),Q=Promise.resolve(a),g.cache.add(I,Q),Q}getDependency(A,g){if(A==="light")return this._loadLight(g)}createNodeAttachment(A){const g=this,I=this.parser,Q=I.json.nodes[A],C=(Q.extensions&&Q.extensions[this.name]||{}).light;return C===void 0?null:this._loadLight(C).then(function(E){return I._getNodeRef(g.cache,C,E)})}}class Ta{constructor(){this.name=dA.KHR_MATERIALS_UNLIT}getMaterialType(){return d.MeshBasicMaterial}extendParams(A,g,I){const Q=[];A.color=new d.Color(1,1,1),A.opacity=1;const C=g.pbrMetallicRoughness;if(C){if(Array.isArray(C.baseColorFactor)){const E=C.baseColorFactor;A.color.setRGB(E[0],E[1],E[2],d.LinearSRGBColorSpace),A.opacity=E[3]}C.baseColorTexture!==void 0&&Q.push(I.assignTexture(A,"map",C.baseColorTexture,d.SRGBColorSpace))}return Promise.all(Q)}}class Oa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name].emissiveStrength;return Q!==void 0&&(g.emissiveIntensity=Q),Promise.resolve()}}class Wa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];if(E.clearcoatFactor!==void 0&&(g.clearcoat=E.clearcoatFactor),E.clearcoatTexture!==void 0&&C.push(I.assignTexture(g,"clearcoatMap",E.clearcoatTexture)),E.clearcoatRoughnessFactor!==void 0&&(g.clearcoatRoughness=E.clearcoatRoughnessFactor),E.clearcoatRoughnessTexture!==void 0&&C.push(I.assignTexture(g,"clearcoatRoughnessMap",E.clearcoatRoughnessTexture)),E.clearcoatNormalTexture!==void 0&&(C.push(I.assignTexture(g,"clearcoatNormalMap",E.clearcoatNormalTexture)),E.clearcoatNormalTexture.scale!==void 0)){const a=E.clearcoatNormalTexture.scale;g.clearcoatNormalScale=new d.Vector2(a,a)}return Promise.all(C)}}class Pa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_DISPERSION}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name];return g.dispersion=Q.dispersion!==void 0?Q.dispersion:0,Promise.resolve()}}class Va{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return E.iridescenceFactor!==void 0&&(g.iridescence=E.iridescenceFactor),E.iridescenceTexture!==void 0&&C.push(I.assignTexture(g,"iridescenceMap",E.iridescenceTexture)),E.iridescenceIor!==void 0&&(g.iridescenceIOR=E.iridescenceIor),g.iridescenceThicknessRange===void 0&&(g.iridescenceThicknessRange=[100,400]),E.iridescenceThicknessMinimum!==void 0&&(g.iridescenceThicknessRange[0]=E.iridescenceThicknessMinimum),E.iridescenceThicknessMaximum!==void 0&&(g.iridescenceThicknessRange[1]=E.iridescenceThicknessMaximum),E.iridescenceThicknessTexture!==void 0&&C.push(I.assignTexture(g,"iridescenceThicknessMap",E.iridescenceThicknessTexture)),Promise.all(C)}}class za{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_SHEEN}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[];g.sheenColor=new d.Color(0,0,0),g.sheenRoughness=0,g.sheen=1;const E=Q.extensions[this.name];if(E.sheenColorFactor!==void 0){const a=E.sheenColorFactor;g.sheenColor.setRGB(a[0],a[1],a[2],d.LinearSRGBColorSpace)}return E.sheenRoughnessFactor!==void 0&&(g.sheenRoughness=E.sheenRoughnessFactor),E.sheenColorTexture!==void 0&&C.push(I.assignTexture(g,"sheenColorMap",E.sheenColorTexture,d.SRGBColorSpace)),E.sheenRoughnessTexture!==void 0&&C.push(I.assignTexture(g,"sheenRoughnessMap",E.sheenRoughnessTexture)),Promise.all(C)}}class Xa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return E.transmissionFactor!==void 0&&(g.transmission=E.transmissionFactor),E.transmissionTexture!==void 0&&C.push(I.assignTexture(g,"transmissionMap",E.transmissionTexture)),Promise.all(C)}}class Za{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_VOLUME}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];g.thickness=E.thicknessFactor!==void 0?E.thicknessFactor:0,E.thicknessTexture!==void 0&&C.push(I.assignTexture(g,"thicknessMap",E.thicknessTexture)),g.attenuationDistance=E.attenuationDistance||1/0;const a=E.attenuationColor||[1,1,1];return g.attenuationColor=new d.Color().setRGB(a[0],a[1],a[2],d.LinearSRGBColorSpace),Promise.all(C)}}class _a{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_IOR}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name];return g.ior=Q.ior!==void 0?Q.ior:1.5,Promise.resolve()}}class $a{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_SPECULAR}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];g.specularIntensity=E.specularFactor!==void 0?E.specularFactor:1,E.specularTexture!==void 0&&C.push(I.assignTexture(g,"specularIntensityMap",E.specularTexture));const a=E.specularColorFactor||[1,1,1];return g.specularColor=new d.Color().setRGB(a[0],a[1],a[2],d.LinearSRGBColorSpace),E.specularColorTexture!==void 0&&C.push(I.assignTexture(g,"specularColorMap",E.specularColorTexture,d.SRGBColorSpace)),Promise.all(C)}}class Ae{constructor(A){this.parser=A,this.name=dA.EXT_MATERIALS_BUMP}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return g.bumpScale=E.bumpFactor!==void 0?E.bumpFactor:1,E.bumpTexture!==void 0&&C.push(I.assignTexture(g,"bumpMap",E.bumpTexture)),Promise.all(C)}}class ge{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return E.anisotropyStrength!==void 0&&(g.anisotropy=E.anisotropyStrength),E.anisotropyRotation!==void 0&&(g.anisotropyRotation=E.anisotropyRotation),E.anisotropyTexture!==void 0&&C.push(I.assignTexture(g,"anisotropyMap",E.anisotropyTexture)),Promise.all(C)}}class Ie{constructor(A){this.parser=A,this.name=dA.KHR_TEXTURE_BASISU}loadTexture(A){const g=this.parser,I=g.json,Q=I.textures[A];if(!Q.extensions||!Q.extensions[this.name])return null;const C=Q.extensions[this.name],E=g.options.ktx2Loader;if(!E){if(I.extensionsRequired&&I.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return g.loadTextureImage(A,C.source,E)}}class Be{constructor(A){this.parser=A,this.name=dA.EXT_TEXTURE_WEBP}loadTexture(A){const g=this.name,I=this.parser,Q=I.json,C=Q.textures[A];if(!C.extensions||!C.extensions[g])return null;const E=C.extensions[g],a=Q.images[E.source];let i=I.textureLoader;if(a.uri){const t=I.options.manager.getHandler(a.uri);t!==null&&(i=t)}return I.loadTextureImage(A,E.source,i)}}class Qe{constructor(A){this.parser=A,this.name=dA.EXT_TEXTURE_AVIF}loadTexture(A){const g=this.name,I=this.parser,Q=I.json,C=Q.textures[A];if(!C.extensions||!C.extensions[g])return null;const E=C.extensions[g],a=Q.images[E.source];let i=I.textureLoader;if(a.uri){const t=I.options.manager.getHandler(a.uri);t!==null&&(i=t)}return I.loadTextureImage(A,E.source,i)}}class Ce{constructor(A){this.name=dA.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const g=this.parser.json,I=g.bufferViews[A];if(I.extensions&&I.extensions[this.name]){const Q=I.extensions[this.name],C=this.parser.getDependency("buffer",Q.buffer),E=this.parser.options.meshoptDecoder;if(!E||!E.supported){if(g.extensionsRequired&&g.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return C.then(function(a){const i=Q.byteOffset||0,t=Q.byteLength||0,e=Q.count,o=Q.byteStride,r=new Uint8Array(a,i,t);return E.decodeGltfBufferAsync?E.decodeGltfBufferAsync(e,o,r,Q.mode,Q.filter).then(function(n){return n.buffer}):E.ready.then(function(){const n=new ArrayBuffer(e*o);return E.decodeGltfBuffer(new Uint8Array(n),e,o,r,Q.mode,Q.filter),n})})}return null}}class Ee{constructor(A){this.name=dA.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const g=this.parser.json,I=g.nodes[A];if(!I.extensions||!I.extensions[this.name]||I.mesh===void 0)return null;const Q=g.meshes[I.mesh];for(const i of Q.primitives)if(i.mode!==bg.TRIANGLES&&i.mode!==bg.TRIANGLE_STRIP&&i.mode!==bg.TRIANGLE_FAN&&i.mode!==void 0)return null;const C=I.extensions[this.name].attributes,E=[],a={};for(const i in C)E.push(this.parser.getDependency("accessor",C[i]).then(t=>(a[i]=t,a[i])));return E.length<1?null:(E.push(this.parser.createNodeMesh(A)),Promise.all(E).then(i=>{const t=i.pop(),e=t.isGroup?t.children:[t],o=i[0].count,r=[];for(const n of e){const s=new d.Matrix4,c=new d.Vector3,D=new d.Quaternion,b=new d.Vector3(1,1,1),h=new d.InstancedMesh(n.geometry,n.material,o);for(let w=0;w<o;w++)a.TRANSLATION&&c.fromBufferAttribute(a.TRANSLATION,w),a.ROTATION&&D.fromBufferAttribute(a.ROTATION,w),a.SCALE&&b.fromBufferAttribute(a.SCALE,w),h.setMatrixAt(w,s.compose(c,D,b));for(const w in a)if(w==="_COLOR_0"){const f=a[w];h.instanceColor=new d.InstancedBufferAttribute(f.array,f.itemSize,f.normalized)}else w!=="TRANSLATION"&&w!=="ROTATION"&&w!=="SCALE"&&n.geometry.setAttribute(w,a[w]);d.Object3D.prototype.copy.call(h,n),this.parser.assignFinalMaterial(h),r.push(h)}return t.isGroup?(t.clear(),t.add(...r),t):r[0]}))}}const $C="glTF",ae=1313821514,ee=5130562;class ie{constructor(A){this.name=dA.KHR_BINARY_GLTF,this.content=null,this.body=null;const g=new DataView(A,0,12),I=new TextDecoder;if(this.header={magic:I.decode(new Uint8Array(A.slice(0,4))),version:g.getUint32(4,!0),length:g.getUint32(8,!0)},this.header.magic!==$C)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const Q=this.header.length-12,C=new DataView(A,12);let E=0;for(;E<Q;){const a=C.getUint32(E,!0);E+=4;const i=C.getUint32(E,!0);if(E+=4,i===ae){const t=new Uint8Array(A,12+E,a);this.content=I.decode(t)}else if(i===ee){const t=12+E;this.body=A.slice(t,t+a)}E+=a}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class te{constructor(A,g){if(!g)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=dA.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=g,this.dracoLoader.preload()}decodePrimitive(A,g){const I=this.json,Q=this.dracoLoader,C=A.extensions[this.name].bufferView,E=A.extensions[this.name].attributes,a={},i={},t={};for(const e in E){const o=nQ[e]||e.toLowerCase();a[o]=E[e]}for(const e in A.attributes){const o=nQ[e]||e.toLowerCase();if(E[e]!==void 0){const r=I.accessors[A.attributes[e]],n=MI[r.componentType];t[o]=n.name,i[o]=r.normalized===!0}}return g.getDependency("bufferView",C).then(function(e){return new Promise(function(o,r){Q.decodeDracoFile(e,function(n){for(const s in n.attributes){const c=n.attributes[s],D=i[s];D!==void 0&&(c.normalized=D)}o(n)},a,t,d.LinearSRGBColorSpace,r)})})}}class oe{constructor(){this.name=dA.KHR_TEXTURE_TRANSFORM}extendTexture(A,g){return(g.texCoord!==void 0&&g.texCoord!==A.channel||g.offset!==void 0||g.rotation!==void 0||g.scale!==void 0)&&(A=A.clone(),g.texCoord!==void 0&&(A.channel=g.texCoord),g.offset!==void 0&&A.offset.fromArray(g.offset),g.rotation!==void 0&&(A.rotation=g.rotation),g.scale!==void 0&&A.repeat.fromArray(g.scale),A.needsUpdate=!0),A}}class ne{constructor(){this.name=dA.KHR_MESH_QUANTIZATION}}class AE extends d.Interpolant{constructor(A,g,I,Q){super(A,g,I,Q)}copySampleValue_(A){const g=this.resultBuffer,I=this.sampleValues,Q=this.valueSize,C=A*Q*3+Q;for(let E=0;E!==Q;E++)g[E]=I[C+E];return g}interpolate_(A,g,I,Q){const C=this.resultBuffer,E=this.sampleValues,a=this.valueSize,i=2*a,t=3*a,e=Q-g,o=(I-g)/e,r=o*o,n=r*o,s=A*t,c=s-t,D=-2*n+3*r,b=n-r,h=1-D,w=b-r+o;for(let f=0;f!==a;f++){const p=E[c+f+a],R=E[c+f+i]*e,U=E[s+f+a],G=E[s+f]*e;C[f]=h*p+w*R+D*U+b*G}return C}}const re=new d.Quaternion;class se extends AE{interpolate_(A,g,I,Q){const C=super.interpolate_(A,g,I,Q);return re.fromArray(C).normalize().toArray(C),C}}const bg={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},MI={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},WQ={9728:d.NearestFilter,9729:d.LinearFilter,9984:d.NearestMipmapNearestFilter,9985:d.LinearMipmapNearestFilter,9986:d.NearestMipmapLinearFilter,9987:d.LinearMipmapLinearFilter},PQ={33071:d.ClampToEdgeWrapping,33648:d.MirroredRepeatWrapping,10497:d.RepeatWrapping},qB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},nQ={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Tg={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},ce={CUBICSPLINE:void 0,LINEAR:d.InterpolateLinear,STEP:d.InterpolateDiscrete},he="OPAQUE",De="MASK",de="BLEND";function BI(B,A,g){for(const I in g.extensions)B[I]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[I]=g.extensions[I])}function Mg(B,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(B.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function be(B,A){if(B.updateMorphTargets(),A.weights!==void 0)for(let g=0,I=A.weights.length;g<I;g++)B.morphTargetInfluences[g]=A.weights[g];if(A.extras&&Array.isArray(A.extras.targetNames)){const g=A.extras.targetNames;if(B.morphTargetInfluences.length===g.length){B.morphTargetDictionary={};for(let I=0,Q=g.length;I<Q;I++)B.morphTargetDictionary[g[I]]=I}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function we(B){let A;const g=B.extensions&&B.extensions[dA.KHR_DRACO_MESH_COMPRESSION];if(A=g?"draco:"+g.bufferView+":"+g.indices+":"+vB(g.attributes):B.indices+":"+vB(B.attributes)+":"+B.mode,B.targets!==void 0)for(let I=0,Q=B.targets.length;I<Q;I++)A+=":"+vB(B.targets[I]);return A}function vB(B){let A="";const g=Object.keys(B).sort();for(let I=0,Q=g.length;I<Q;I++)A+=g[I]+":"+B[g[I]]+";";return A}function rQ(B){switch(B){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const ue=new d.Matrix4;class le{constructor(A={},g={}){this.json=A,this.extensions={},this.plugins={},this.options=g,this.cache=new qa,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let I=!1,Q=-1,C=!1,E=-1;if(typeof navigator<"u"){const a=navigator.userAgent;I=/^((?!chrome|android).)*safari/i.test(a)===!0;const i=a.match(/Version\/(\d+)/);Q=I&&i?parseInt(i[1],10):-1,C=a.indexOf("Firefox")>-1,E=C?a.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||I&&Q<17||C&&E<98?this.textureLoader=new d.TextureLoader(this.options.manager):this.textureLoader=new d.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new d.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,g){const I=this,Q=this.json,C=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(E){return E._markDefs&&E._markDefs()}),Promise.all(this._invokeAll(function(E){return E.beforeRoot&&E.beforeRoot()})).then(function(){return Promise.all([I.getDependencies("scene"),I.getDependencies("animation"),I.getDependencies("camera")])}).then(function(E){const a={scene:E[0][Q.scene||0],scenes:E[0],animations:E[1],cameras:E[2],asset:Q.asset,parser:I,userData:{}};return BI(C,a,Q),Mg(a,Q),Promise.all(I._invokeAll(function(i){return i.afterRoot&&i.afterRoot(a)})).then(function(){for(const i of a.scenes)i.updateMatrixWorld();A(a)})}).catch(g)}_markDefs(){const A=this.json.nodes||[],g=this.json.skins||[],I=this.json.meshes||[];for(let Q=0,C=g.length;Q<C;Q++){const E=g[Q].joints;for(let a=0,i=E.length;a<i;a++)A[E[a]].isBone=!0}for(let Q=0,C=A.length;Q<C;Q++){const E=A[Q];E.mesh!==void 0&&(this._addNodeRef(this.meshCache,E.mesh),E.skin!==void 0&&(I[E.mesh].isSkinnedMesh=!0)),E.camera!==void 0&&this._addNodeRef(this.cameraCache,E.camera)}}_addNodeRef(A,g){g!==void 0&&(A.refs[g]===void 0&&(A.refs[g]=A.uses[g]=0),A.refs[g]++)}_getNodeRef(A,g,I){if(A.refs[g]<=1)return I;const Q=I.clone(),C=(E,a)=>{const i=this.associations.get(E);i!=null&&this.associations.set(a,i);for(const[t,e]of E.children.entries())C(e,a.children[t])};return C(I,Q),Q.name+="_instance_"+A.uses[g]++,Q}_invokeOne(A){const g=Object.values(this.plugins);g.push(this);for(let I=0;I<g.length;I++){const Q=A(g[I]);if(Q)return Q}return null}_invokeAll(A){const g=Object.values(this.plugins);g.unshift(this);const I=[];for(let Q=0;Q<g.length;Q++){const C=A(g[Q]);C&&I.push(C)}return I}getDependency(A,g){const I=A+":"+g;let Q=this.cache.get(I);if(!Q){switch(A){case"scene":Q=this.loadScene(g);break;case"node":Q=this._invokeOne(function(C){return C.loadNode&&C.loadNode(g)});break;case"mesh":Q=this._invokeOne(function(C){return C.loadMesh&&C.loadMesh(g)});break;case"accessor":Q=this.loadAccessor(g);break;case"bufferView":Q=this._invokeOne(function(C){return C.loadBufferView&&C.loadBufferView(g)});break;case"buffer":Q=this.loadBuffer(g);break;case"material":Q=this._invokeOne(function(C){return C.loadMaterial&&C.loadMaterial(g)});break;case"texture":Q=this._invokeOne(function(C){return C.loadTexture&&C.loadTexture(g)});break;case"skin":Q=this.loadSkin(g);break;case"animation":Q=this._invokeOne(function(C){return C.loadAnimation&&C.loadAnimation(g)});break;case"camera":Q=this.loadCamera(g);break;default:if(Q=this._invokeOne(function(C){return C!=this&&C.getDependency&&C.getDependency(A,g)}),!Q)throw new Error("Unknown type: "+A)}this.cache.add(I,Q)}return Q}getDependencies(A){let g=this.cache.get(A);if(!g){const I=this,Q=this.json[A+(A==="mesh"?"es":"s")]||[];g=Promise.all(Q.map(function(C,E){return I.getDependency(A,E)})),this.cache.add(A,g)}return g}loadBuffer(A){const g=this.json.buffers[A],I=this.fileLoader;if(g.type&&g.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+g.type+" buffer type is not supported.");if(g.uri===void 0&&A===0)return Promise.resolve(this.extensions[dA.KHR_BINARY_GLTF].body);const Q=this.options;return new Promise(function(C,E){I.load(d.LoaderUtils.resolveURL(g.uri,Q.path),C,void 0,function(){E(new Error('THREE.GLTFLoader: Failed to load buffer "'+g.uri+'".'))})})}loadBufferView(A){const g=this.json.bufferViews[A];return this.getDependency("buffer",g.buffer).then(function(I){const Q=g.byteLength||0,C=g.byteOffset||0;return I.slice(C,C+Q)})}loadAccessor(A){const g=this,I=this.json,Q=this.json.accessors[A];if(Q.bufferView===void 0&&Q.sparse===void 0){const E=qB[Q.type],a=MI[Q.componentType],i=Q.normalized===!0,t=new a(Q.count*E);return Promise.resolve(new d.BufferAttribute(t,E,i))}const C=[];return Q.bufferView!==void 0?C.push(this.getDependency("bufferView",Q.bufferView)):C.push(null),Q.sparse!==void 0&&(C.push(this.getDependency("bufferView",Q.sparse.indices.bufferView)),C.push(this.getDependency("bufferView",Q.sparse.values.bufferView))),Promise.all(C).then(function(E){const a=E[0],i=qB[Q.type],t=MI[Q.componentType],e=t.BYTES_PER_ELEMENT,o=e*i,r=Q.byteOffset||0,n=Q.bufferView!==void 0?I.bufferViews[Q.bufferView].byteStride:void 0,s=Q.normalized===!0;let c,D;if(n&&n!==o){const b=Math.floor(r/n),h="InterleavedBuffer:"+Q.bufferView+":"+Q.componentType+":"+b+":"+Q.count;let w=g.cache.get(h);w||(c=new t(a,b*n,Q.count*n/e),w=new d.InterleavedBuffer(c,n/e),g.cache.add(h,w)),D=new d.InterleavedBufferAttribute(w,i,r%n/e,s)}else c=a===null?new t(Q.count*i):new t(a,r,Q.count*i),D=new d.BufferAttribute(c,i,s);if(Q.sparse!==void 0){const b=qB.SCALAR,h=MI[Q.sparse.indices.componentType],w=Q.sparse.indices.byteOffset||0,f=Q.sparse.values.byteOffset||0,p=new h(E[1],w,Q.sparse.count*b),R=new t(E[2],f,Q.sparse.count*i);a!==null&&(D=new d.BufferAttribute(D.array.slice(),D.itemSize,D.normalized)),D.normalized=!1;for(let U=0,G=p.length;U<G;U++){const k=p[U];if(D.setX(k,R[U*i]),i>=2&&D.setY(k,R[U*i+1]),i>=3&&D.setZ(k,R[U*i+2]),i>=4&&D.setW(k,R[U*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}D.normalized=s}return D})}loadTexture(A){const g=this.json,I=this.options,Q=g.textures[A].source,C=g.images[Q];let E=this.textureLoader;if(C.uri){const a=I.manager.getHandler(C.uri);a!==null&&(E=a)}return this.loadTextureImage(A,Q,E)}loadTextureImage(A,g,I){const Q=this,C=this.json,E=C.textures[A],a=C.images[g],i=(a.uri||a.bufferView)+":"+E.sampler;if(this.textureCache[i])return this.textureCache[i];const t=this.loadImageSource(g,I).then(function(e){e.flipY=!1,e.name=E.name||a.name||"",e.name===""&&typeof a.uri=="string"&&a.uri.startsWith("data:image/")===!1&&(e.name=a.uri);const o=(C.samplers||{})[E.sampler]||{};return e.magFilter=WQ[o.magFilter]||d.LinearFilter,e.minFilter=WQ[o.minFilter]||d.LinearMipmapLinearFilter,e.wrapS=PQ[o.wrapS]||d.RepeatWrapping,e.wrapT=PQ[o.wrapT]||d.RepeatWrapping,e.generateMipmaps=!e.isCompressedTexture&&e.minFilter!==d.NearestFilter&&e.minFilter!==d.LinearFilter,Q.associations.set(e,{textures:A}),e}).catch(function(){return null});return this.textureCache[i]=t,t}loadImageSource(A,g){const I=this,Q=this.json,C=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(o=>o.clone());const E=Q.images[A],a=self.URL||self.webkitURL;let i=E.uri||"",t=!1;if(E.bufferView!==void 0)i=I.getDependency("bufferView",E.bufferView).then(function(o){t=!0;const r=new Blob([o],{type:E.mimeType});return i=a.createObjectURL(r),i});else if(E.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const e=Promise.resolve(i).then(function(o){return new Promise(function(r,n){let s=r;g.isImageBitmapLoader===!0&&(s=function(c){const D=new d.Texture(c);D.needsUpdate=!0,r(D)}),g.load(d.LoaderUtils.resolveURL(o,C.path),s,void 0,n)})}).then(function(o){var r;return t===!0&&a.revokeObjectURL(i),Mg(o,E),o.userData.mimeType=E.mimeType||((r=E.uri).search(/\.jpe?g($|\?)/i)>0||r.search(/^data\:image\/jpeg/)===0?"image/jpeg":r.search(/\.webp($|\?)/i)>0||r.search(/^data\:image\/webp/)===0?"image/webp":r.search(/\.ktx2($|\?)/i)>0||r.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"),o}).catch(function(o){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),o});return this.sourceCache[A]=e,e}assignTexture(A,g,I,Q){const C=this;return this.getDependency("texture",I.index).then(function(E){if(!E)return null;if(I.texCoord!==void 0&&I.texCoord>0&&((E=E.clone()).channel=I.texCoord),C.extensions[dA.KHR_TEXTURE_TRANSFORM]){const a=I.extensions!==void 0?I.extensions[dA.KHR_TEXTURE_TRANSFORM]:void 0;if(a){const i=C.associations.get(E);E=C.extensions[dA.KHR_TEXTURE_TRANSFORM].extendTexture(E,a),C.associations.set(E,i)}}return Q!==void 0&&(E.colorSpace=Q),A[g]=E,E})}assignFinalMaterial(A){const g=A.geometry;let I=A.material;const Q=g.attributes.tangent===void 0,C=g.attributes.color!==void 0,E=g.attributes.normal===void 0;if(A.isPoints){const a="PointsMaterial:"+I.uuid;let i=this.cache.get(a);i||(i=new d.PointsMaterial,d.Material.prototype.copy.call(i,I),i.color.copy(I.color),i.map=I.map,i.sizeAttenuation=!1,this.cache.add(a,i)),I=i}else if(A.isLine){const a="LineBasicMaterial:"+I.uuid;let i=this.cache.get(a);i||(i=new d.LineBasicMaterial,d.Material.prototype.copy.call(i,I),i.color.copy(I.color),i.map=I.map,this.cache.add(a,i)),I=i}if(Q||C||E){let a="ClonedMaterial:"+I.uuid+":";Q&&(a+="derivative-tangents:"),C&&(a+="vertex-colors:"),E&&(a+="flat-shading:");let i=this.cache.get(a);i||(i=I.clone(),C&&(i.vertexColors=!0),E&&(i.flatShading=!0),Q&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(a,i),this.associations.set(i,this.associations.get(I))),I=i}A.material=I}getMaterialType(){return d.MeshStandardMaterial}loadMaterial(A){const g=this,I=this.json,Q=this.extensions,C=I.materials[A];let E;const a={},i=[];if((C.extensions||{})[dA.KHR_MATERIALS_UNLIT]){const e=Q[dA.KHR_MATERIALS_UNLIT];E=e.getMaterialType(),i.push(e.extendParams(a,C,g))}else{const e=C.pbrMetallicRoughness||{};if(a.color=new d.Color(1,1,1),a.opacity=1,Array.isArray(e.baseColorFactor)){const o=e.baseColorFactor;a.color.setRGB(o[0],o[1],o[2],d.LinearSRGBColorSpace),a.opacity=o[3]}e.baseColorTexture!==void 0&&i.push(g.assignTexture(a,"map",e.baseColorTexture,d.SRGBColorSpace)),a.metalness=e.metallicFactor!==void 0?e.metallicFactor:1,a.roughness=e.roughnessFactor!==void 0?e.roughnessFactor:1,e.metallicRoughnessTexture!==void 0&&(i.push(g.assignTexture(a,"metalnessMap",e.metallicRoughnessTexture)),i.push(g.assignTexture(a,"roughnessMap",e.metallicRoughnessTexture))),E=this._invokeOne(function(o){return o.getMaterialType&&o.getMaterialType(A)}),i.push(Promise.all(this._invokeAll(function(o){return o.extendMaterialParams&&o.extendMaterialParams(A,a)})))}C.doubleSided===!0&&(a.side=d.DoubleSide);const t=C.alphaMode||he;if(t===de?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,t===De&&(a.alphaTest=C.alphaCutoff!==void 0?C.alphaCutoff:.5)),C.normalTexture!==void 0&&E!==d.MeshBasicMaterial&&(i.push(g.assignTexture(a,"normalMap",C.normalTexture)),a.normalScale=new d.Vector2(1,1),C.normalTexture.scale!==void 0)){const e=C.normalTexture.scale;a.normalScale.set(e,e)}if(C.occlusionTexture!==void 0&&E!==d.MeshBasicMaterial&&(i.push(g.assignTexture(a,"aoMap",C.occlusionTexture)),C.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=C.occlusionTexture.strength)),C.emissiveFactor!==void 0&&E!==d.MeshBasicMaterial){const e=C.emissiveFactor;a.emissive=new d.Color().setRGB(e[0],e[1],e[2],d.LinearSRGBColorSpace)}return C.emissiveTexture!==void 0&&E!==d.MeshBasicMaterial&&i.push(g.assignTexture(a,"emissiveMap",C.emissiveTexture,d.SRGBColorSpace)),Promise.all(i).then(function(){const e=new E(a);return C.name&&(e.name=C.name),Mg(e,C),g.associations.set(e,{materials:A}),C.extensions&&BI(Q,e,C),e})}createUniqueName(A){const g=d.PropertyBinding.sanitizeNodeName(A||"");return g in this.nodeNamesUsed?g+"_"+ ++this.nodeNamesUsed[g]:(this.nodeNamesUsed[g]=0,g)}loadGeometries(A){const g=this,I=this.extensions,Q=this.primitiveCache;function C(a){return I[dA.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,g).then(function(i){return VQ(i,a,g)})}const E=[];for(let a=0,i=A.length;a<i;a++){const t=A[a],e=we(t),o=Q[e];if(o)E.push(o.promise);else{let r;r=t.extensions&&t.extensions[dA.KHR_DRACO_MESH_COMPRESSION]?C(t):VQ(new d.BufferGeometry,t,g),Q[e]={primitive:t,promise:r},E.push(r)}}return Promise.all(E)}loadMesh(A){const g=this,I=this.json,Q=this.extensions,C=I.meshes[A],E=C.primitives,a=[];for(let t=0,e=E.length;t<e;t++){const o=E[t].material===void 0?((i=this.cache).DefaultMaterial===void 0&&(i.DefaultMaterial=new d.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:d.FrontSide})),i.DefaultMaterial):this.getDependency("material",E[t].material);a.push(o)}var i;return a.push(g.loadGeometries(E)),Promise.all(a).then(function(t){const e=t.slice(0,t.length-1),o=t[t.length-1],r=[];for(let s=0,c=o.length;s<c;s++){const D=o[s],b=E[s];let h;const w=e[s];if(b.mode===bg.TRIANGLES||b.mode===bg.TRIANGLE_STRIP||b.mode===bg.TRIANGLE_FAN||b.mode===void 0)h=C.isSkinnedMesh===!0?new d.SkinnedMesh(D,w):new d.Mesh(D,w),h.isSkinnedMesh===!0&&h.normalizeSkinWeights(),b.mode===bg.TRIANGLE_STRIP?h.geometry=TQ(h.geometry,d.TriangleStripDrawMode):b.mode===bg.TRIANGLE_FAN&&(h.geometry=TQ(h.geometry,d.TriangleFanDrawMode));else if(b.mode===bg.LINES)h=new d.LineSegments(D,w);else if(b.mode===bg.LINE_STRIP)h=new d.Line(D,w);else if(b.mode===bg.LINE_LOOP)h=new d.LineLoop(D,w);else{if(b.mode!==bg.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+b.mode);h=new d.Points(D,w)}Object.keys(h.geometry.morphAttributes).length>0&&be(h,C),h.name=g.createUniqueName(C.name||"mesh_"+A),Mg(h,C),b.extensions&&BI(Q,h,b),g.assignFinalMaterial(h),r.push(h)}for(let s=0,c=r.length;s<c;s++)g.associations.set(r[s],{meshes:A,primitives:s});if(r.length===1)return C.extensions&&BI(Q,r[0],C),r[0];const n=new d.Group;C.extensions&&BI(Q,n,C),g.associations.set(n,{meshes:A});for(let s=0,c=r.length;s<c;s++)n.add(r[s]);return n})}loadCamera(A){let g;const I=this.json.cameras[A],Q=I[I.type];if(Q)return I.type==="perspective"?g=new d.PerspectiveCamera(d.MathUtils.radToDeg(Q.yfov),Q.aspectRatio||1,Q.znear||1,Q.zfar||2e6):I.type==="orthographic"&&(g=new d.OrthographicCamera(-Q.xmag,Q.xmag,Q.ymag,-Q.ymag,Q.znear,Q.zfar)),I.name&&(g.name=this.createUniqueName(I.name)),Mg(g,I),Promise.resolve(g);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(A){const g=this.json.skins[A],I=[];for(let Q=0,C=g.joints.length;Q<C;Q++)I.push(this._loadNodeShallow(g.joints[Q]));return g.inverseBindMatrices!==void 0?I.push(this.getDependency("accessor",g.inverseBindMatrices)):I.push(null),Promise.all(I).then(function(Q){const C=Q.pop(),E=Q,a=[],i=[];for(let t=0,e=E.length;t<e;t++){const o=E[t];if(o){a.push(o);const r=new d.Matrix4;C!==null&&r.fromArray(C.array,16*t),i.push(r)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',g.joints[t])}return new d.Skeleton(a,i)})}loadAnimation(A){const g=this.json,I=this,Q=g.animations[A],C=Q.name?Q.name:"animation_"+A,E=[],a=[],i=[],t=[],e=[];for(let o=0,r=Q.channels.length;o<r;o++){const n=Q.channels[o],s=Q.samplers[n.sampler],c=n.target,D=c.node,b=Q.parameters!==void 0?Q.parameters[s.input]:s.input,h=Q.parameters!==void 0?Q.parameters[s.output]:s.output;c.node!==void 0&&(E.push(this.getDependency("node",D)),a.push(this.getDependency("accessor",b)),i.push(this.getDependency("accessor",h)),t.push(s),e.push(c))}return Promise.all([Promise.all(E),Promise.all(a),Promise.all(i),Promise.all(t),Promise.all(e)]).then(function(o){const r=o[0],n=o[1],s=o[2],c=o[3],D=o[4],b=[];for(let w=0,f=r.length;w<f;w++){const p=r[w],R=n[w],U=s[w],G=c[w],k=D[w];if(p===void 0)continue;p.updateMatrix&&p.updateMatrix();const J=I._createAnimationTracks(p,R,U,G,k);if(J)for(let m=0;m<J.length;m++)b.push(J[m])}const h=new d.AnimationClip(C,void 0,b);return Mg(h,Q),h})}createNodeMesh(A){const g=this.json,I=this,Q=g.nodes[A];return Q.mesh===void 0?null:I.getDependency("mesh",Q.mesh).then(function(C){const E=I._getNodeRef(I.meshCache,Q.mesh,C);return Q.weights!==void 0&&E.traverse(function(a){if(a.isMesh)for(let i=0,t=Q.weights.length;i<t;i++)a.morphTargetInfluences[i]=Q.weights[i]}),E})}loadNode(A){const g=this,I=this.json.nodes[A],Q=g._loadNodeShallow(A),C=[],E=I.children||[];for(let i=0,t=E.length;i<t;i++)C.push(g.getDependency("node",E[i]));const a=I.skin===void 0?Promise.resolve(null):g.getDependency("skin",I.skin);return Promise.all([Q,Promise.all(C),a]).then(function(i){const t=i[0],e=i[1],o=i[2];o!==null&&t.traverse(function(r){r.isSkinnedMesh&&r.bind(o,ue)});for(let r=0,n=e.length;r<n;r++)t.add(e[r]);return t})}_loadNodeShallow(A){const g=this.json,I=this.extensions,Q=this;if(this.nodeCache[A]!==void 0)return this.nodeCache[A];const C=g.nodes[A],E=C.name?Q.createUniqueName(C.name):"",a=[],i=Q._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(A)});return i&&a.push(i),C.camera!==void 0&&a.push(Q.getDependency("camera",C.camera).then(function(t){return Q._getNodeRef(Q.cameraCache,C.camera,t)})),Q._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(A)}).forEach(function(t){a.push(t)}),this.nodeCache[A]=Promise.all(a).then(function(t){let e;if(e=C.isBone===!0?new d.Bone:t.length>1?new d.Group:t.length===1?t[0]:new d.Object3D,e!==t[0])for(let o=0,r=t.length;o<r;o++)e.add(t[o]);if(C.name&&(e.userData.name=C.name,e.name=E),Mg(e,C),C.extensions&&BI(I,e,C),C.matrix!==void 0){const o=new d.Matrix4;o.fromArray(C.matrix),e.applyMatrix4(o)}else C.translation!==void 0&&e.position.fromArray(C.translation),C.rotation!==void 0&&e.quaternion.fromArray(C.rotation),C.scale!==void 0&&e.scale.fromArray(C.scale);if(Q.associations.has(e)){if(C.mesh!==void 0&&Q.meshCache.refs[C.mesh]>1){const o=Q.associations.get(e);Q.associations.set(e,{...o})}}else Q.associations.set(e,{});return Q.associations.get(e).nodes=A,e}),this.nodeCache[A]}loadScene(A){const g=this.extensions,I=this.json.scenes[A],Q=this,C=new d.Group;I.name&&(C.name=Q.createUniqueName(I.name)),Mg(C,I),I.extensions&&BI(g,C,I);const E=I.nodes||[],a=[];for(let i=0,t=E.length;i<t;i++)a.push(Q.getDependency("node",E[i]));return Promise.all(a).then(function(i){for(let t=0,e=i.length;t<e;t++)C.add(i[t]);return Q.associations=(t=>{const e=new Map;for(const[o,r]of Q.associations)(o instanceof d.Material||o instanceof d.Texture)&&e.set(o,r);return t.traverse(o=>{const r=Q.associations.get(o);r!=null&&e.set(o,r)}),e})(C),C})}_createAnimationTracks(A,g,I,Q,C){const E=[],a=A.name?A.name:A.uuid,i=[];let t;switch(Tg[C.path]===Tg.weights?A.traverse(function(r){r.morphTargetInfluences&&i.push(r.name?r.name:r.uuid)}):i.push(a),Tg[C.path]){case Tg.weights:t=d.NumberKeyframeTrack;break;case Tg.rotation:t=d.QuaternionKeyframeTrack;break;case Tg.translation:case Tg.scale:t=d.VectorKeyframeTrack;break;default:I.itemSize===1?t=d.NumberKeyframeTrack:t=d.VectorKeyframeTrack}const e=Q.interpolation!==void 0?ce[Q.interpolation]:d.InterpolateLinear,o=this._getArrayFromAccessor(I);for(let r=0,n=i.length;r<n;r++){const s=new t(i[r]+"."+Tg[C.path],g.array,o,e);Q.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(s),E.push(s)}return E}_getArrayFromAccessor(A){let g=A.array;if(A.normalized){const I=rQ(g.constructor),Q=new Float32Array(g.length);for(let C=0,E=g.length;C<E;C++)Q[C]=g[C]*I;g=Q}return g}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(g){return new(this instanceof d.QuaternionKeyframeTrack?se:AE)(this.times,this.values,this.getValueSize()/3,g)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function VQ(B,A,g){const I=A.attributes,Q=[];function C(E,a){return g.getDependency("accessor",E).then(function(i){B.setAttribute(a,i)})}for(const E in I){const a=nQ[E]||E.toLowerCase();a in B.attributes||Q.push(C(I[E],a))}if(A.indices!==void 0&&!B.index){const E=g.getDependency("accessor",A.indices).then(function(a){B.setIndex(a)});Q.push(E)}return d.ColorManagement.workingColorSpace!==d.LinearSRGBColorSpace&&"COLOR_0"in I&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${d.ColorManagement.workingColorSpace}" not supported.`),Mg(B,A),function(E,a,i){const t=a.attributes,e=new d.Box3;if(t.POSITION===void 0)return;{const n=i.json.accessors[t.POSITION],s=n.min,c=n.max;if(s===void 0||c===void 0)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(e.set(new d.Vector3(s[0],s[1],s[2]),new d.Vector3(c[0],c[1],c[2])),n.normalized){const D=rQ(MI[n.componentType]);e.min.multiplyScalar(D),e.max.multiplyScalar(D)}}const o=a.targets;if(o!==void 0){const n=new d.Vector3,s=new d.Vector3;for(let c=0,D=o.length;c<D;c++){const b=o[c];if(b.POSITION!==void 0){const h=i.json.accessors[b.POSITION],w=h.min,f=h.max;if(w!==void 0&&f!==void 0){if(s.setX(Math.max(Math.abs(w[0]),Math.abs(f[0]))),s.setY(Math.max(Math.abs(w[1]),Math.abs(f[1]))),s.setZ(Math.max(Math.abs(w[2]),Math.abs(f[2]))),h.normalized){const p=rQ(MI[h.componentType]);s.multiplyScalar(p)}n.max(s)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}e.expandByVector(n)}E.boundingBox=e;const r=new d.Sphere;e.getCenter(r.center),r.radius=e.min.distanceTo(e.max)/2,E.boundingSphere=r}(B,A,g),Promise.all(Q).then(function(){return A.targets!==void 0?function(E,a,i){let t=!1,e=!1,o=!1;for(let c=0,D=a.length;c<D;c++){const b=a[c];if(b.POSITION!==void 0&&(t=!0),b.NORMAL!==void 0&&(e=!0),b.COLOR_0!==void 0&&(o=!0),t&&e&&o)break}if(!t&&!e&&!o)return Promise.resolve(E);const r=[],n=[],s=[];for(let c=0,D=a.length;c<D;c++){const b=a[c];if(t){const h=b.POSITION!==void 0?i.getDependency("accessor",b.POSITION):E.attributes.position;r.push(h)}if(e){const h=b.NORMAL!==void 0?i.getDependency("accessor",b.NORMAL):E.attributes.normal;n.push(h)}if(o){const h=b.COLOR_0!==void 0?i.getDependency("accessor",b.COLOR_0):E.attributes.color;s.push(h)}}return Promise.all([Promise.all(r),Promise.all(n),Promise.all(s)]).then(function(c){const D=c[0],b=c[1],h=c[2];return t&&(E.morphAttributes.position=D),e&&(E.morphAttributes.normal=b),o&&(E.morphAttributes.color=h),E.morphTargetsRelative=!0,E})}(B,A.targets,g):B})}const TB=new WeakMap;class gE extends d.Loader{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,g,I,Q){const C=new d.FileLoader(this.manager);C.setPath(this.path),C.setResponseType("arraybuffer"),C.setRequestHeader(this.requestHeader),C.setWithCredentials(this.withCredentials),C.load(A,E=>{this.parse(E,g,Q)},I,Q)}parse(A,g,I=()=>{}){this.decodeDracoFile(A,g,null,null,d.SRGBColorSpace,I).catch(I)}decodeDracoFile(A,g,I,Q,C=d.LinearSRGBColorSpace,E=()=>{}){const a={attributeIDs:I||this.defaultAttributeIDs,attributeTypes:Q||this.defaultAttributeTypes,useUniqueIDs:!!I,vertexColorSpace:C};return this.decodeGeometry(A,a).then(g).catch(E)}decodeGeometry(A,g){const I=JSON.stringify(g);if(TB.has(A)){const i=TB.get(A);if(i.key===I)return i.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let Q;const C=this.workerNextTaskID++,E=A.byteLength,a=this._getWorker(C,E).then(i=>(Q=i,new Promise((t,e)=>{Q._callbacks[C]={resolve:t,reject:e},Q.postMessage({type:"decode",id:C,taskConfig:g,buffer:A},[A])}))).then(i=>this._createGeometry(i.geometry));return a.catch(()=>!0).then(()=>{Q&&C&&this._releaseTask(Q,C)}),TB.set(A,{key:I,promise:a}),a}_createGeometry(A){const g=new d.BufferGeometry;A.index&&g.setIndex(new d.BufferAttribute(A.index.array,1));for(let I=0;I<A.attributes.length;I++){const Q=A.attributes[I],C=Q.name,E=Q.array,a=Q.itemSize,i=new d.BufferAttribute(E,a);C==="color"&&(this._assignVertexColorSpace(i,Q.vertexColorSpace),i.normalized=!(E instanceof Float32Array)),g.setAttribute(C,i)}return g}_assignVertexColorSpace(A,g){if(g!==d.SRGBColorSpace)return;const I=new d.Color;for(let Q=0,C=A.count;Q<C;Q++)I.fromBufferAttribute(A,Q),d.ColorManagement.colorSpaceToWorking(I,d.SRGBColorSpace),A.setXYZ(Q,I.r,I.g,I.b)}_loadLibrary(A,g){const I=new d.FileLoader(this.manager);return I.setPath(this.decoderPath),I.setResponseType(g),I.setWithCredentials(this.withCredentials),new Promise((Q,C)=>{I.load(A,Q,void 0,C)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",g=[];return A?g.push(this._loadLibrary("draco_decoder.js","text")):(g.push(this._loadLibrary("draco_wasm_wrapper.js","text")),g.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(g).then(I=>{const Q=I[0];A||(this.decoderConfig.wasmBinary=I[1]);const C=fe.toString(),E=["/* draco decoder */",Q,"","/* worker */",C.substring(C.indexOf("{")+1,C.lastIndexOf("}"))].join(`
|
|
897
897
|
`);this.workerSourceURL=URL.createObjectURL(new Blob([E]))}),this.decoderPending}_getWorker(A,g){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const Q=new Worker(this.workerSourceURL);Q._callbacks={},Q._taskCosts={},Q._taskLoad=0,Q.postMessage({type:"init",decoderConfig:this.decoderConfig}),Q.onmessage=function(C){const E=C.data;switch(E.type){case"decode":Q._callbacks[E.id].resolve(E);break;case"error":Q._callbacks[E.id].reject(E);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+E.type+'"')}},this.workerPool.push(Q)}else this.workerPool.sort(function(Q,C){return Q._taskLoad>C._taskLoad?-1:1});const I=this.workerPool[this.workerPool.length-1];return I._taskCosts[A]=g,I._taskLoad+=g,I})}_releaseTask(A,g){A._taskLoad-=A._taskCosts[g],delete A._callbacks[g],delete A._taskCosts[g]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A<this.workerPool.length;++A)this.workerPool[A].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function fe(){let B,A;function g(I,Q,C,E,a,i){const t=i.num_components(),e=C.num_points()*t,o=e*a.BYTES_PER_ELEMENT,r=function(c,D){switch(D){case Float32Array:return c.DT_FLOAT32;case Int8Array:return c.DT_INT8;case Int16Array:return c.DT_INT16;case Int32Array:return c.DT_INT32;case Uint8Array:return c.DT_UINT8;case Uint16Array:return c.DT_UINT16;case Uint32Array:return c.DT_UINT32}}(I,a),n=I._malloc(o);Q.GetAttributeDataArrayForAllPoints(C,i,r,o,n);const s=new a(I.HEAPF32.buffer,n,e).slice();return I._free(n),{name:E,array:s,itemSize:t}}onmessage=function(I){const Q=I.data;switch(Q.type){case"init":B=Q.decoderConfig,A=new Promise(function(a){B.onModuleLoaded=function(i){a({draco:i})},DracoDecoderModule(B)});break;case"decode":const C=Q.buffer,E=Q.taskConfig;A.then(a=>{const i=a.draco,t=new i.Decoder;try{const e=function(r,n,s,c){const D=c.attributeIDs,b=c.attributeTypes;let h,w;const f=n.GetEncodedGeometryType(s);if(f===r.TRIANGULAR_MESH)h=new r.Mesh,w=n.DecodeArrayToMesh(s,s.byteLength,h);else{if(f!==r.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");h=new r.PointCloud,w=n.DecodeArrayToPointCloud(s,s.byteLength,h)}if(!w.ok()||h.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+w.error_msg());const p={index:null,attributes:[]};for(const R in D){const U=self[b[R]];let G,k;if(c.useUniqueIDs)k=D[R],G=n.GetAttributeByUniqueId(h,k);else{if(k=n.GetAttributeId(h,r[D[R]]),k===-1)continue;G=n.GetAttribute(h,k)}const J=g(r,n,h,R,U,G);R==="color"&&(J.vertexColorSpace=c.vertexColorSpace),p.attributes.push(J)}return f===r.TRIANGULAR_MESH&&(p.index=function(R,U,G){const k=G.num_faces(),J=3*k,m=4*J,O=R._malloc(m);U.GetTrianglesUInt32Array(G,m,O);const X=new Uint32Array(R.HEAPF32.buffer,O,J).slice();return R._free(O),{array:X,itemSize:1}}(r,n,h)),r.destroy(h),p}(i,t,new Int8Array(C),E),o=e.attributes.map(r=>r.array.buffer);e.index&&o.push(e.index.array.buffer),self.postMessage({type:"decode",id:Q.id,geometry:e},o)}catch(e){console.error(e),self.postMessage({type:"error",id:Q.id,error:e.message})}finally{i.destroy(t)}})}}}class Fe{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const g=this.workerCreator();g.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=g}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,g){const I=this.workersResolve[A];if(I&&I(g),this.queue.length){const{resolve:Q,msg:C,transfer:E}=this.queue.shift();this.workersResolve[A]=Q,this.workers[A].postMessage(C,E)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,g){return new Promise(I=>{const Q=this._getIdleWorker();Q!==-1?(this._initWorker(Q),this.workerStatus|=1<<Q,this.workersResolve[Q]=I,this.workers[Q].postMessage(A,g)):this.queue.push({resolve:I,msg:A,transfer:g})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const IE=9,BE=15,QE=16,CE=22,EE=37,aE=43,eE=76,iE=83,tE=97,oE=100,nE=103,rE=109,sE=122,cE=123,hE=131,DE=132,dE=133,bE=134,wE=137,uE=138,lE=139,fE=140,FE=141,yE=142,ME=145,GE=146,RE=148,pE=152,NE=157,kE=158,UE=165,mE=166,SE=1000054e3,LE=1000054001,JE=1000054004,YE=1000054005,MQ=1000066e3,xE=1000066004;class KI{constructor(A,g,I,Q){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+g,I),this._littleEndian=Q,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const g=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,g}_skip(A){return this._offset+=A,this}_scan(A,g=0){const I=this._offset;let Q=0;for(;this._dataView.getUint8(this._offset)!==g&&Q<A;)Q++,this._offset++;return Q<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+I,Q)}}const Bg=[171,75,84,88,32,50,48,187,13,10,26,10];function zQ(B){return new TextDecoder().decode(B)}let OB,Lg,sQ;const WB={env:{emscripten_notify_memory_growth:function(B){sQ=new Uint8Array(Lg.exports.memory.buffer)}}};class ye{init(){return OB||(OB=typeof fetch<"u"?fetch("data:application/wasm;base64,"+XQ).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,WB)).then(this._init):WebAssembly.instantiate(Buffer.from(XQ,"base64"),WB).then(this._init),OB)}_init(A){Lg=A.instance,WB.env.emscripten_notify_memory_growth(0)}decode(A,g=0){if(!Lg)throw new Error("ZSTDDecoder: Await .init() before decoding.");const I=A.byteLength,Q=Lg.exports.malloc(I);sQ.set(A,Q),g=g||Number(Lg.exports.ZSTD_findDecompressedSize(Q,I));const C=Lg.exports.malloc(g),E=Lg.exports.ZSTD_decompress(C,g,Q,I),a=sQ.slice(C,C+E);return Lg.exports.free(Q),Lg.exports.free(C),a}}const XQ="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";d.ColorManagement.spaces[d.SRGBColorSpace];const PB=new WeakMap;let VB,zB=0;class hg extends d.Loader{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new Fe,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return this.workerConfig={astcSupported:await A.hasFeatureAsync("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:await A.hasFeatureAsync("texture-compression-etc2"),etc2Supported:await A.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await A.hasFeatureAsync("texture-compression-bc"),bptcSupported:await A.hasFeatureAsync("texture-compression-bc"),pvrtcSupported:await A.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(A){return A.isWebGPURenderer===!0?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc2"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-bc"),bptcSupported:A.hasFeature("texture-compression-bc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const A=new d.FileLoader(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const g=A.loadAsync("basis_transcoder.js"),I=new d.FileLoader(this.manager);I.setPath(this.transcoderPath),I.setResponseType("arraybuffer"),I.setWithCredentials(this.withCredentials);const Q=I.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([g,Q]).then(([C,E])=>{const a=hg.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(hg.EngineFormat),"let _EngineType = "+JSON.stringify(hg.EngineType),"let _TranscoderFormat = "+JSON.stringify(hg.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(hg.BasisFormat),"/* basis_transcoder.js */",C,"/* worker */",a.substring(a.indexOf("{")+1,a.lastIndexOf("}"))].join(`
|
|
898
|
-
`);this.workerSourceURL=URL.createObjectURL(new Blob([i])),this.transcoderBinary=E,this.workerPool.setWorkerCreator(()=>{const t=new Worker(this.workerSourceURL),e=this.transcoderBinary.slice(0);return t.postMessage({type:"init",config:this.workerConfig,transcoderBinary:e},[e]),t})}),zB>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),zB++}return this.transcoderPending}load(A,g,I,Q){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const C=new d.FileLoader(this.manager);C.setPath(this.path),C.setCrossOrigin(this.crossOrigin),C.setWithCredentials(this.withCredentials),C.setResponseType("arraybuffer"),C.load(A,E=>{this.parse(E,g,Q)},I,Q)}parse(A,g,I){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(PB.has(A))return PB.get(A).promise.then(g).catch(I);this._createTexture(A).then(Q=>g?g(Q):null).catch(I)}_createTextureFrom(A,g){const{type:I,error:Q,data:{faces:C,width:E,height:a,format:i,type:t,dfdFlags:e}}=A;if(I==="error")return Promise.reject(Q);let o;if(g.faceCount===6)o=new d.CompressedCubeTexture(C,i,t);else{const r=C[0].mipmaps;o=g.layerCount>1?new d.CompressedArrayTexture(r,E,a,g.layerCount,i,t):new d.CompressedTexture(r,E,a,i,t)}return o.minFilter=C[0].mipmaps.length===1?d.LinearFilter:d.LinearMipmapLinearFilter,o.magFilter=d.LinearFilter,o.generateMipmaps=!1,o.needsUpdate=!0,o.colorSpace=ZQ(g),o.premultiplyAlpha=!!(1&e),o}async _createTexture(A,g={}){const I=function(a){const i=new Uint8Array(a.buffer,a.byteOffset,Bg.length);if(i[0]!==Bg[0]||i[1]!==Bg[1]||i[2]!==Bg[2]||i[3]!==Bg[3]||i[4]!==Bg[4]||i[5]!==Bg[5]||i[6]!==Bg[6]||i[7]!==Bg[7]||i[8]!==Bg[8]||i[9]!==Bg[9]||i[10]!==Bg[10]||i[11]!==Bg[11])throw new Error("Missing KTX 2.0 identifier.");const t={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},e=17*Uint32Array.BYTES_PER_ELEMENT,o=new KI(a,Bg.length,e,!0);t.vkFormat=o._nextUint32(),t.typeSize=o._nextUint32(),t.pixelWidth=o._nextUint32(),t.pixelHeight=o._nextUint32(),t.pixelDepth=o._nextUint32(),t.layerCount=o._nextUint32(),t.faceCount=o._nextUint32(),t.levelCount=o._nextUint32(),t.supercompressionScheme=o._nextUint32();const r=o._nextUint32(),n=o._nextUint32(),s=o._nextUint32(),c=o._nextUint32(),D=o._nextUint64(),b=o._nextUint64(),h=3*Math.max(t.levelCount,1)*8,w=new KI(a,Bg.length+e,h,!0);for(let tA=0,rA=Math.max(t.levelCount,1);tA<rA;tA++)t.levels.push({levelData:new Uint8Array(a.buffer,a.byteOffset+w._nextUint64(),w._nextUint64()),uncompressedByteLength:w._nextUint64()});const f=new KI(a,r,n,!0);f._skip(4);const p=f._nextUint16(),R=f._nextUint16(),U=f._nextUint16(),G=f._nextUint16(),k={vendorId:p,descriptorType:R,versionNumber:U,colorModel:f._nextUint8(),colorPrimaries:f._nextUint8(),transferFunction:f._nextUint8(),flags:f._nextUint8(),texelBlockDimension:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],bytesPlane:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],samples:[]},J=(G/4-6)/4;for(let tA=0;tA<J;tA++){const rA={bitOffset:f._nextUint16(),bitLength:f._nextUint8(),channelType:f._nextUint8(),samplePosition:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&rA.channelType?(rA.sampleLower=f._nextInt32(),rA.sampleUpper=f._nextInt32()):(rA.sampleLower=f._nextUint32(),rA.sampleUpper=f._nextUint32()),k.samples[tA]=rA}t.dataFormatDescriptor.length=0,t.dataFormatDescriptor.push(k);const m=new KI(a,s,c,!0);for(;m._offset<c;){const tA=m._nextUint32(),rA=m._scan(tA),LA=zQ(rA);if(t.keyValue[LA]=m._nextUint8Array(tA-rA.byteLength-1),LA.match(/^ktx/i)){const KA=zQ(t.keyValue[LA]);t.keyValue[LA]=KA.substring(0,KA.lastIndexOf("\0"))}m._skip(tA%4?4-tA%4:0)}if(b<=0)return t;const O=new KI(a,D,b,!0),X=O._nextUint16(),IA=O._nextUint16(),AA=O._nextUint32(),Z=O._nextUint32(),aA=O._nextUint32(),uA=O._nextUint32(),nA=[];for(let tA=0,rA=Math.max(t.levelCount,1);tA<rA;tA++)nA.push({imageFlags:O._nextUint32(),rgbSliceByteOffset:O._nextUint32(),rgbSliceByteLength:O._nextUint32(),alphaSliceByteOffset:O._nextUint32(),alphaSliceByteLength:O._nextUint32()});const MA=D+O._offset,lA=MA+AA,eA=lA+Z,pA=eA+aA,hA=new Uint8Array(a.buffer,a.byteOffset+MA,AA),bA=new Uint8Array(a.buffer,a.byteOffset+lA,Z),fA=new Uint8Array(a.buffer,a.byteOffset+eA,aA),GA=new Uint8Array(a.buffer,a.byteOffset+pA,uA);return t.globalData={endpointCount:X,selectorCount:IA,imageDescs:nA,endpointsData:hA,selectorsData:bA,tablesData:fA,extendedData:GA},t}(new Uint8Array(A)),Q=I.vkFormat===MQ&&I.dataFormatDescriptor[0].colorModel===167;if(!(I.vkFormat===0||Q&&!this.workerConfig.astcHDRSupported))return async function(a){const{vkFormat:i}=a;if(XB[i]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+i);DI[i]===void 0&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+i);let t;a.supercompressionScheme===2&&(VB||(VB=new Promise(async n=>{const s=new ye;await s.init(),n(s)})),t=await VB);const e=[];for(let n=0;n<a.levels.length;n++){const s=Math.max(1,a.pixelWidth>>n),c=Math.max(1,a.pixelHeight>>n),D=a.pixelDepth?Math.max(1,a.pixelDepth>>n):0,b=a.levels[n];let h,w;if(a.supercompressionScheme===0)h=b.levelData;else{if(a.supercompressionScheme!==2)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");h=t.decode(b.levelData,b.uncompressedByteLength)}w=DI[i]===d.FloatType?new Float32Array(h.buffer,h.byteOffset,h.byteLength/Float32Array.BYTES_PER_ELEMENT):DI[i]===d.HalfFloatType?new Uint16Array(h.buffer,h.byteOffset,h.byteLength/Uint16Array.BYTES_PER_ELEMENT):DI[i]===d.UnsignedInt5999Type||DI[i]===d.UnsignedInt101111Type?new Uint32Array(h.buffer,h.byteOffset,h.byteLength/Uint32Array.BYTES_PER_ELEMENT):h,e.push({data:w,width:s,height:c,depth:D})}const o=a.levelCount===0||e.length>1;let r;if(Me.has(XB[i]))r=a.pixelDepth===0?new d.DataTexture(e[0].data,a.pixelWidth,a.pixelHeight):new d.Data3DTexture(e[0].data,a.pixelWidth,a.pixelHeight,a.pixelDepth),r.minFilter=o?d.NearestMipmapNearestFilter:d.NearestFilter,r.magFilter=d.NearestFilter,r.generateMipmaps=a.levelCount===0;else{if(a.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");r=new d.CompressedTexture(e,a.pixelWidth,a.pixelHeight),r.minFilter=o?d.LinearMipmapLinearFilter:d.LinearFilter,r.magFilter=d.LinearFilter}return r.mipmaps=e,r.type=DI[i],r.format=XB[i],r.colorSpace=ZQ(a),r.needsUpdate=!0,Promise.resolve(r)}(I);const C=g,E=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:C},[A])).then(a=>this._createTextureFrom(a.data,I));return PB.set(A,{promise:E}),E}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),zB--}}hg.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},hg.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},hg.EngineFormat={RGBAFormat:d.RGBAFormat,RGBA_ASTC_4x4_Format:d.RGBA_ASTC_4x4_Format,RGB_BPTC_UNSIGNED_Format:d.RGB_BPTC_UNSIGNED_Format,RGBA_BPTC_Format:d.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:d.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:d.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:d.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:d.RGB_ETC1_Format,RGB_ETC2_Format:d.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:d.RGB_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format:d.RGBA_S3TC_DXT1_Format},hg.EngineType={UnsignedByteType:d.UnsignedByteType,HalfFloatType:d.HalfFloatType,FloatType:d.FloatType},hg.BasisWorker=function(){let B,A,g;const I=_EngineFormat,Q=_EngineType,C=_TranscoderFormat,E=_BasisFormat;self.addEventListener("message",function(o){const r=o.data;switch(r.type){case"init":B=r.config,n=r.transcoderBinary,A=new Promise(s=>{g={wasmBinary:n,onRuntimeInitialized:s},BASIS(g)}).then(()=>{g.initializeBasis(),g.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":A.then(()=>{try{const{faces:s,buffers:c,width:D,height:b,hasAlpha:h,format:w,type:f,dfdFlags:p}=function(R){const U=new g.KTX2File(new Uint8Array(R));function G(){U.close(),U.delete()}if(!U.isValid())throw G(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let k;if(U.isUASTC())k=E.UASTC;else if(U.isETC1S())k=E.ETC1S;else{if(!U.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");k=E.UASTC_HDR}const J=U.getWidth(),m=U.getHeight(),O=U.getLayers()||1,X=U.getLevels(),IA=U.getFaces(),AA=U.getHasAlpha(),Z=U.getDFDFlags(),{transcoderFormat:aA,engineFormat:uA,engineType:nA}=function(eA,pA,hA,bA){const fA=i[eA];for(let GA=0;GA<fA.length;GA++){const tA=fA[GA];if(!(tA.if&&!B[tA.if])&&tA.basisFormat.includes(eA)&&!(bA&&tA.transcoderFormat.length<2)&&!(tA.needsPowerOfTwo&&(!t(pA)||!t(hA))))return{transcoderFormat:tA.transcoderFormat[bA?1:0],engineFormat:tA.engineFormat[bA?1:0],engineType:tA.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(k,J,m,AA);if(!J||!m||!X)throw G(),new Error("THREE.KTX2Loader: Invalid texture");if(!U.startTranscoding())throw G(),new Error("THREE.KTX2Loader: .startTranscoding failed");const MA=[],lA=[];for(let eA=0;eA<IA;eA++){const pA=[];for(let hA=0;hA<X;hA++){const bA=[];let fA,GA;for(let rA=0;rA<O;rA++){const LA=U.getImageLevelInfo(hA,rA,eA);eA!==0||hA!==0||rA!==0||LA.origWidth%4==0&&LA.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),X>1?(fA=LA.origWidth,GA=LA.origHeight):(fA=LA.width,GA=LA.height);let KA=new Uint8Array(U.getImageTranscodedSizeInBytes(hA,rA,0,aA));const ig=U.transcodeImage(KA,hA,rA,eA,aA,0,-1,-1);if(nA===Q.HalfFloatType&&(KA=new Uint16Array(KA.buffer,KA.byteOffset,KA.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!ig)throw G(),new Error("THREE.KTX2Loader: .transcodeImage failed.");bA.push(KA)}const tA=e(bA);pA.push({data:tA,width:fA,height:GA}),lA.push(tA.buffer)}MA.push({mipmaps:pA,width:J,height:m,format:uA,type:nA})}return G(),{faces:MA,buffers:lA,width:J,height:m,hasAlpha:AA,dfdFlags:Z,format:uA,type:nA}}(r.buffer);self.postMessage({type:"transcode",id:r.id,data:{faces:s,width:D,height:b,hasAlpha:h,format:w,type:f,dfdFlags:p}},c)}catch(s){console.error(s),self.postMessage({type:"error",id:r.id,error:s.message})}})}var n});const a=[{if:"astcSupported",basisFormat:[E.UASTC],transcoderFormat:[C.ASTC_4x4,C.ASTC_4x4],engineFormat:[I.RGBA_ASTC_4x4_Format,I.RGBA_ASTC_4x4_Format],engineType:[Q.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.BC7_M5,C.BC7_M5],engineFormat:[I.RGBA_BPTC_Format,I.RGBA_BPTC_Format],engineType:[Q.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.BC1,C.BC3],engineFormat:[I.RGBA_S3TC_DXT1_Format,I.RGBA_S3TC_DXT5_Format],engineType:[Q.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.ETC1,C.ETC2],engineFormat:[I.RGB_ETC2_Format,I.RGBA_ETC2_EAC_Format],engineType:[Q.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.ETC1],engineFormat:[I.RGB_ETC1_Format],engineType:[Q.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.PVRTC1_4_RGB,C.PVRTC1_4_RGBA],engineFormat:[I.RGB_PVRTC_4BPPV1_Format,I.RGBA_PVRTC_4BPPV1_Format],engineType:[Q.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[E.UASTC_HDR],transcoderFormat:[C.BC6H],engineFormat:[I.RGB_BPTC_UNSIGNED_Format],engineType:[Q.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.RGBA32,C.RGBA32],engineFormat:[I.RGBAFormat,I.RGBAFormat],engineType:[Q.UnsignedByteType,Q.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[E.UASTC_HDR],transcoderFormat:[C.RGBA_HALF],engineFormat:[I.RGBAFormat],engineType:[Q.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],i={[E.ETC1S]:a.filter(o=>o.basisFormat.includes(E.ETC1S)).sort((o,r)=>o.priorityUASTC-r.priorityUASTC),[E.UASTC]:a.filter(o=>o.basisFormat.includes(E.UASTC)).sort((o,r)=>o.priorityUASTC-r.priorityUASTC),[E.UASTC_HDR]:a.filter(o=>o.basisFormat.includes(E.UASTC_HDR)).sort((o,r)=>o.priorityHDR-r.priorityHDR)};function t(o){return o<=2||!(o&o-1)&&o!==0}function e(o){if(o.length===1)return o[0];let r=0;for(let c=0;c<o.length;c++)r+=o[c].byteLength;const n=new Uint8Array(r);let s=0;for(let c=0;c<o.length;c++){const D=o[c];n.set(D,s),s+=D.byteLength}return n}};const Me=new Set([d.RGBAFormat,d.RGBFormat,d.RGFormat,d.RedFormat]),XB={[rE]:d.RGBAFormat,[nE]:d.RGFormat,[oE]:d.RedFormat,[tE]:d.RGBAFormat,[iE]:d.RGFormat,[eE]:d.RedFormat,[aE]:d.RGBAFormat,[EE]:d.RGBAFormat,[CE]:d.RGFormat,[QE]:d.RGFormat,[BE]:d.RedFormat,[IE]:d.RedFormat,[cE]:d.RGBFormat,[sE]:d.RGBFormat,[pE]:d.RGBA_ETC2_EAC_Format,[RE]:d.RGB_ETC2_Format,[MQ]:d.RGBA_ASTC_4x4_Format,[kE]:d.RGBA_ASTC_4x4_Format,[NE]:d.RGBA_ASTC_4x4_Format,[xE]:d.RGBA_ASTC_6x6_Format,[mE]:d.RGBA_ASTC_6x6_Format,[UE]:d.RGBA_ASTC_6x6_Format,[bE]:d.RGBA_S3TC_DXT1_Format,[dE]:d.RGBA_S3TC_DXT1_Format,[DE]:d.RGB_S3TC_DXT1_Format,[hE]:d.RGB_S3TC_DXT1_Format,[uE]:d.RGBA_S3TC_DXT3_Format,[wE]:d.RGBA_S3TC_DXT3_Format,[fE]:d.SIGNED_RED_RGTC1_Format,[lE]:d.RED_RGTC1_Format,[yE]:d.SIGNED_RED_GREEN_RGTC2_Format,[FE]:d.RED_GREEN_RGTC2_Format,[GE]:d.RGBA_BPTC_Format,[ME]:d.RGBA_BPTC_Format,[YE]:d.RGBA_PVRTC_4BPPV1_Format,[LE]:d.RGBA_PVRTC_4BPPV1_Format,[JE]:d.RGBA_PVRTC_2BPPV1_Format,[SE]:d.RGBA_PVRTC_2BPPV1_Format},DI={[rE]:d.FloatType,[nE]:d.FloatType,[oE]:d.FloatType,[tE]:d.HalfFloatType,[iE]:d.HalfFloatType,[eE]:d.HalfFloatType,[aE]:d.UnsignedByteType,[EE]:d.UnsignedByteType,[CE]:d.UnsignedByteType,[QE]:d.UnsignedByteType,[BE]:d.UnsignedByteType,[IE]:d.UnsignedByteType,[cE]:d.UnsignedInt5999Type,[sE]:d.UnsignedInt101111Type,[pE]:d.UnsignedByteType,[RE]:d.UnsignedByteType,[MQ]:d.HalfFloatType,[kE]:d.UnsignedByteType,[NE]:d.UnsignedByteType,[xE]:d.HalfFloatType,[mE]:d.UnsignedByteType,[UE]:d.UnsignedByteType,[bE]:d.UnsignedByteType,[dE]:d.UnsignedByteType,[DE]:d.UnsignedByteType,[hE]:d.UnsignedByteType,[uE]:d.UnsignedByteType,[wE]:d.UnsignedByteType,[fE]:d.UnsignedByteType,[lE]:d.UnsignedByteType,[yE]:d.UnsignedByteType,[FE]:d.UnsignedByteType,[GE]:d.UnsignedByteType,[ME]:d.UnsignedByteType,[YE]:d.UnsignedByteType,[LE]:d.UnsignedByteType,[JE]:d.UnsignedByteType,[SE]:d.UnsignedByteType};function ZQ(B){const A=B.dataFormatDescriptor[0];return A.colorPrimaries===1?A.transferFunction===2?d.SRGBColorSpace:d.LinearSRGBColorSpace:A.colorPrimaries===10?A.transferFunction===2?"display-p3":"display-p3-linear":(A.colorPrimaries===0||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),d.NoColorSpace)}async function _Q(B){const A=B.split("?")[0].split(".").pop(),g=await fetch(B);if(!g.ok)throw new Error(`Failed to fetch ${B}: ${g.statusText}`);if(A==="json"){const I=await g.json();return handleJSONSubtree(I,$Q(B))}if(A==="subtree")return async function(I,Q){const C=new DataView(I),E=C.getBigUint64(8,!0),a=C.getBigUint64(16,!0),i=24,t=i+Number(E),e=t+(8-t%8)%8,o=e+Number(a),r=I.slice(i,t),n=new TextDecoder().decode(r).trim(),s=JSON.parse(n);if(!s.buffers)throw new Error("subtree has no buffers");const c=s.buffers.map(async b=>{if(b.uri){const h=new URL(b.uri,Q).href,w=await fetch(h);if(!w.ok)throw new Error(`Failed to fetch binary file ${h}: ${w.statusText}`);return new Uint8Array(await w.arrayBuffer())}return new Uint8Array(I.slice(e,o))}),D=await Promise.all(c);return function(b,h){function w(G,k){if(!G)throw new Error("incomplete json subtree");if(G.constant){if(G.constant==0)return!1;if(G.constant==1)return!0}if(G.bitstream==null)throw new Error('json subtree "tileAvailability" does not specify a bitstream');if(!b.bufferViews||!b.bufferViews[G.bitstream])throw new Error('json subtree "bufferViews" does not specify a bitstream');const J=b.bufferViews[G.bitstream];return f(h[J.buffer],J.byteOffset,k)}function f(G,k,J){const m=J%8;return G[k+Math.floor(J/8)]>>m&!0}function p(G){let k=0;return k=G.z==null?ZB(G.x,G.y,G.level):$B(G.x,G.y,G.z,G.level),w(b.tileAvailability,k)}function R(G){let k=0;k=G.z==null?ZB(G.x,G.y,G.level):$B(G.x,G.y,G.z,G.level);const J=[];return b.contentAvailability.forEach(m=>{J.push(w(m,k))}),J}function U(G){let k=0;return k=G.z==null?ZB(G.x,G.y):$B(G.x,G.y,G.z),w(b.childSubtreeAvailability,k)}return{isTileAvailable:p,isContentAvailable:R,isChildSubtreeAvailable:U}}(s,D)}(await g.arrayBuffer(),$Q(B));throw new Error(`Unsupported file extension: ${A}`)}function $Q(B){const A=B.split("?")[0];return A.substring(0,A.lastIndexOf("/")+1)}function AC(B){return B=1431655765&((B=858993459&((B=252645135&((B=16711935&((B&=65535)^B<<8))^B<<4))^B<<2))^B<<1)}function ZB(B,A,g){let I=0;return g&&(I=(Math.pow(4,g)-1)/3),I+(AC(B)|AC(A)<<1)}function _B(B){return B=153391689&((B=51130563&((B=50393103&((B=4278190335&((B&=1023)^B<<16))^B<<8))^B<<4))^B<<2)}function $B(B,A,g,I){let Q=0;return I&&(Q=(Math.pow(8,I)-1)/7),Q+(_B(B)|_B(A)<<1|_B(g)<<2)}const jI=new Map;async function GQ(B,A){if(!B.root||!B.root.implicitTiling)return B;if(!B.root.content&&!B.root.contents)throw new Error("implicit tiling requires a Template URI");let g=!0;B.root.implicitTiling.subdivisionScheme&&(g=B.root.implicitTiling.subdivisionScheme.toUpperCase()==="QUADTREE");let I="";B.root.implicitTiling.subtrees&&(B.root.implicitTiling.subtrees.uri?I=B.root.implicitTiling.subtrees.uri:B.root.implicitTiling.subtrees.url&&(I=B.root.implicitTiling.subtrees.url));let Q=[];B.root.content?B.root.content.uri?Q.push(B.root.content.uri):B.root.content.url&&Q.push(B.root.content.url):B.root.contents&&B.root.contents.forEach(n=>{n.uri?Q.push(n.uri):n.url&&Q.push(n.url)});const C=function(n){const s=n.split("?")[0];return s.substring(0,s.lastIndexOf("/")+1)}(A);let E;g&&(E=I.replace("{level}",0).replace("{x}",0).replace("{y}",0)),g||(E=I.replace("{level}",0).replace("{x}",0).replace("{y}",0).replace("{z}",0));const a={level:0,x:0,y:0},i={level:0,x:0,y:0};g||(a.z=0,i.z=0),jI.set(E,await _Q(C+E));const t=jI.get(E),e=[];t.isContentAvailable(i)&&Q.forEach(n=>{let s;g&&(s=n.replace("{level}",a.level).replace("{x}",a.x).replace("{y}",a.y)),g||(s=n.replace("{level}",a.level).replace("{x}",a.x).replace("{y}",a.y).replace("{z}",a.z)),e.push({uri:s})});const o={geometricError:B.root.geometricError,boundingVolume:B.root.boundingVolume,refine:B.root.refine,globalAddress:a,localAddress:i,subtree:t,contents:e,getChildren:async()=>r(o)};return{root:o};async function r(n){const s=[];if(n.localAddress.level==B.root.implicitTiling.availableLevels-1)return s;if((n.localAddress.level+1)%B.root.implicitTiling.subtreeLevels==0){const c=IB(n.localAddress),D=IB(n.globalAddress),b=gC(g,B.root.boundingVolume,D);for(let h=0;h<c.length;h++){const w=c[h],f=D[h];n.subtree.isChildSubtreeAvailable(w)&&(g&&I.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y),g||I.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),jI.has(E)||jI.set(E,await _Q(C+E));const p=jI.get(E),R={level:0,x:0,y:0};g||(R.z=0);const U=[];p.isContentAvailable(R)&&Q.forEach(k=>{let J;g&&(J=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y)),g||(J=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),U.push({uri:J})});const G={geometricError:n.geometricError/2,boundingVolume:b[h],refine:B.root.refine,globalAddress:f,localAddress:R,subtree:p,contents:U,getChildren:async()=>r(G)};s.push(G)}}else{const c=IB(n.localAddress),D=IB(n.globalAddress),b=gC(g,B.root.boundingVolume,D);for(let h=0;h<c.length;h++){const w=c[h],f=D[h];if(!n.subtree.isTileAvailable(w))continue;const p=[],R=n.subtree.isContentAvailable(w);for(let G=0;G<Q.length;G++){if(!R[G])continue;const k=Q[G];let J;g&&(J=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y)),g||(J=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),p.push({uri:J})}const U={geometricError:n.geometricError/2,boundingVolume:b[h],refine:B.root.refine,globalAddress:f,localAddress:w,subtree:n.subtree,contents:p,getChildren:async()=>r(U)};s.push(U)}}return s.length>0?s:void 0}}function IB(B){const{level:A,x:g,y:I,z:Q}=B,C=A+1;let E=[];return E=Q===void 0?[{level:C,x:2*g,y:2*I},{level:C,x:2*g+1,y:2*I},{level:C,x:2*g,y:2*I+1},{level:C,x:2*g+1,y:2*I+1}]:[{level:C,x:2*g,y:2*I,z:2*Q},{level:C,x:2*g+1,y:2*I,z:2*Q},{level:C,x:2*g,y:2*I+1,z:2*Q},{level:C,x:2*g+1,y:2*I+1,z:2*Q},{level:C,x:2*g,y:2*I,z:2*Q+1},{level:C,x:2*g+1,y:2*I,z:2*Q+1},{level:C,x:2*g,y:2*I+1,z:2*Q+1},{level:C,x:2*g+1,y:2*I+1,z:2*Q+1}],E}function gC(B,A,g){const I=[];for(let Q=0;Q<g.length;Q++)I.push(Ge(B,A,g[Q]));return I}function Ge(B,A,g){if(A.region)return function(I,Q,C){const[E,a,i,t,e,o]=Q,r=(i-E)/2**C.level,n=(t-a)/2**C.level,s=I?0:(o-e)/2**C.level,c=E+r*C.x,D=a+n*C.y,b=c+r,h=D+n,w=I?e:e+s*C.z,f=I?o:w+s;return{region:[c,D,b,h,w,f]}}(B,A.region,g);if(A.box)return function(I,Q,C){const E=Q.slice(0,3),a=[Q.slice(3,6),Q.slice(6,9),Q.slice(9,12)],i=1/Math.pow(2,C.level),t=[i,i,I?1:i],e=a.map((n,s)=>n.map(c=>c*t[s])),o=[E[0]-a[0][0]-a[1][0]-a[2][0],E[1]-a[0][1]-a[1][1]-a[2][1],E[2]-a[0][2]-a[1][2]-a[2][2]];return{box:[o[0]+(2*C.x+1)*(e[0][0]+e[1][0]+e[2][0]),o[1]+(2*C.y+1)*(e[0][1]+e[1][1]+e[2][1]),I?E[2]:o[2]+(2*C.z+1)*(e[0][2]+e[1][2]+e[2][2])].concat(...e)}}(B,A.box,g);throw new Error("Unsupported bounding volume type")}(function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};function g(i){if(!i)throw new Error("Assertion failed")}function I(i){return new Uint8Array(i.buffer,i.byteOffset,i.byteLength)}function Q(i,t,e,o,r,n,s){var c=B.exports.sbrk,D=c(t),b=c(o*r),h=new Uint8Array(B.exports.memory.buffer);h.set(I(e),b);var w=i(D,t,b,o,r,n,s),f=new Uint8Array(w);return f.set(h.subarray(D,D+w)),c(D-c(0)),f}function C(i){for(var t=0,e=0;e<i.length;++e)var o=i[e];return t}function E(i,t){if(g(t==2||t==4),t==4)return new Uint32Array(i.buffer,i.byteOffset,i.byteLength/4);var e=new Uint16Array(i.buffer,i.byteOffset,i.byteLength/2);return new Uint32Array(e)}function a(i,t,e,o,r,n,s){var c=B.exports.sbrk,D=c(e*o),b=c(e*n),h=new Uint8Array(B.exports.memory.buffer);h.set(I(t),b),i(D,e,o,r,b,s);var w=new Uint8Array(e*o);return w.set(h.subarray(D,D+e*o)),c(D-c(0)),w}WebAssembly.instantiate(function(i){for(var t=new Uint8Array(i.length),e=0;e<i.length;++e){var o=i.charCodeAt(e);t[e]=o>96?o-97:o>64?o-39:o+4}var r=0;for(e=0;e<i.length;++e)t[r++]=t[e]<60?A[t[e]]:64*(t[e]-60)+t[++e];return t.buffer.slice(0,r)}("b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiE8AdilveoveovrrwrrrDDoDrbqqbelve9Weiiviebeoweuec;G:Qdkr:PlCo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxY9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVJ9V29VVbmE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9WbHa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbOK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbAl79IV9RbXDwebcekdKYq;i28Adbk:Bhdhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;C:kjjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:xjjjb8AdnaiTmbarc;adfadalz:wjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:xjjjb8Aarc;abfarc;adfalz:wjjjb8AarcUf9cb83ibarc8Wf9cb83ibarcyf9cb83ibarcaf9cb83ibarcKf9cb83ibarczf9cb83ibar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzarc;qofcKfhHarc;qofczfhOcbhAincdhCcbhodnavci6mbaH9cb83ibaO9cb83ibar9cb83i;yoar9cb83i;qoadaAfgoybbhXcbhQincbhwcbhLdninaoalfhKaoybbgYaX7aLVhLawcP0meaKhoaYhXawcefgwaQfai6mbkkcbhXarc;qofhwincwh8AcwhEdnaLaX93gocFeGg3cs0mbclhEa3ci0mba3cb9hcethEkdnaocw4cFeGg3cs0mbclh8Aa3ci0mba3cb9hceth8Aka8AaEfh3awydbh5cwh8AcwhEdnaocz4cFeGg8Ecs0mbclhEa8Eci0mba8Ecb9hcethEka3a5fh3dnaocFFFFb0mbclh8AaocFFF8F0mbaocFFFr0ceth8Akawa3aEfa8AfBdbawclfhwaXcefgXcw9hmbkaKhoaYhXaQczfgQai6mbkcbhocehwazhLinawaoaLydbarc;qofaocdtfydb6EhoaLclfhLawcefgwcw9hmbkcihCkcbh3arc;qlfcbcjdz:xjjjb8Aarc;alfcwfcbBdbar9cb83i;alaoclth8Fadhaaqhhakh5inarc;qlfadcba3cufgoaoa30Eal2falz:wjjjb8Aaiahaiah6Ehgdnaqaia39Ra3aqfai6EgYcsfc9WGgoaY9nmbarc;qofaYfcbaoaY9Rz:xjjjb8Akada3al2fh8Jcbh8Kina8Ka8FVcl4hQarc;alfa8Kcdtfh8LaAh8Mcbh8Nina8NaAfhwdndndndndndna8KPldebidkasa8Mc98GgLfhoa5aLfh8Aarc;qlfawc98GgLfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkaYTmla8Ncith8Ea8JaLfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aQ93a8E486bba8Aalfh8AaEalfhEaLhXaKcefgKaY9hmbxlkkaYTmia8Mc9:Ghoa8NcitcwGhEarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhLarc;qofhwaghXinawa5aofRbbcwtaaaofRbbVg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbaoalfhoawcefhwa8AhLa3aXcufgX9hmbxikkaYTmda8Jawfhoarc;qlfawfRbbhLarc;qofhwaghXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLa3aXcufgX9hmbxdkkaYTmeka8LydbhEcbhKarc;qofhoincdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egwa8Aawa8A6Egwczawcz6EaEfhEaoczfhoaKczfgKaY6mbka8LaEBdbka8Mcefh8Ma8Ncefg8Ncl9hmbka8Kcefg8KaC9hmbkaaamfhaahaxfhha5amfh5a3axfg3ai6mbkcbhocehwaPhLinawaoaLydbarc;alfaocdtfydb6EhoaLclfhLawcefgXhwaCaX9hmbkaraAcd4fa8FcdVaoaocdSE86bbaAclfgAal6mbkkabaefh8Kabcefhoalcd4gecbaDEhkadcefhOarc;abfceVhHcbhmdndninaiam9nmearc;qofcbcjdz:xjjjb8Aa8Kao9Rak6mdadamal2gwfhxcbh8JaOawfhzaocbakz:xjjjbghakfh5aqaiam9Ramaqfai6Egscsfgocl4cifcd4hCaoc9WGg8LThPindndndndndndndndndndnaDTmbara8Jcd4fRbbgLciGPlbedlbkasTmdaxa8Jfhoarc;abfa8JfRbbhLarc;qofhwashXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLaXcufgXmbxikkasTmia8JcitcwGhEarc;abfa8JceVfRbbcwtarc;abfa8Jc9:GgofRbbVhLaxaofhoarc;qofhwashXinawao8Vbbg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbawcefhwaoalfhoa8AhLaXcufgXmbxdkkaHa8Jc98GgEfhoazaEfh8Aarc;abfaEfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkasTmbaLcl4hYa8JcitcKGh3axaEfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aY93a3486bba8Aalfh8AaEalfhEaLhXaKcefgKas9hmbkkaDmbcbhoxlka8LTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8L9pmdxbkkdnavmbcehoxikcbhEaChKaChYinarc;qofaEfgocwf8Pibhyao8Pibh8PcdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egoa8Aaoa8A6Egoczaocz6EaYfhYaocucbaya8P:e9cb9sEgwaoaw6EaKfhKaEczfgEa8L9pmdxbkkaha8Jcd4fgoaoRbbcda8JcetcoGtV86bbxikdnaKas6mbaYas6mbaha8Jcd4fgoaoRbbcia8JcetcoGtV86bba8Ka59Ras6mra5arc;qofasz:wjjjbasfh5xikaKaY9phokaha8Jcd4fgwawRbbaoa8JcetcoGtV86bbka8Ka59RaC6mla5cbaCz:xjjjbgAaCfhYdndna8LmbaPhoxekdna8KaY9RcK9pmbaPhoxekaocdtc:q1jjbfcj1jjbaDEg5ydxggcetc;:FFFeGh8Fcuh3cuagtcu7cFeGhacbh8Marc;qofhLinarc;qofa8MfhQczhEdndndnagPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhExekcbhoa8FhEinaEaaaLaofRbb9nfhEaocefgocz9hmbkkcih8Ecbh8Ainczhwdndndna5a8AcdtfydbgKPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhwxekaKcetc;:FFFeGhwcuaKtcu7cFeGhXcbhoinawaXaLaofRbb9nfhwaocefgocz9hmbkkdndnawaE6mbaKa39hmeawaE9hmea5a8EcdtfydbcwSmeka8Ah8EawhEka8Acefg8Aci9hmbkaAa8Mco4fgoaoRbba8Ea8Mci4coGtV86bbdndndna5a8Ecdtfydbg3PDdbbbbbbbebkdncwa39Tg8ETmbcua3tcu7hwdndna3ceSmbcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXa3tVhXaocefhoa8Acufg8AmbkaYaX86bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbxdkkcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXcetVhXaocefhoa8Acufg8AmbkaYaX:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbkkcbhoinaYaLaofRbbgX86bbaYaXawcFeG9pfhYaocefgocz9hmbxikkdna3ceSmbinaYcb86bbaYcefhYxbkkinaYcb86bbaYcefhYxbkkaYaQ8Pbb83bbaYcwfaQcwf8Pbb83bbaYczfhYka8Mczfg8Ma8L9pgomeaLczfhLa8KaY9RcK9pmbkkaoTmlaYh5aYTmlka8Jcefg8Jal9hmbkarc;abfaxascufal2falz:wjjjb8Aasamfhma5hoa5mbkcbhwxdkdna8Kao9RakalfgwcKcaaDEgLawaL0EgX9pmbcbhwxdkdnawaL9pmbaocbaXaw9Rgwz:xjjjbawfhokaoarc;adfalz:wjjjbalfhodnaDTmbaoaraez:wjjjbaefhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;C:kjjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;C:kjjbk:Ese5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd;m:kjjbgrc;GeV86bbalc;abfcFecjez:xjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc;i1jjbfydbcdtfydbh3aLaoc;e1jjbfydbcdtfydbh8AaLaoc;a1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc;a1jjbfydbcdtfydbgKTaLavc;e1jjbfydbcdtfydbg8AceSGaLavc;i1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavc:W1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkdnaeaP9nmbcbhvxekcbhvinaeavfavc:W1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:kjjbk:Adewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb;m:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkdnaoar9nmbcbskaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b0Ec:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A0Ec:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk:Ylvdud99due99iudnaeTmbceaicufgvthocuaitcu7:Zhrcuavtcu7:Zhwcbhvadcl9hhDcbhqindndnalcwfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikdndnalIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9TgxaifhidndnalclfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9ThddndnalcxfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEawNJbbbZMgk:lJbbb9p9DTmbak:Ohmxekcjjjj94hmkadaifhiaoamVhmdndnaDmbabavfgPai86bbaPcifam86bbaPcdfad86bbaPcefax86bbxekabaqfgPai87ebaPcofam87ebaPclfad87ebaPcdfax87ebkalczfhlavclfhvaqcwfhqaecufgembkkk;YqdXui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:xjjjb8AcbhodnadTmbcbhoaiTmbdndnabaeSmbaehrxekavcuadcdtgwadcFFFFi0Ecbyd;q:kjjbHjjjjbbgrBd:SeavceBd:mdaraeawz:wjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaradaiavc:Sefz:pjjjbavyd:GehDadci9Ugqcbyd;q:kjjbHjjjjbbheavc:Sefavyd:mdgkcdtfaeBdbavakcefgwBd:mdaecbaqz:xjjjbhxavc:SefawcdtfcuaicdtaicFFFFi0Ecbyd;q:kjjbHjjjjbbgmBdbavakcdfgPBd:mdalc;ebfhsaDheamhwinawalIdbasaeydbgzcwazcw6EcdtfIdbMUdbaeclfheawclfhwaicufgimbkavc:SefaPcdtfcuaqcdtadcFFFF970Ecbyd;q:kjjbHjjjjbbgPBdbdnadci6mbarheaPhwaqhiinawamaeydbcdtfIdbamaeclfydbcdtfIdbMamaecwfydbcdtfIdbMUdbaecxfheawclfhwaicufgimbkkakcifhoalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhzcbhwcbhXcehQinaehLcihkarawci2gKcdtfgeydbhsaeclfydbhdabaXcx2fgicwfaecwfydbgYBdbaiclfadBdbaiasBdbaxawfce86bbaOaYBdwaOadBdlaOasBdbaPawcdtfcbBdbdnazTmbcihkaLhiinaOakcdtfaiydbgeBdbakaeaY9haeas9haead9hGGfhkaiclfhiazcufgzmbkkaXcefhXcbhzinaCaAarazaKfcdtfydbcdtgifydbcdtfgYheaDaifgdydbgshidnasTmbdninaeydbawSmeaeclfheaicufgiTmdxbkkaeaYascdtfc98fydbBdbadadydbcufBdbkazcefgzci9hmbkdndnakTmbcuhwJbbbbh8Acbhdavyd:KehYavyd:OehKindndnaDaOadcdtfydbcdtgzfydbgembadcefhdxekadcs0hiamazfgsIdbhEasalcbadcefgdaiEcdtfIdbaHaecwaecw6EcdtfIdbMg3Udba3aE:th3aecdthiaKaYazfydbcdtfheinaPaeydbgzcdtfgsa3asIdbMgEUdbaEa8Aa8AaE9DgsEh8AazawasEhwaeclfheaic98fgimbkkadak9hmbkawcu9hmekaQaq9pmdindnaxaQfRbbmbaQhwxdkaqaQcefgQ9hmbxikkakczakcz6EhzaOheaLhOawcu9hmbkkaocdtavc:Seffc98fhedninaoTmeaeydbcbyd;u:kjjbH:bjjjbbaec98fheaocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd;q:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:xjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic;K1jjbz:ojjjbkQbabaeadaic;m:jjjbz:ojjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:Vvioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:xjjjb8AalcuadcitgoadcFFFFe0Ecbyd;q:kjjbHjjjjbbgrBdxalceBd2araeadaicezNjjjbalcuaoadcjjjjoGEcbyd;q:kjjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:xjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkclhvdninavc98Smealcxfavfydbcbyd;u:kjjbH:bjjjbbavc98fhvxbkkalc;Waf8Kjjjjbk:Jwliuo99iud9:cbhv8Jjjjjbca9Rgoczfcwfcbyd:8:kjjbBdbaocb8Pd:0:kjjb83izaocwfcbyd;i:kjjbBdbaocb8Pd;a:kjjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:kjjbgeabcifc98GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:kjjbgeabcrfc94GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;y:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;y:kjjbfgdBd;y:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk;Qddbcjwk;mdbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;mqkzebbbebbbdbbb9G:vbb"),{}).then(function(i){(B=i.instance).exports.__wasm_call_ctors(),B.exports.meshopt_encodeVertexVersion(0),B.exports.meshopt_encodeIndexVersion(1)})})();var HE=function(){var B=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g,I=WebAssembly.validate(B)?C("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq;Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk;Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83ibawaDp5baxpEd:T:j83ibaocwfamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83ibaoarp5baxpEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgxpklbaiaxpklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83iKaiaDp5baxpEd:T:j83izaiamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83iwaiarp5baxpEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):C("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;BZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),Q=WebAssembly.instantiate(I,{}).then(function(n){(g=n.instance).exports.__wasm_call_ctors()});function C(n){for(var s=new Uint8Array(n.length),c=0;c<n.length;++c){var D=n.charCodeAt(c);s[c]=D>96?D-97:D>64?D-39:D+4}var b=0;for(c=0;c<n.length;++c)s[b++]=s[c]<60?A[s[c]]:64*(s[c]-60)+s[++c];return s.buffer.slice(0,b)}function E(n,s,c,D,b,h,w){var f=n.exports.sbrk,p=D+3&-4,R=f(p*b),U=f(h.length),G=new Uint8Array(n.exports.memory.buffer);G.set(h,U);var k=s(R,D,b,U,h.length);if(k==0&&w&&w(R,p,b),c.set(G.subarray(R,R+D*b)),f(R-f(0)),k!=0)throw new Error("Malformed buffer data: "+k)}var a={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},i={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},t=[],e=0;function o(n){var s={object:new Worker(n),pending:0,requests:{}};return s.object.onmessage=function(c){var D=c.data;s.pending-=D.count,s.requests[D.id][D.action](D.value),delete s.requests[D.id]},s}function r(n){var s=n.data;if(!s.id)return self.close();self.ready.then(function(c){try{var D=new Uint8Array(s.count*s.size);E(c,c.exports[s.mode],D,s.count,s.size,s.source,c.exports[s.filter]),self.postMessage({id:s.id,count:s.count,action:"resolve",value:D},[D.buffer])}catch(b){self.postMessage({id:s.id,count:s.count,action:"reject",value:b})}})}return{ready:Q,supported:!0,useWorkers:function(n){(function(s){for(var c="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(I)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+r.name+";"+E.toString()+r.toString(),D=new Blob([c],{type:"text/javascript"}),b=URL.createObjectURL(D),h=t.length;h<s;++h)t[h]=o(b);for(h=s;h<t.length;++h)t[h].object.postMessage({});t.length=s,URL.revokeObjectURL(b)})(n)},decodeVertexBuffer:function(n,s,c,D,b){E(g,g.exports.meshopt_decodeVertexBuffer,n,s,c,D,g.exports[a[b]])},decodeIndexBuffer:function(n,s,c,D){E(g,g.exports.meshopt_decodeIndexBuffer,n,s,c,D)},decodeIndexSequence:function(n,s,c,D){E(g,g.exports.meshopt_decodeIndexSequence,n,s,c,D)},decodeGltfBuffer:function(n,s,c,D,b,h){E(g,g.exports[i[b]],n,s,c,D,g.exports[a[h]])},decodeGltfBufferAsync:function(n,s,c,D,b){return t.length>0?function(h,w,f,p,R){for(var U=t[0],G=1;G<t.length;++G)t[G].pending<U.pending&&(U=t[G]);return new Promise(function(k,J){var m=new Uint8Array(f),O=++e;U.pending+=h,U.requests[O]={resolve:k,reject:J},U.object.postMessage({id:O,count:h,size:w,source:m,mode:p,filter:R},[m.buffer])})}(n,s,c,i[D],a[b]):Q.then(function(){var h=new Uint8Array(n*s);return E(g,g.exports[i[D]],h,n,s,c,g.exports[a[b]]),h})}}}();(function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g=WebAssembly.instantiate(function(a){for(var i=new Uint8Array(a.length),t=0;t<a.length;++t){var e=a.charCodeAt(t);i[t]=e>96?e-97:e>64?e-39:e+4}var o=0;for(t=0;t<a.length;++t)i[o++]=i[t]<60?A[i[t]]:64*(i[t]-60)+i[++t];return i.buffer.slice(0,o)}("b9H79Tebbbe:Gez9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gouuuuuue999Gvuuuuueu9Gquuuuuuu99uueu9GPuuuuuuuuuuu99uueu9Gquuuuuuuu99ueu9Gruuuuuu99eu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuiXCdilvorlwiDqkxmPbssbelve9Weiiviebeoweuec:G:Pdkr;7eko9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95br8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bw8A9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9O9v9W9K9HtWbDQ9TW79O9V9Wt9F79P9T9W29P9M959t29V9W9W95bqX9TW79O9V9Wt9F79P9T9W29P9M959qV919UWbkQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bxX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbma9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbPl79IV9RbsDwebcekdOAq:d;OeCdbk:J1eo3ue99euE99Cue9:8Jjjjjbcj;sb9Rgs8Kjjjjbcbhzasc:Cefcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkdnamcdGTmbalcrfci4gHcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd1:jjjbHjjjjbbhzasc:Cefasyd;8egecdtfazBdbasaecefBd;8ealcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egCcdtfaHBdbasaCcefBd;8eaHcFeaOz:rjjjbhQdnadTmbaecufhLcbhKindndnaQabaXcdtfgYydbgCc:v;t;h;Ev2aLGgOcdtfgAydbgHcuSmbceheinazaHcdtfydbaCSmdaOaefhHaecefheaQaHaLGgOcdtfgAydbgHcu9hmbkkazaKcdtfaCBdbaAaKBdbaKhHaKcefhKkaYaHBdbaXcefgXad9hmbkkaQcbyd:m:jjjbH:bjjjbbasasyd;8ecufBd;8ekcbh8AcualcefgecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbhKasc:Cefasyd;8egecdtfaKBdbasaKBdNeasaecefBd;8ecuadcitadcFFFFe0Ecbyd1:jjjbHjjjjbbhEasc:Cefasyd;8egecdtfaEBdbasaEBd:yeasaecefBd;8eascNefabadalcbz:cjjjbcualcdtgealcFFFFi0Eg3cbyd1:jjjbHjjjjbbhCasc:Cefasyd;8egHcdtfaCBdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhYasc:Cefasyd;8egHcdtfaYBdbasaHcefBd;8eaCaYaialavazasc:Cefz:djjjbalcbyd1:jjjbHjjjjbbh5asc:Cefasyd;8egHcdtfa5BdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egOcdtfaHBdbasaOcefBd;8ea3cbyd1:jjjbHjjjjbbhOasc:Cefasyd;8egAcdtfaOBdbasaAcefBd;8eaHcFeaez:rjjjbh8EaOcFeaez:rjjjbh8FdnalTmbaEcwfhaindnaKa8AgOcefg8AcdtfydbgAaKaOcdtgefydbgHSmbaAaH9RhhaEaHcitfhga8Faefh8Ja8Eaefh8KcbhQindndnagaQcitfydbgLaO9hmba8KaOBdba8JaOBdbxekdnaKaLcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgAfydbaOSmeaHae9Rh8Maecu7aHfhXaaaAfhHcbheinaXaeSmeaecefheaHydbhAaHcwfhHaAaO9hmbkaea8M6meka8Fa8LfgeaOaLaeydbcuSEBdba8KaLaOa8KydbcuSEBdbkaQcefgQah9hmbkka8Aal9hmbkaChHaYhOa8FhAa8EhQcbheindndnaeaHydbgL9hmbdnaeaOydbgL9hmbaQydbhLdnaAydbgXcu9hmbaLcu9hmba5aefcb86bbxikdnaXcuSmbaLcuSmbaeaXSmbaCaXcdtfydbaCaLcdtfydb9hmba5aefcd86bbxika5aefh8KdnaeaXSmbaeaLSmba8Kce86bbxika8Kcl86bbxdkdnaeaYaLcdtgXfydb9hmbdnaAydbg8KcuSmbaea8KSmbaQydbghcuSmbaeahSmba8FaXfydbggcuSmbagaLSmba8EaXfydbgXcuSmbaXaLSmbdnaCa8KcdtfydbgLaCaXcdtfydb9hmbaLaCahcdtfydbgXSmbaXaCagcdtfydb9hmba5aefcd86bbxlka5aefcl86bbxika5aefcl86bbxdka5aefcl86bbxeka5aefa5aLfRbb86bbkaHclfhHaOclfhOaAclfhAaQclfhQalaecefge9hmbkdnamcaGTmbaEcwfh8Jcbh8Nindndna5a8NfgyRbbg8Pc9:fPibebekdndndnaCa8Ncdtfydbgea8N9hmbdnaqmbcbhgxdkdnazTmbcbhga8NheinagaqazaecdtgefydbfRbbcdGce4VhgaYaefydbgea8N9hmbxikkcbhga8NheinagaqaefRbbcdGce4VhgaYaecdtfydbgea8N9hmbxdkka5aefRbbhexeka8NheindnaKaecdtgafgeclfydbgHaeydbgeSmbaHae9Rh8AaEaecitfh8MaCaafh8Lcbh8Kina8Ma8KcitfydbgXhednindnaKaecdtgLfgeclfydbgHaeydbgeSmbdnaCaEaecitgOfydbcdtfydba8LydbgQ9hmbcehexikaHae9Rhhaecu7aHfhAa8JaOfhHcbheinaAaeSmeaecefheaHydbhOaHcwfhHaCaOcdtfydbaQ9hmbkaeah6hexdkaYaLfydbgeaX9hmbkcbhekagaece7Vhga8Kcefg8Ka8A9hmbkkaYaafydbgea8N9hmbka8PciagceGEhekayae86bbka8Ncefg8Nal9hmbkkdnaqTmbdndnazTmbazheaChHalhOindnaqaeydbfRbbceGTmba5aHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaChealhHindnaqRbbceGTmba5aeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaChealhOa5hHindna5aeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmba5healhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcbhIcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhaasc:Cefasyd;8egecdtfaaBdbasaecefBd;8easc:qefcbBdbas9cb83i1eaaaialavazasc1efz:ejjjbh8RdndnaDmbcbh8Scbh8Lxekcbh8LawhecbhHindnaeIdbJbbbb9ETmbasa8LcdtfaHBdba8Lcefh8LkaeclfheaDaHcefgH9hmbkcua8Lal2gecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbh8Sasc:Cefasyd;8egecdtfa8SBdbasaecefBd;8ealTmbdna8Lmbcbh8Lxekarcd4hXdnazTmba8Lcdth8KcbhLa8ShKinaoazaLcdtfydbaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbxdkka8Lcdth8KcbhLa8ShKinaoaLaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbkkcualc8S2gHalc;D;O;f8U0EgAcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhycbhqcbh8Ndna8LTmbcbhIaAcbyd1:jjjbHjjjjbbh8Nasc:Cefasyd;8egecdtfa8NBdbasaecefBd;8ea8NcbaHz:rjjjb8Acua8Lal2gecltgHaecFFFFb0Ecbyd1:jjjbHjjjjbbhqasc:Cefasyd;8egecdtfaqBdbasaecefBd;8eaqcbaHz:rjjjb8AamcjjjjdGTmbcualcltgealcFFFFb0Ecbyd1:jjjbHjjjjbbhIasc:Cefasyd;8egHcdtfaIBdbasaHcefBd;8eaIcbaez:rjjjb8AkdnadTmbcbhQabhHinaaaHclfydbgLcx2fgeIdbaaaHydbgKcx2fgOIdbgR:tg8UaaaHcwfydbgXcx2fgAIdlaOIdlg8V:tg8WNaAIdbaR:tg8XaeIdla8V:tg8YN:tg8Zh80aeIdwaOIdwg81:tgBa8XNaAIdwa81:tg83a8UN:tgUh8Xa8Ya83Na8WaBN:tg8Yh8Udna8Za8ZNa8Ya8YNaUaUNMM:rgBJbbbb9EgOTmba8ZaB:vh80aUaB:vh8Xa8YaB:vh8UkayaCaKcdtfydbgAc8S2fgea8UaB:rg8Wa8UNNg85aeIdbMUdbaea8Xa8Wa8XNg86Ng87aeIdlMUdlaea80a8Wa80Ng83Ng88aeIdwMUdwaea86a8UNg86aeIdxMUdxaea83a8UNg89aeIdzMUdzaea83a8XNg8:aeIdCMUdCaea8Ua8Wa80a81Na8UaRNa8Va8XNMM:mgZNg83Ng8UaeIdKMUdKaea8Xa83Ng8XaeId3MUd3aea80a83Ng80aeIdaMUdaaea83aZNg83aeId8KMUd8Kaea8WaeIdyMUdyayaCaLcdtfydbgLc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdyayaCaXcdtfydbgKc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdydnaITmbdnaOTmba8ZaB:vh8ZaUaB:vhUa8YaB:vh8YkaIaAcltfgeaBJbbbZNg8UaUNg8WaeIdlMUdlaea8Ua8ZNg8XaeIdwMUdwaea8Ua8YNg80aeIdbMUdbaea8UaR:ma8YNaUa8VN:ta81a8ZN:tNg8UaeIdxMUdxaIaLcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxaIaKcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxkaHcxfhHaQcifgQad6mbkkdnalTmbJ;n;m;m89J:v:;;w8ZamczGEh8YcbhOaChAaahHayheindnaOaAydb9hmbaecxfgQaQIdbJbbbbMUdbaeczfgQaQIdbJbbbbMUdbaecCfgQaQIdbJbbbbMUdbaea8YaecyfgQIdbg8ZNg8UaeIdbMUdbaeclfgLa8UaLIdbMUdbaecwfgLa8UaLIdbMUdbaecKfgLaLIdbaHIdbg8Xa8UN:tUdbaHcwfIdbh8Waec3fgLaLIdba8UaHclfIdbg80N:tUdbaecafgLaLIdba8Ua8WN:tUdbaec8KfgLIdbhUaQa8Za8UMUdbaLaUa8Ua8Wa8WNa8Xa8XNa80a80NMMNMUdbkaAclfhAaHcxfhHaec8SfhealaOcefgO9hmbkkdnadTmbcbhXabhKinabaXcdtfhLcbhHina5aLaHc:G1jjbfydbcdtfydbgOfRbbhedndna5aKaHfydbgAfRbbgQc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaQcufcFeGce0mba8EaAcdtfydbaO9hmekdnaecufcFeGce0mba8FaOcdtfydbaA9hmekJbbacJbbacJbbbZaecFeGceSEaQcFeGceSEh88aaaOcx2fgeIdwaaaAcx2fgQIdwgB:tg80:mh86aeIdlaQIdlg83:tg8Z:mh89aeIdbaQIdbgR:tgU:mh8:dnaaaLaHc:K1jjbfydbcdtfydbcx2fgeIdwaB:tg8Va80a80NaUaUNa8Za8ZNMMg8YNa8Va80NaeIdbaR:tg81aUNa8ZaeIdla83:tg85NMMg8Wa80N:tg8Xa8XNa81a8YNa8WaUN:tg8Ua8UNa85a8YNa8Wa8ZN:tg8Wa8WNMM:rg87Jbbbb9ETmba8Xa87:vh8Xa8Wa87:vh8Wa8Ua87:vh8Uka88a8Y:rNg8Ya8XaBNa8UaRNa83a8WNMM:mgZNg87aZNhZa8Xa87Nhna8Wa87Nhca8Ua87Nh9ca8Ya8XNg87a8WNhJa87a8UNh9ea8Ya8WNgTa8UNhSa8Xa87Nh87a8WaTNhTa8Ua8Ya8UNNh9hdnaUa85Na81a89NMg8Xa8XNa8Za8VNa85a86NMg8Ua8UNa80a81Na8Va8:NMg8Wa8WNMM:rg80Jbbbb9ETmba8Xa80:vh8Xa8Wa80:vh8Wa8Ua80:vh8UkayaCaAcdtfydbc8S2fgeaeIdba9ha8Ua88a80:rNg80a8UNNMgUMUdbaeaTa8Wa80a8WNg8VNMg81aeIdlMUdlaea87a8Xa80a8XNg8ZNMg85aeIdwMUdwaeaSa8Va8UNMg8VaeIdxMUdxaea9ea8Za8UNMg87aeIdzMUdzaeaJa8Za8WNMg8ZaeIdCMUdCaea9ca8Ua80a8XaBNa8UaRNa83a8WNMMgB:mNg80NMg8UaeIdKMUdKaeaca8Wa80NMg8WaeId3MUd3aeana8Xa80NMg8XaeIdaMUdaaeaZaBa80N:tg80aeId8KMUd8Kaea8YJbbbbMg8YaeIdyMUdyayaCaOcdtfydbc8S2fgeaUaeIdbMUdbaea81aeIdlMUdlaea85aeIdwMUdwaea8VaeIdxMUdxaea87aeIdzMUdzaea8ZaeIdCMUdCaea8UaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea80aeId8KMUd8Kaea8YaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaXcifgXad6mbka8LTmbcbhKinJbbbbh8YaaabaKcdtfgeclfydbgXcx2fgHIdwaaaeydbg8Kcx2fgOIdwg81:tg8Wa8WNaHIdbaOIdbg85:tg8Xa8XNaHIdlaOIdlg87:tg80a80NMMgRaaaecwfydbghcx2fgeIdwa81:tg8ZNa8Wa8Wa8ZNa8XaeIdba85:tgUNa80aeIdla87:tgBNMMg8UN:tJbbbbJbbjZaRa8Za8ZNaUaUNaBaBNMMg8VNa8Ua8UN:tg83:va83Jbbbb9BEg83Nh89a8Va8WNa8Za8UN:ta83Nh8:aRaBNa80a8UN:ta83NhZa8Va80NaBa8UN:ta83NhnaRaUNa8Xa8UN:ta83Nhca8Va8XNaUa8UN:ta83Nh9ca8XaBNaUa80N:tg8Ua8UNa80a8ZNaBa8WN:tg8Ua8UNa8WaUNa8Za8XN:tg8Ua8UNMM:rJbbbZNh8Ua8Sa8Ka8L2ggcdtfhHa8Saha8L2gEcdtfhOa8SaXa8L2g8JcdtfhAa81:mhJa87:mh9ea85:mhTcbhQa8LhLJbbbbhBJbbbbh83JbbbbhRJbbbbh8VJbbbbh81Jbbbbh85Jbbbbh87Jbbbbh88Jbbbbh86inascjdfaQfgecwfa8Ua8:aAIdbaHIdbg8Z:tg80Na89aOIdba8Z:tgUNMg8WNUdbaeclfa8Uana80NaZaUNMg8XNUdbaea8Ua9ca80NacaUNMg80NUdbaecxfa8UaJa8WNa9ea8XNa8ZaTa80NMMMg8ZNUdba8Ua8Wa8XNNa8VMh8Va8Ua8Wa80NNa81Mh81a8Ua8Xa80NNa85Mh85a8Ua8Za8ZNNa8YMh8Ya8Ua8Wa8ZNNaBMhBa8Ua8Xa8ZNNa83Mh83a8Ua80a8ZNNaRMhRa8Ua8Wa8WNNa87Mh87a8Ua8Xa8XNNa88Mh88a8Ua80a80NNa86Mh86aHclfhHaAclfhAaOclfhOaQczfhQaLcufgLmbka8Na8Kc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8NaXc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8Nahc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdyaqagcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqa8JcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqaEcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaKcifgKad6mbkkcbhOdndnamcwGg9imbJbbbbh85cbh6cbh9kcbh0xekcbh6a3cbyd1:jjjbHjjjjbbh0asc:Cefasyd;8egecdtfa0BdbasaecefBd;8ecua0alabadaCz:fjjjbgAcltaAcjjjjiGEcbyd1:jjjbHjjjjbbh9kasc:Cefasyd;8egecdtfa9kBdbasaecefBd;8ea9kaAa0aaalz:gjjjbJFFuuh85aATmba9kheaAhHinaeIdbg8Ua85a85a8U9EEh85aeclfheaHcufgHmbkaAh6kasydNeh9mdnalTmba9mclfhea9mydbhAa5hHalhQcbhOincbaeydbgLaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaLhAaQcufgQmbkaOce4hOkcuadaO9Rcifg9ncx2a9nc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8Pasc:Cefasyd;8egecdtfa8PBdbasaecefBd;8ecua9ncdta9ncFFFFi0Ecbyd1:jjjbHjjjjbbh9oasc:Cefasyd;8egecdtfa9oBdbasaecefBd;8ea3cbyd1:jjjbHjjjjbbhDasc:Cefasyd;8egecdtfaDBdbasaecefBd;8ealcbyd1:jjjbHjjjjbbh9pasc:Cefasyd;8egecdtfa9pBdbasaecefBd;8eaxaxNa8RJbbjZamclGEgnanN:vh88Jbbbbh86dnadak9nmbdna9nci6mbasyd:yeh9qa8Lclth9ra8Pcwfh9sJbbbbh87Jbbbbh86inascNefabadalaCz:cjjjbabh8Kcbh8Mcbh3inaba3cdtfhgcbheindnaCa8KaefydbgOcdtgXfydbgAaCagaec:W1jjbfydbcdtfydbgHcdtghfydbgQSmba5aHfRbbgKcv2a5aOfRbbgLfc;a1jjbfRbbg8JaLcv2aKfgEc;a1jjbfRbbg8AVcFeGTmbdnaQaA9nmbaEc;G1jjbfRbbcFeGmekdnaLcufcFeGce0mbaKTmba8EaXfydbaH9hmekdnaLTmbaKcufcFeGce0mba8FahfydbaO9hmeka8Pa8Mcx2fgAaHaOa8AcFeGgQEBdlaAaOaHaQEBdbaAaQa8JGcb9hBdwa8Mcefh8Mkaeclfgecx9hmbkdna3cifg3ad9pmba8Kcxfh8Ka8Mcifa9n9nmekka8MTmdcbhhinayaCa8Pahcx2fgKydbgQcdtgAfydbc8S2fgeIdwaaaKydlgLcx2fgHIdwg8XNaeIdzaHIdbg80NaeIdaMg8Ua8UMMa8XNaeIdlaHIdlg8ZNaeIdCa8XNaeId3Mg8Ua8UMMa8ZNaeIdba80NaeIdxa8ZNaeIdKMg8Ua8UMMa80NaeId8KMMM:lh8UJbbbbJbbjZaeIdyg8W:va8WJbbbb9BEh8WdndnaKydwg8KmbJFFuuh81xekJbbbbJbbjZayaCaLcdtfydbc8S2fgeIdygU:vaUJbbbb9BEaeIdwaaaQcx2fgHIdwgUNaeIdzaHIdbg8YNaeIdaMgBaBMMaUNaeIdlaHIdlgBNaeIdCaUNaeId3MgUaUMMaBNaeIdba8YNaeIdxaBNaeIdKMgUaUMMa8YNaeId8KMMM:lNh81ka8Wa8UNh8Vdna8LTmba8NaQc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaQa8L2ggcltfheaHIdyhUa8SaLa8L2gEcdtfgXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaLc8S2fgOIdwaaaQcx2fgeIdwg8YNaOIdzaeIdbgBNaOIdaMg8Wa8WMMa8YNaOIdlaeIdlg83NaOIdCa8YNaOId3Mg8Wa8WMMa83NaOIdbaBNaOIdxa83NaOIdKMg8Wa8WMMaBNaOId8KMMMh8Wa8SagcdtfhHaqaEcltfheaOIdyhRa8LhOinaHIdbgUaUaRNaecxfIdba8YaecwfIdbNaBaeIdbNa83aeclfIdbNMMMgUaUM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81dndndna5aQfRbbc9:fPdbedkdna8Fa8Ea8EaAfydbaLSEaYaAfydbgXcdtfydbgAcu9hmbaYaLcdtfydbhAka8NaXc8S2fgOIdwaaaAcx2fgeIdwg8XNaOIdzaeIdbg80NaOIdaMg8Ua8UMMa8XNaOIdlaeIdlg8ZNaOIdCa8XNaOId3Mg8Ua8UMMa8ZNaOIdba80NaOIdxa8ZNaOIdKMg8Ua8UMMa80NaOId8KMMMh8Ua8SaAa8L2ggcdtfhHaqaXa8L2gEcltfheaOIdyhUa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaAc8S2fgOIdwaaaXcx2fgeIdwg80NaOIdzaeIdbg8ZNaOIdaMg8Wa8WMMa80NaOIdlaeIdlgUNaOIdCa80NaOId3Mg8Wa8WMMaUNaOIdba8ZNaOIdxaUNaOIdKMg8Wa8WMMa8ZNaOId8KMMMh8Wa8SaEcdtfhHaqagcltfheaOIdyh8Ya8LhOinaHIdbg8Xa8Xa8YNaecxfIdba80aecwfIdbNa8ZaeIdbNaUaeclfIdbNMMMg8Xa8XM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81xdkaYaAfydbgAaQSmbina8NaAc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka8Va8U:lMh8VaYaAcdtfydbgAaQ9hmbkka5aLfRbbci9hmba8KTmbaYaLcdtfydbgAaLSmba8SagcdtfhXaaaQcx2fgeIdbh8XaeIdwh80aeIdlh8Zina8NaAc8S2fgHIdwa80NaHIdza8XNaHIdaMg8Ua8UMMa80NaHIdla8ZNaHIdCa80NaHId3Mg8Ua8UMMa8ZNaHIdba8XNaHIdxa8ZNaHIdKMg8Ua8UMMa8XNaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba80aecwfIdbNa8XaeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka81a8U:lMh81aYaAcdtfydbgAaL9hmbkkaKa81a8Va81a8V9DgeEUdwaKaQaLaea8Kcb9hGgeEBdlaKaLaQaeEBdbahcefgha8M9hmbkascjdfcbcj;qbz:rjjjb8Aa9shea8MhHinascjdfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinascjdfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea9shHinascjdfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdba9oaOcdtfaeBdbaHcxfhHa8Maecefge9hmbkadak9RgOci9Uh9tdnalTmbcbheaDhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh9ua9pcbalz:rjjjbh3aOcO9Uh9va9tce4h9wcbh8Acbh8Jdnina8Pa9oa8Jcdtfydbcx2fgEIdwg8Ua889Emea8Aa9t9pmeJFFuuh8Wdna9wa8M9pmba8Pa9oa9wcdtfydbcx2fIdwJbb;aZNh8Wkdna8Ua8W9ETmba8Ua869ETmba8Aa9v0mdkdna3aCaEydlghcdtg9xfydbgAfg9yRbba3aCaEydbg8Kcdtg9zfydbgefg9ARbbVmba5a8KfRbbh9Bdna9maecdtfgHclfydbgOaHydbgHSmbaOaH9RhQaaaAcx2fhKaaaecx2fhXa9qaHcitfhecbhHcehgdnindnaDaeydbcdtfydbgOaASmbaDaeclfydbcdtfydbgLaASmbaOaLSmbaaaLcx2fgLIdbaaaOcx2fgOIdbg8X:tg8UaXIdlaOIdlg80:tg8YNaXIdba8X:tgBaLIdla80:tg8WN:tg8Za8UaKIdla80:tg83NaKIdba8X:tgRa8WN:tg80Na8WaXIdwaOIdwgU:tg8VNa8YaLIdwaU:tg8XN:tg8Ya8WaKIdwaU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaQ6hgaQaH9hmbkkagceGTmba9wcefh9wxekdndndndna9Bc9:fPdebdka8KheinaDaecdtgefahBdbaYaefydbgea8K9hmbxikkdna8Fa8Ea8Ea9zfydbahSEaYa9zfydbg8Kcdtfydbgecu9hmbaYa9xfydbhekaDa9zfahBdbaehhkaDa8KcdtfahBdbka9Ace86bba9yce86bbaEIdwg8Ua86a86a8U9DEh86a9ucefh9ucecda9BceSEa8Afh8Aka8Jcefg8Ja8M9hmbkka9uTmddnalTmbcbhLcbhXindnaDaXcdtgefydbgOaXSmbaCaOcdtfydbh8KdnaXaCaefydb9hghmbaya8Kc8S2fgeayaXc8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyaITmbaIa8KcltfgeaIaXcltfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxka8LTmba8NaOc8S2fgea8NaXc8S2ggfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9raO2hKaqhHa8LhAinaHaKfgeaHaLfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkahmbJbbbbJbbjZayagfgeIdyg8U:va8UJbbbb9BEaeIdwaaa8Kcx2fgHIdwg8UNaeIdzaHIdbg8WNaeIdaMg8Xa8XMMa8UNaeIdlaHIdlg8XNaeIdCa8UNaeId3Mg8Ua8UMMa8XNaeIdba8WNaeIdxa8XNaeIdKMg8Ua8UMMa8WNaeId8KMMM:lNg8Ua87a87a8U9DEh87kaLa9rfhLaXcefgXal9hmbkcbhHa8EheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8EaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHa8FheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8FaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkka87a86a8LEh87cbhHabhecbhOindnaCaDaeydbcdtfydbgLcdtfydbgAaCaDaeclfydbcdtfydbgKcdtfydbgQSmbaAaCaDaecwfydbcdtfydbg8KcdtfydbgXSmbaQaXSmbabaHcdtfgAaLBdbaAcwfa8KBdbaAclfaKBdbaHcifhHkaecxfheaOcifgOad6mbkdndna9imbaHhdxekdnaHak0mbaHhdxekdna85a879FmbaHhdxekJFFuuh85cbhdabhecbhOindna9ka0aeydbgAcdtfydbcdtfIdbg8Ua879ETmbaeclf8Pdbh9CabadcdtfgQaABdbaQclfa9C83dba8Ua85a85a8U9EEh85adcifhdkaecxfheaOcifgOaH6mbkkadak0mbxdkkascNefabadalaCz:cjjjbkdndnadak0mbadhOxekdna9imbadhOxekdna85a889FmbadhOxekcehLina85Jbb;aZNg8Ua88a8Ua889DEh8XJbbbbh8Udna6Tmba9khea6hHinaeIdbg8Wa8Ua8Wa8X9FEa8Ua8Wa8U9EEh8UaeclfheaHcufgHmbkkJFFuuh85cbhOabhecbhHindna9ka0aeydbgAcdtfydbcdtfIdbg8Wa8X9ETmbaeclf8Pdbh9CabaOcdtfgQaABdbaQclfa9C83dba8Wa85a85a8W9EEh85aOcifhOkaecxfheaHcifgHad6mbkdnaLaOad9hVceGmbadhOxdka8Ua86a86a8U9DEh86aOak9nmecbhLaOhda85a889FmbkkdnamcjjjjdGTmba9pcbalz:rjjjbhLdnaOTmbabheaOhHinaLaeydbgAfa5aAfRbbcl9h86bbaeclfheaHcufgHmbkkascNefabaOalaCz:cjjjbalTmbcbhQasyd:yehgindnaLaQfRbbTmbdna5aQfRbbgecl0mbceaetcQGmekdnaCaQcdtgKfydbgeaQSmbaaaQcx2fgHaaaecx2fge8Pdb83dbaHcwfaecwfydbBdbxekayaQc8S2fgeIdyg8Ua8UJL:3;rUNg8UMh88aeIdwa8UMhRaeIdla8UMh8VaeIdba8UMhUaeIdaa8UaaaQcx2fg8KIdwg89N:th81aeId3a8Ua8KIdlg8:N:th85aeIdKa8KIdbgZa8UN:th8YJbbbbhcaeIdCJbbbbMh87aeIdzJbbbbMhBaeIdxJbbbbMh83dndna8LTmbaQhAinJbbbba88a8NaAc8S2fgHIdyg8U:va8UJbbbb9BEh8UaqaAa8L2cltfheaHIdaa88Na81Mh81aHId3a88Na85Mh85aHIdKa88Na8YMh8YaHIdCa88Na87Mh87aHIdza88NaBMhBaHIdxa88Na83Mh83aHIdwa88NaRMhRaHIdla88Na8VMh8VaHIdba88NaUMhUa8LhHina81aecxfIdbg8ZaecwfIdbg8WNa8UN:th81a85a8ZaeclfIdbg8XNa8UN:th85a87a8Wa8XNa8UN:th87aUaeIdbg80a80Na8UN:thUa8Ya8Za80Na8UN:th8YaBa8Wa80Na8UN:thBa83a8Xa80Na8UN:th83aRa8Wa8WNa8UN:thRa8Va8Xa8XNa8UN:th8VaeczfheaHcufgHmbkaYaAcdtfydbgAaQ9hmbkaITmbaIaQcltfgeIdxhTaeIdwh9caeIdlhJaeIdbh8UxekJbbbbhTJbbbbh9cJbbbbhJJbbbbh8UkaBaU:vg8Xa8YNa81:ta87aBa83aU:vg8WN:tg81a8Va83a8WN:tg8Z:vg80a8Wa8YNa85:tg8VN:th85a9ca8Ua8XN:taJa8Ua8WN:tg83a80N:tg87aRaBa8XN:ta81a80N:tgB:vgR:mh81a83a8Z:vg9c:mhJdnJbbbba8Ua8UaU:vg9eN:ta83a9cN:ta87aRN:tg83:la88J:983:g81Ng8U9ETmba81a85NaJa8VNa9ea8YNaT:tMMa83:vhckaU:la8U9ETmba8Z:la8U9ETmbaB:la8U9ETmba9e:macNa8X:ma81acNa85aB:vMg85Na8W:maJacNa80:ma85Na8Va8Z:vMMg87Na8Y:maU:vMMMh88a9maKfgeclfydbgHaeydbge9RhXagaecitfhKJbbbbh8UdnaHaeSghmbJbbbbh8UaKheaXhAinaaaeclfydbcx2fgHIdwa89:tg8Wa8WNaHIdbaZ:tg8Wa8WNaHIdla8::tg8Wa8WNMMg8Waaaeydbcx2fgHIdwa89:tg8Xa8XNaHIdbaZ:tg8Xa8XNaHIdla8::tg8Xa8XNMMg8Xa8Ua8Ua8X9DEg8Ua8Ua8W9DEh8UaecwfheaAcufgAmbkka85a89:tg8Wa8WNa88aZ:tg8Wa8WNa87a8::tg8Wa8WNMMa8U:rg8Ua8UN9EmbdnahmbcbhAcehhdninaaaKclfydbcx2fgeIdbaaaKydbcx2fgHIdbg8X:tg8Ua8:aHIdlg80:tg8YNaZa8X:tgBaeIdla80:tg8WN:tg8Za8Ua87a80:tg83Na88a8X:tgRa8WN:tg80Na8Wa89aHIdwgU:tg8VNa8YaeIdwaU:tg8XN:tg8Ya8Wa85aU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmeaKcwfhKaAcefgAaX6hhaXaA9hmbkkahceGmeka8Ka85Udwa8Ka87Udla8Ka88UdbkaQcefgQal9hmbkdndna8LTmba8LclthYa8Lcdth8KcbhKa8ShXindnaLaKfRbbTmba5aKfRbbclSmbJbbbbJbbjZa8NaKc8S2fIdyg8U:va8UJbbbb9BEh8UaaaCaKcdtfydbcx2fhHaqheaXhAa8LhQinaAa8UaecwfIdbaHIdwNaeIdbaHIdbNaeclfIdbaHIdlNMMaecxfIdbMNUdbaeczfheaAclfhAaQcufgQmbkkaqaYfhqaXa8KfhXaKcefgKal9hmbkarcd4hXavcd4hYasId:qeh8UasId:meh8WasId1eh8XazTmea8Lcdth8KcbhKindnaLaKfRbbTmbaiazaKcdtfydbgCaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaCaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbxikkavcd4hCasId:qeh8UasId:meh8WasId1eh8XdnazTmbazheindna9pRbbTmbaiaeydbaC2cdtfgHaaIdba8RNa8XMUdbaHaaclfIdba8RNa8WMUdlaHaacwfIdba8RNa8UMUdwka9pcefh9paeclfheaacxfhaalcufglmbxikkaCcdtheindna9pRbbTmbaiaaIdba8RNa8XMUdbaiclfaaclfIdba8RNa8WMUdbaicwfaacwfIdba8RNa8UMUdbka9pcefh9paacxfhaaiaefhialcufglmbxdkka8Lcdth8KcbhKindnaLaKfRbbTmbaiaKaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaKaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbkkdnamcjjjjlGTmbazmbaOTmbcbhLabheina5aeydbgAfRbbc3thKaecwfgXydbhHdndna8EaAcdtg8KfydbaeclfgYydbgCSmbcbhQa8FaCcdtfydbaA9hmekcjjjj94hQkaeaKaQVaAVBdba5aCfRbbc3thKdndna8EaCcdtfydbaHSmbcbhQa8FaHcdtfydbaC9hmekcjjjj94hQkaYaKaQVaCVBdba5aHfRbbc3thQdndna8EaHcdtfydbaASmbcbhCa8Fa8KfydbaH9hmekcjjjj94hCkaXaQaCVaHVBdbaecxfheaLcifgLaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPana86:rNUdbkasyd;8egecdtasc:Ceffc98fhHdninaeTmeaHydbcbyd:m:jjjbH:bjjjbbaHc98fhHaecufhexbkkascj;sbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:rjjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd1:jjjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:rjjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd:m:jjjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkawclfhwabclfhbaiaDcefgD9hmbkkk:hrdvuv998Jjjjjbca9Rgoczfcwfcbyd11jjbBdbaocb8Pdj1jjb83izaocwfcbydN1jjbBdbaocb8Pd:m1jjb83ibdnadTmbaicd4hrdnabmbdnalTmbcbhwinaealawcdtfydbar2cdtfhDcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxikkarcdthwcbhDincbhiinaoczfaifgqaeaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaeawfheaDcefgDad9hmbxdkkdnalTmbcbhwinabawcx2fgiaealawcdtfydbar2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxdkkarcdthlcbhwaehDinabawcx2fgiaeawar2cdtfgqIdbUdbaiaqIdlUdlaiaqIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaDalfhDawcefgwad9hmbkkJbbbbaoIdbaoIdzgx:tgkakJbbbb9DEgkaoIdlaoIdCgm:tgPaPak9DEgkaoIdwaoIdKgP:tgsasak9DEhsdnabTmbadTmbJbbbbJbbjZas:vasJbbbb9BEhkinabakabIdbax:tNUdbabclfgoakaoIdbam:tNUdbabcwfgoakaoIdbaP:tNUdbabcxfhbadcufgdmbkkdnavTmbavaPUdwavamUdlavaxUdbkask:ZlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvc:G1jjbfydbcdtfydbcdtfydbhodnabalawavfydbcdtfydbgqcdtfgkydbgvaqSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnabaocdtfgkydbgvaoSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnabavfgDydbgvaxSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhvabhocbhkindndnavalydbgq9hmbdnavaoydbgq9hmbaoakBdbakcefhkxdkaoabaqcdtfydbBdbxekaoabaqcdtfydbBdbkaoclfhoalclfhlaeavcefgv9hmbkakk;Jiilud99duabcbaecltz:rjjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakclfgxaqaxIdbMUdbakcwfgxaDaxIdbMUdbakcxfgkakIdbJbbjZMUdbaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhraehkinarcxfgoIdbhDaocbBdbararIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbarclfgoaDaoIdbNUdbarcwfgoaDaoIdbNUdbarczfhrakcufgkmbkkdnalTmbinavadydbcltfgrcxfgkaicwfIdbarcwfIdb:tgDaDNaiIdbarIdb:tgDaDNaiclfIdbarclfIdb:tgDaDNMMgDakIdbgqaqaD9DEUdbadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhrinabarIdbUdbarczfhrabclfhbaecufgembkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbkRbababaeadaialavaoarawaDaqakaxcjjjjdVamz:bjjjbk:p8Koque99due99iuq998Jjjjjbc;Wb9Rgq8Kjjjjbcbhkaqcxfcbc;Kbz:rjjjb8Aaqcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgxBdxaqceBd2axaialavcbcbz:ejjjb8AaqcualcdtalcFFFFi0Egmcbyd1:jjjbHjjjjbbgiBdzaqcdBd2dndnJFF959eJbbjZawJbbjZawJbbjZ9DE:vawJ9VO:d869DEgw:lJbbb9p9DTmbaw:OhPxekcjjjj94hPkadci9Uhsarco9UhzdndnaombaPcd9imekdnalTmbaPcuf:YhwdnaoTmbcbhvaihHaxhOindndnaoavfRbbceGTmbavcjjjjlVhAxekdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHaOcxfhOalavcefgv9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkadTmbcbhkaehvcbhOinakaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgA9haiavydbcdtfydbgXaH9haXaA9hGGfhkavcxfhvaOcifgOad6mbkkarci9UhQdndnaz:Z:rJbbbZMgw:lJbbb9p9DTmbaw:Ohvxekcjjjj94hvkaQ:ZhLcbhKc:bwhHdndninashYaHhXaPhrakg8AaQ9pmeaXar9Rcd9imeavaXcufavaX9iEarcefavar9kEhzdnalTmbazcuf:YhwdnaoTmbcbhOaihPaxhvindndnaoaOfRbbceGTmbaOcjjjjlVhHxekdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcqthHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHasVhHdndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHascCtVhHkaPaHBdbaPclfhPavcxfhvalaOcefgO9hmbxdkkaxhvaihOalhPindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcCthHdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqtaHVhHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaOaHasVBdbavcxfhvaOclfhOaPcufgPmbkkcbhOdnadTmbaehvcbhPinaOaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgs9haiavydbcdtfydbgAaH9haAas9hGGfhOavcxfhvaPcifgPad6mbkkaYhsaOhkaXhHazhPdnaOaQ9nmbaOhsa8AhkazhHarhPkdndnaKcl0mbdnaY:Zgwa8A:ZgC:taz:YgEar:Y:tg3aEaX:Y:tg5aO:Zg8EaL:tNNNawaL:ta5NaCa8E:tNaCaL:ta3Na8Eaw:tNM:vaEMJbbbZMgw:lJbbb9p9DTmbaw:Ohvxdkcjjjj94hvxekaPaHfcd9ThvkaKcefgKcs9hmbxdkka8AhkarhPkdndndnakmbJbbjZhwcbhicdhvaDmexdkalcd4alfhHcehOinaOgvcethOavaH6mbkcbhOaqcuavcdtgravcFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCaqciBd2aqamcbyd1:jjjbHjjjjbbgXBdKaqclBd2dndndndnalTmbaPcuf:YhwaoTmecbhOaihHaxhPindndnaoaOfRbbceGTmbaOcjjjjlVhsxekdndnaPclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqthsdndnaPcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAVhsdndnaPIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAcCtVhskaHasBdbaHclfhHaPcxfhPalaOcefgO9hmbxikkazcFearz:rjjjb8AcbhrcbhvxdkaxhOaihPalhHindndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascCthsdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqtasVhsdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaPasaAVBdbaOcxfhOaPclfhPaHcufgHmbkkazcFearz:rjjjbhAavcufhocbhrcbhzindndndnaAaiazcdtgKfydbgHcm4aH7c:v;t;h;Ev2gvcs4av7aoGgPcdtfgsydbgOcuSmbcehvinaiaOcdtgOfydbaHSmdaPavfhOavcefhvaAaOaoGgPcdtfgsydbgOcu9hmbkkasazBdbarhvarcefhrxekaXaOfydbhvkaXaKfavBdbazcefgzal9hmbkcuarc8S2gOarc;D;O;f8U0EhvkcbhAaqavcbyd1:jjjbHjjjjbbgvBd3aqcvBd2avcbaOz:rjjjbhOdnadTmbaehiinJbbnnJbbjZaXaiydbgHcdtfydbgvaXaiclfydbgPcdtfydbgzSavaXaicwfydbgscdtfydbgKSGgoEh8FdnaxaPcx2fgPIdbaxaHcx2fgHIdbg8E:tgCaxascx2fgsIdlaHIdlg3:tgwNasIdba8E:tgEaPIdla3:tgaN:tgLaLNaaasIdwaHIdwg5:tghNawaPIdwa5:tgaN:tgwawNaaaENahaCN:tgCaCNMM:rgEJbbbb9ETmbaLaE:vhLaCaE:vhCawaE:vhwkaOavc8S2fgvavIdbawa8FaE:rNgEawNNgaMUdbavaCaEaCNghNggavIdlMUdlavaLaEaLNg8FNg8JavIdwMUdwavahawNghavIdxMUdxava8FawNg8KavIdzMUdzava8FaCNg8FavIdCMUdCavawaEaLa5Nawa8ENa3aCNMM:mg3Ng8ENgwavIdKMUdKavaCa8ENgCavId3MUd3avaLa8ENgLavIdaMUdaava8Ea3Ng8EavId8KMUd8KavaEavIdyMUdydnaombaOazc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdyaOaKc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdykaicxfhiaAcifgAad6mbkkcbhHaqcuarcdtgvarcFFFFi0Egicbyd1:jjjbHjjjjbbgPBdaaqcoBd2aqaicbyd1:jjjbHjjjjbbgiBd8KaqcrBd2aPcFeavz:rjjjbhzdnalTmbaXhPinJbbbbJbbjZaOaPydbgsc8S2fgvIdygw:vawJbbbb9BEavIdwaxcwfIdbgwNavIdzaxIdbgCNavIdaMgLaLMMawNavIdlaxclfIdbgLNavIdCawNavId3MgwawMMaLNavIdbaCNavIdxaLNavIdKMgwawMMaCNavId8KMMM:lNhwdndnazascdtgvfgsydbcuSmbaiavfIdbaw9ETmekasaHBdbaiavfawUdbkaPclfhPaxcxfhxalaHcefgH9hmbkkJbbbbhwdnarTmbinaiIdbgCawawaC9DEhwaiclfhiarcufgrmbkkakcd4akfhOcehiinaigvcethiavaO6mbkcbhiaqcuavcdtgOavcFFFFi0Ecbyd1:jjjbHjjjjbbgPBdyaPcFeaOz:rjjjbhsdnadTmbavcufhAcbhrcbhxindnaXaeaxcdtfgvydbcdtfydbgiaXavclfydbcdtfydbgOSmbaiaXavcwfydbcdtfydbgvSmbaOavSmbazavcdtfydbhHdndnazaOcdtfydbgvazaicdtfydbgi9pmbavaH9pmbaHhlaihoavhHxekdnaHai9pmbaHav9pmbaihlavhoxekavhlaHhoaihHkabarcx2fgvaHBdbavcwfaoBdbavclfalBdbdnasaoc:3F;N8N2alc:F:b:DD27aHc;D;O:B8J27aAGgOcdtfgvydbgicuSmbcehPinaPhvdnabaicx2fgiydbaH9hmbaiydlal9hmbaiydwaoSmikavcefhPasaOavfaAGgOcdtfgvydbgicu9hmbkkavarBdbarcefhrkaxcifgxad6mbkarci2hikdnaDmbcwhvxdkaw:rhwcwhvkaDawUdbkavcdthvdninavTmeavc98fgvaqcxffydbcbyd:m:jjjbH:bjjjbbxbkkaqc;Wbf8Kjjjjbaik:2ldwue9:8Jjjjjbc;Wb9Rgr8Kjjjjbcbhwarcxfcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkarcualcdtalcFFFFi0EgDcbyd1:jjjbHjjjjbbgqBdxarceBd2aqcbaialavcbarcxfz:djjjbcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhkarcxfaryd2gxcdtgmfakBdbaraxcefgPBd2akaialavcbcbz:ejjjb8AarcxfaPcdtfaDcbyd1:jjjbHjjjjbbgvBdbaraxcdfgiBd2arcxfaicdtfcuavalaeadaqz:fjjjbgecltaecjjjjiGEcbyd1:jjjbHjjjjbbgiBdbaiaeavakalz:gjjjbdnadTmbaoaoNhocbhwabhlcbhkindnaiavalydbgecdtfydbcdtfIdbao9ETmbalclf8PdbhsabawcdtfgqaeBdbaqclfas83dbawcifhwkalcxfhlakcifgkad6mbkkaxcifhlamarcxffcwfhkdninalTmeakydbcbyd:m:jjjbH:bjjjbbakc98fhkalcufhlxbkkarc;Wbf8Kjjjjbawk:FCoDud99rue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:rjjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgqBdxawceBd2aqaeadaicbcbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd1:jjjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbh5cbhPindna3axaPcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5aPcefgPad9hmbxdkkazcFeasz:rjjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa5:ZghaH:tNNNaOaH:taaNa8Aah:tNa8AaH:ta8FNahaO:tNM:va8EMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd1:jjjbHjjjjbbg5BdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbhDcbhYindndndna3axaYcdtgKfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbcehiinaxaecdtgefydbaCSmdamaifheaicefhia3aeaAGgmcdtfgEydbgecu9hmbkkaEaYBdbaDhiaDcefhDxeka5aefydbhika5aKfaiBdbaYcefgYad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:rjjjb8AcbhDcbhekawaecbyd1:jjjbHjjjjbbgeBd3awcvBd2aecbaiz:rjjjbhEavcd4hKdnadTmbdnalTmbaKcdth3a5hCaqhealhmadhAinaEaCydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaecxfheama3fhmaAcufgAmbxdkka5hmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd1:jjjbHjjjjbbgeBdaawcoBd2awaicbyd1:jjjbHjjjjbbg3Bd8KaecFeaYz:rjjjbhxdnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8AaKcdthPalheina8Aaec;81jjbalEgmIdwaEa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndnaxaAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka5clfh5aqcxfhqaeaPfheadaCcefgC9hmbkkabaxaYz:qjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd:m:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Ydidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:rjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbeeeeeebebbeeebeebbbbebebbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:GNbb"),{}).then(function(a){(B=a.instance).exports.__wasm_call_ctors()});function I(a){if(!a)throw new Error("Assertion failed")}function Q(a){return new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}function C(a,i,t,e,o,r,n,s){var c=B.exports.sbrk,D=c(4*s),b=c(t*e),h=c(t*r),w=new Uint8Array(B.exports.memory.buffer);w.set(Q(i),b),o&&w.set(Q(o),h);var f=a(D,b,t,e,h,r,n,s);new Uint8Array(B.exports.memory.buffer);var p=new Uint32Array(f);return Q(p).set(w.subarray(D,D+4*f)),c(D-c(0)),p}var E={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,Regularize:16,Permissive:32,_InternalDebug:1<<30}})(),function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g=WebAssembly.instantiate(function(E){for(var a=new Uint8Array(E.length),i=0;i<E.length;++i){var t=E.charCodeAt(i);a[i]=t>96?t-97:t>64?t-39:t+4}var e=0;for(i=0;i<E.length;++i)a[e++]=a[i]<60?A[a[i]]:64*(a[i]-60)+a[++i];return a.buffer.slice(0,e)}("b9H79TebbbeVx9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gvuuuuueu9Gwuuuuuuuub9Gxuuuuuuuuuuuueu9Gkuuuuuuuuuu99eu9Gouuuuuub9Gruuuuuuub9GluuuubiAOdilvorwDqqDkbiibeilve9Weiiviebeoweuec;G:Odkr;qeDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDE9TW79O9V9Wt9F9J9V9T9W91tW9t9W9OWVW9c9V919U9K7bqL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbkl79IV9RbxDwebcekdszq:x9DOdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:w8KDPue99eux99dui99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:ojjjb8Adndnalcb9imbaoal9nmbamcuaocdtaocFFFFi0Egscbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamascbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8waihsalhAinazasydbcdtfcbBdbasclfhsaAcufgAmbkaihsalhAinazasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkaihsalhCcbhXindnazasydbcdtgQfgAydbcb9imbaHaQfaXBdbaAaAydbgQcjjjj94VBdbaQaXfhXkasclfhsaCcufgCmbkalci9UhLdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhXaHaAydbcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaXcdtfgXaXydbgXcefBdbaOaXcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaihsalhAindnazasydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaHaCfgCaCydbaQ9RBdbkasclfhsaAcufgAmbxdkkamcuaocdtgsaocFFFFi0EgAcbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamaAcbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8wazcbasz:ojjjbhXalci9UhLaihsalhAinaXasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkdnaoTmbcbhsaHhAaXhCaohQinaAasBdbaAclfhAaCydbasfhsaCclfhCaQcufgQmbkkdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhQaHaAydbcdtfgKaKydbgKcefBdbaOaKcdtfasBdbaHaQcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaoTmbcbhsaohAinaHasfgCaCydbaXasfydb9RBdbasclfhsaAcufgAmbkkamaLcbyd;u1jjbHjjjjbbgsBd:OwamclBd;8wascbaLz:ojjjbhYamcuaLcK2alcjjjjd0Ecbyd;u1jjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihAa8AhsaLhrJbbbbh5inavaAclfydbaK2cdtfgCIdlh8EavaAydbaK2cdtfgXIdlhEavaAcwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgasaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbasclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyascxfa8EaE:tg8Eagah:tggNa8FaE:tg8Faaah:tgaN:tgEJbbbbJbbjZa8Ja8K:tg8Ja8FNa8La8K:tg8Ka8EN:tghahNaEaENaaa8KNaga8JN:tgEaENMM:rg8K:va8KJbbbb9BEg8ENUdbasczfaEa8ENUdbascCfaha8ENUdbascwfa8Maya8NMMJbbnn:vUdba5a8KMh5aAcxfhAascKfhsarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;u1jjbHjjjjbbgCBd:WwamcoBd;8waEaq:ZNhEdna3mbcbhsaChAinaAasBdbaAclfhAaLascefgs9hmbkkaE:rhhcuh8PamcuaLcltalcFFFFd0Ecbyd;u1jjbHjjjjbbgIBd:0wamcrBd;8wcbaIa8AaCaLz:djjjb8AJFFuuhyJFFuuh8RJFFuuh8Sdnalci6gXmbJFFuuh8Sa8AhsaLhAJFFuuh8RJFFuuhyinascwfIdbgEayayaE9EEhyasclfIdbgEa8Ra8RaE9EEh8RasIdbgEa8Sa8SaE9EEh8SascKfhsaAcufgAmbkkahJbbbZNhgamaocetgscuaocu9kEcbyd;u1jjbHjjjjbbgABd:4waAcFeasz:ojjjbhCdnaXmbcbhAJFFuuhEa8Ahscuh8PinascwfIdbay:tghahNasIdba8S:tghahNasclfIdba8R:tghahNMM:rghaEa8PcuSahaE9DVgXEhEaAa8PaXEh8PascKfhsaLaAcefgA9hmbkkamczfcbcjwz:ojjjb8Aamcwf9cb83ibam9cb83ibagaxNhRJbbjZak:th8Ncbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80cbh81cbhPinJbbbbhEdna8UTmbJbbjZa8U:Z:vhEkJbbbbhhdna80a80Na8Ya8YNa8Za8ZNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8XaENh5a8WaENh8Fa8VaENhaa8PhQdndndndndna8UaPVTmbamydwgBTmea80ahNh8Ja8ZahNh8La8YahNh8Maeamydbcdtfh83cbh3JFFuuhEcvhXcuhQindnaza83a3cdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAindndnaCaiaAydbgKcx2fgsclfydbgrcetf8Vebcs4aCasydbgLcetf8Vebcs4faCascwfydbglcetf8Vebcs4fgombcbhsxekcehsazaLcdtfydbgLceSmbcehsazarcdtfydbgrceSmbcehsazalcdtfydbglceSmbdnarcdSaLcdSfalcdSfcd6mbaocefhsxekaocdfhskdnasaX9kmba8AaKcK2fgLIdwa5:thhaLIdla8F:th8KaLIdbaa:th8EdndnakJbbbb9DTmba8E:lg8Ea8K:lg8Ka8Ea8K9EEg8Kah:lgha8Kah9EEag:vJbbjZMhhxekahahNa8Ea8ENa8Ka8KNMM:rag:va8NNJbbjZMJ9VO:d86JbbjZaLIdCa8JNaLIdxa8MNa8LaLIdzNMMakN:tghahJ9VO:d869DENhhkaKaQasaX6ahaE9DVgLEhQasaXaLEhXahaEaLEhEkaAclfhAavcufgvmbkka3cefg3aB9hmbkkaQcu9hmekama5Ud:ODama8FUd:KDamaaUd:GDamcuBd:qDamcFFF;7rBdjDaIcba8AaYamc:GDfakJbbbb9Damc:qDfamcjDfz:ejjjbamyd:qDhQdndnaxJbbbb9ETmba8UaD6mbaQcuSmeceh3amIdjDaR9EmixdkaQcu9hmekdna8UTmbdnamydlgza8Uci2fgsciGTmbadasfcba8Uazcu7fciGcefz:ojjjb8AkabaPcltfgzam8Pib83dbazcwfamcwf8Pib83dbaPcefhPkc3hzinazc98Smvamc:Cwfazfydbcbyd;y1jjbH:bjjjbbazc98fhzxbkkcbh3a8Uaq9pmbamydwaCaiaQcx2fgsydbcetf8Vebcs4aCascwfydbcetf8Vebcs4faCasclfydbcetf8Vebcs4ffaw9nmekcbhscbhAdna81TmbcbhAamczfhXinamczfaAcdtfaXydbgLBdbaXclfhXaAaYaLfRbbTfhAa81cufg81mbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDaAc;8eaAclfc:bd6Eh81inamcjDfasfcFFF;7rBdbasclfgscz9hmbka81cdthBdnalTmbaeaXcdtfhocbhrindnazaoarcdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAcuhLcuhsinazaiaAydbgKcx2fgXclfydbcdtfydbazaXydbcdtfydbfazaXcwfydbcdtfydbfgXasaXas6gXEhsaKaLaXEhLaAclfhAavcufgvmbkaLcuSmba8AaLcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEcbhAindndnasamc:qDfaAfgvydbgX6mbasaX9hmeaEamcjDfaAfIdb9FTmekavasBdbamc:GDfaAfaLBdbamcjDfaAfaEUdbxdkaAclfgAcz9hmbkkarcefgral9hmbkkamczfaBfhLcbhscbhAindnamc:GDfasfydbgXcuSmbaLaAcdtfaXBdbaAcefhAkasclfgscz9hmbkaAa81fg81TmbJFFuuhhcuhKamczfhsa81hvcuhLina8AasydbgXcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEdndnazaiaXcx2fgAclfydbcdtfydbazaAydbcdtfydbfazaAcwfydbcdtfydbfgAaL6mbaAaL9hmeaEah9DTmekaEhhaAhLaXhKkasclfhsavcufgvmbkaKcuSmbaKhQkdnamaiaQcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80kcbhXinaOaHaraXcdtfydbcdtgAfydbcdtfgKhsazaAfgvydbgLhAdnaLTmbdninasydbaQSmeasclfhsaAcufgATmdxbkkasaKaLcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaQcK2fgsIdbhEasIdlhhasIdwh8KasIdxh8EasIdzh5asIdCh8FaYaQfce86bba80a8FMh80a8Za5Mh8Za8Ya8EMh8Ya8Xa8KMh8Xa8WahMh8Wa8VaEMh8Vamydxh8Uxbkkamc:WDf8KjjjjbaPk;Vvivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbararydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark:;idiud99dndnabaecitfgwydlgDciGgqciSmbinabcbaDcd4gDalaqcdtfIdbawIdb:tgkJbbbb9FEgwaecefgefadaialavaoarz:ejjjbak:larIdb9FTmdabawaD7aefgecitfgwydlgDciGgqci9hmbkkabaecitfgeclfhbdnavmbcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdwalIdw:tgkakNaqIdbalIdb:tgkakNaqIdlalIdl:tgkakNMM:rgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbxdkkcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdbalIdb:t:lgkaqIdlalIdl:t:lgxakax9EEgkaqIdwalIdw:t:lgxakax9EEgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbkkk;llevudnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0abydxaq9pVakVgDce9hmbavawcltfgxab8Pdb83dbaxcwfabcwfgx8Pdb83dbdnaxydbgqTmbaoabydbcdtfhxaqhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkdnabydxglci2gsabydlgxfgkciGTmbarakfcbalaxcu7fciGcefz:ojjjb8Aabydxci2hsabydlhxabydwhqkab9cb83dwababydbaqfBdbabascifc98GaxfBdlaP8Vebhscbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk8LbabaeadaialavaoarawaDaDaqJbbbbz:cjjjbk;Nkovud99euv99eul998Jjjjjbc:W;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:W:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaoc8Wfawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeaocbBd8Sao9cb83iKao9cb83izaoczfaoc8Wfawci2cxaoc8Sfcbcrz1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:W:qefawcxaoc8Sfcbciz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:W:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:W:qefheaoc8WfhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabaxUd8KabasUdaabazUd3abaCaxaPN:tUdKabaXasaPN:tUdCabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabae86b8UdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabav86bRdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:W;aef8Kjjjjbk;Iwwvul99iud99eue99eul998Jjjjjbcje9Rgr8Kjjjjbavcd4hwaicd4hDdndnaoTmbarc;abfcbaocdtgvz:ojjjb8Aarc;Gbfcbavz:ojjjb8AarhvarcafhiaohqinavcFFF97BdbaicFFF;7rBdbaiclfhiavclfhvaqcufgqmbkdnadTmbcbhkinaeakaD2cdtfgvIdwhxavIdlhmavIdbhPalakaw2cdtfIdbhsarc;abfhzarhiarc;GbfhHarcafhqcj1jjbhvaohOinasavcwfIdbaxNavIdbaPNavclfIdbamNMMgAMhCakhXdnaAas:tgAaqIdbgQ9DgLmbaHydbhXkaHaXBdbakhXdnaCaiIdbgK9EmbazydbhXaKhCkazaXBdbaiaCUdbaqaAaQaLEUdbavcxfhvaqclfhqaHclfhHaiclfhiazclfhzaOcufgOmbkakcefgkad9hmbkkadThkJbbbbhCcbhXarc;abfhvarc;Gbfhicbhqinalavydbgzaw2cdtfIdbalaiydbgHaw2cdtfIdbaeazaD2cdtfgzIdwaeaHaD2cdtfgHIdw:tgsasNazIdbaHIdb:tgsasNazIdlaHIdl:tgsasNMM:rMMgsaCasaC9EgzEhCaqaXazEhXaiclfhiavclfhvaoaqcefgq9hmbkaCJbbbZNhKxekadThkcbhXJbbbbhKkJbbbbhCdnaearc;abfaXcdtgifydbgqaD2cdtfgvIdwaearc;GbfaifydbgzaD2cdtfgiIdwgm:tgsasNavIdbaiIdbgY:tgAaANavIdlaiIdlgP:tgQaQNMM:rgxJbbbb9ETmbaxalaqaw2cdtfIdbMalazaw2cdtfIdb:taxaxM:vhCkasaCNamMhmaQaCNaPMhPaAaCNaYMhYdnakmbaDcdthvawcdthiindnalIdbg8AaecwfIdbam:tgCaCNaeIdbaY:tgsasNaeclfIdbaP:tgAaANMM:rgQMgEaK9ETmbJbbbbhxdnaQJbbbb9ETmbaEaK:taQaQM:vhxkaxaCNamMhmaxaANaPMhPaxasNaYMhYa8AaKaQMMJbbbZNhKkaeavfhealaifhladcufgdmbkkabaKUdxabamUdwabaPUdlabaYUdbarcjef8Kjjjjbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Reeeu8Jjjjjbca9Rgo8Kjjjjbab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbdnadTmbaocbBd3ao9cb83iwao9cb83ibaoaeadaialaoc3falEavcbalEcrz1jjjbabao8Pib83dbabao8Piw83dwkaocaf8Kjjjjbk:3lequ8JjjjjbcjP9Rgl8Kjjjjbcbhvalcjxfcbaiz:ojjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjxfaDcefRbbfRbb9RcFeGci6aoalcjxfaDRbbfRbb9RcFeGci6faoalcjxfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:rjjjb8Aakalcjxffaocefgo86bbaxalcjxffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjxffao86bbarcifhravcefgvad9hmbkalcFeaicetz:ojjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkcetfgw8UebgDcu9kmbawax87ebaocjlfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjlfaDz:njjjb8AalcjPf8Kjjjjbk9teiucbcbyd;C1jjbgeabcifc98GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;C1jjbgeabcrfc94GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;C1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;C1jjbfgdBd;C1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkk9Tdbcjwk9ubbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;uwkxebbbdbbb9GNbb"),{}).then(function(E){(B=E.instance).exports.__wasm_call_ctors()});function I(E){if(!E)throw new Error("Assertion failed")}function Q(E){return new Uint8Array(E.buffer,E.byteOffset,E.byteLength)}function C(E){var a=new Float32Array(B.exports.memory.buffer,E,12);return{centerX:a[0],centerY:a[1],centerZ:a[2],radius:a[3],coneApexX:a[4],coneApexY:a[5],coneApexZ:a[6],coneAxisX:a[7],coneAxisY:a[8],coneAxisZ:a[9],coneCutoff:a[10]}}}();let Og=0;class KE{constructor(A){if(this.downloadParallelism=A.downloadParallelism==null?8:A.downloadParallelism,this.timeout=A.timeout!=null?A.timeout:5e3,this.renderer=A.renderer,this.zUpToYUpMatrix=new V.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems!=null&&(this.maxCachedItems=A.maxCachedItems)),this.gltfLoader=new _C,this.gltfLoader.register(g=>({name:"KHR_spz_gaussian_splats_compression"})),A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const g=new gE;g.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"),this.dracoLoader=g,this.gltfLoader.setDRACOLoader(g),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const g=new hg;g.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.ktx2loader=g,this.gltfLoader.setKTX2Loader(g),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(HE),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new XC(this.gltfLoader),this.GLTFTileDecoder=new ja(this.gltfLoader,this.renderer),this.cache=new VC,this.register={},this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const A=this;Og<A.downloadParallelism&&A._download(),A._loadBatch()}_scheduleDownload(A){this.downloads.unshift(A)}_download(){do{if(this.nextDownloads.length==0&&(this._getNextDownloads(),this.nextDownloads.length==0))return;for(;this.nextDownloads.length>0;){const A=this.nextDownloads.shift();A&&A.shouldDoDownload()&&A.doDownload()}}while(Og<this.downloadParallelism)}_meshReceived(A,g,I,Q,C,E,a){this.ready.unshift([A,g,I,Q,C,E,a])}_loadBatch(){for(this.nextReady.length==0&&this._getNextReady();this.nextReady.length>0;){const A=this.nextReady.shift();if(!A)return;const g=A[0],I=A[1],Q=A[2],C=g.get(Q);C&&I[Q]&&Object.keys(I[Q]).forEach(E=>{const a=I[Q][E];a&&(g.put(Q,a(C)),I[Q][E]=null)}),this.nextReady.length==0&&this._getNextReady()}}_getNextDownloads(){let A=Number.POSITIVE_INFINITY,g=-1;for(let a=this.downloads.length-1;a>=0;a--)this.downloads[a].shouldDoDownload()?this.downloads[a].distanceFunction||this.nextDownloads.push(this.downloads.splice(a,1)[0]):this.downloads.splice(a,1);if(this.nextDownloads.length>0)return;let I,Q=0,C=Number.MAX_SAFE_INTEGER,E=-1;for(let a=this.downloads.length-1;a>=0;a--){const i=this.downloads[a].distanceFunction();i<=A&&(A=i,g=a),Q=Math.max(this.downloads[a].level),this.downloads[a].loadingStrategy!="IMMEDIATE"&&this.downloads[a].level<C&&(C=this.downloads[a].level,E=a)}if(Q>C+4?I=this.downloads.splice(E,1).pop():g>=0&&(I=this.downloads.splice(g,1).pop()),I){this.nextDownloads.push(I);const a=I.getSiblings();for(let i=this.downloads.length-1;i>=0;i--)a.map(t=>t.uuid).includes(this.downloads[i].uuid)&&this.nextDownloads.push(this.downloads.splice(i,1).pop())}}_getNextReady(){let A=Number.POSITIVE_INFINITY,g=-1;for(let I=this.ready.length-1;I>=0;I--)this.ready[I][3]||this.nextReady.push(this.ready.splice(I,1)[0]);if(!(this.nextReady.length>0)){for(let I=this.ready.length-1;I>=0;I--){const Q=this.ready[I][3]()*this.ready[I][5];Q<=A&&(A=Q,g=I)}if(g>=0){const I=this.ready.splice(g,1).pop();this.nextReady.push(I);const Q=I[4]();for(let C=this.ready.length-1;C>=0;C--)Q.map(E=>E.uuid).includes(this.ready[C][6])&&this.nextReady.push(this.ready.splice(C,1).pop())}}}get(A,g,I,Q,C,E,a,i,t,e,o,r){const n=this,s=IC(I),c=new AbortController;if(A.signal.addEventListener("abort",()=>{n.register[s]&&Object.keys(n.register[s]).length!=0||c.abort("user abort")}),!(I.includes(".b3dm")||I.includes(".json")||I.includes(".gltf")||I.includes(".glb")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");if(n.register[s]||(n.register[s]={}),n.register[s][g]&&console.error(" a tile should only be loaded once"),n.register[s][g]=Q,n.cache.get(s))this._meshReceived(n.cache,n.register,s,C,E,a,g);else{let D;I.includes(".b3dm")?D=()=>{var b;b=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Og++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.b3dmDecoder.parseB3DM(h,w=>{n.meshCallback(w,o)},t,e)).then(h=>{n.cache.put(s,h),this._meshReceived(n.cache,n.register,s,C,E,a,g),n._checkSize()}).catch(h=>{}).finally(()=>{Og--})}:I.includes(".glb")||I.includes(".gltf")?D=()=>{var b;b=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Og++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.GLTFTileDecoder.parseSplats(h,t,e,r)).then(h=>{h.isSplatsData||(t&&h.applyMatrix4(this.zUpToYUpMatrix),h.traverse(w=>{w.isMesh&&(e&&w.applyMatrix4(this.zUpToYUpMatrix),n.meshCallback&&n.meshCallback(w,o)),w.isPoints&&n.pointsCallback&&n.pointsCallback(w,o)})),n.cache.put(s,h),n._meshReceived(n.cache,n.register,s,C,E,a,g),n._checkSize()}).catch(h=>{}).finally(()=>{Og--})}:I.includes(".json")&&(D=()=>{var b;b=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Og++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.json()}).then(h=>GQ(h,I)).then(h=>{n.cache.put(s,h),n._meshReceived(n.cache,n.register,s),n._checkSize()}).catch(h=>{console.error(h)}).finally(()=>{Og--})}),this._scheduleDownload({shouldDoDownload:()=>!A.signal.aborted&&!!n.register[s]&&Object.keys(n.register[s]).length>0&&!n.cache.get(s),doDownload:D,distanceFunction:C,getSiblings:E,level:a,loadingStrategy:i,uuid:g})}}clear(){const A=this.maxCachedItems;this.maxCachedItems=0,this._checkSize(),this.maxCachedItems=A}invalidate(A,g){const I=IC(A),Q=this;Q.register[I]&&setTimeout(()=>{Q.register&&Q.register[I]&&(delete Q.register[I][g],Q._checkSize())},Q.timeout)}dispose(){let A=this.cache.head();for(this._disposeEntryContent(A);(A=A.next()).key!=null;)this._disposeEntryContent(A);this.cache.reset(),this.cache=void 0,this.register=void 0,this.dracoLoader&&this.dracoLoader.dispose(),this.ktx2loader&&this.ktx2loader.dispose()}_checkSize(){const A=this;let g=0;for(;A.cache.size()>A.maxCachedItems&&g<A.cache.size();){g++;const I=A.cache.head(),Q=A.register[I.key];Q&&(Object.keys(Q).length>0?(A.cache.remove(I.key),A.cache.put(I.key,I.value)):(A.cache.remove(I.key),delete A.register[I.key],A._disposeEntryContent(I)))}}_disposeEntryContent(A){A.value&&(A.value.isSplatsBatch?A.value.remove():A.value.traverse&&A.value.traverse(g=>{if(g.material)if(g.material.length)for(let I=0;I<g.material.length;++I)g.material[I].dispose();else g.material.dispose();g.geometry&&g.geometry.dispose()}))}}function IC(B){for(var A=B.split("/"),g=[],I=0,Q=0;Q<A.length;Q++){var C=A[Q];C!=="."&&C!==""&&C!==".."?g[I++]=C:C===".."&&I>0&&I--}if(I===0)return"/";var E="";for(Q=0;Q<I;Q++)E+="/"+g[Q];return E}const ZA=[];for(let B=0;B<256;++B)ZA.push((B+256).toString(16).slice(1));let AQ;const Re=new Uint8Array(16),BC={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function jE(B,A,g){if(BC.randomUUID&&!B)return BC.randomUUID();const I=(B=B||{}).random??B.rng?.()??function(){if(!AQ){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");AQ=crypto.getRandomValues.bind(crypto)}return AQ(Re)}();if(I.length<16)throw new Error("Random bytes length must be >= 16");return I[6]=15&I[6]|64,I[8]=63&I[8]|128,function(Q,C=0){return(ZA[Q[C+0]]+ZA[Q[C+1]]+ZA[Q[C+2]]+ZA[Q[C+3]]+"-"+ZA[Q[C+4]]+ZA[Q[C+5]]+"-"+ZA[Q[C+6]]+ZA[Q[C+7]]+"-"+ZA[Q[C+8]]+ZA[Q[C+9]]+"-"+ZA[Q[C+10]]+ZA[Q[C+11]]+ZA[Q[C+12]]+ZA[Q[C+13]]+ZA[Q[C+14]]+ZA[Q[C+15]]).toLowerCase()}(I)}var QC,CC,_g=function(){if(CC)return QC;function B(I){if(typeof I!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(I))}function A(I,Q){for(var C,E="",a=0,i=-1,t=0,e=0;e<=I.length;++e){if(e<I.length)C=I.charCodeAt(e);else{if(C===47)break;C=47}if(C===47){if(!(i===e-1||t===1))if(i!==e-1&&t===2){if(E.length<2||a!==2||E.charCodeAt(E.length-1)!==46||E.charCodeAt(E.length-2)!==46){if(E.length>2){var o=E.lastIndexOf("/");if(o!==E.length-1){o===-1?(E="",a=0):a=(E=E.slice(0,o)).length-1-E.lastIndexOf("/"),i=e,t=0;continue}}else if(E.length===2||E.length===1){E="",a=0,i=e,t=0;continue}}Q&&(E.length>0?E+="/..":E="..",a=2)}else E.length>0?E+="/"+I.slice(i+1,e):E=I.slice(i+1,e),a=e-i-1;i=e,t=0}else C===46&&t!==-1?++t:t=-1}return E}CC=1;var g={resolve:function(){for(var I,Q="",C=!1,E=arguments.length-1;E>=-1&&!C;E--){var a;E>=0?a=arguments[E]:(I===void 0&&(I=process.cwd()),a=I),B(a),a.length!==0&&(Q=a+"/"+Q,C=a.charCodeAt(0)===47)}return Q=A(Q,!C),C?Q.length>0?"/"+Q:"/":Q.length>0?Q:"."},normalize:function(I){if(B(I),I.length===0)return".";var Q=I.charCodeAt(0)===47,C=I.charCodeAt(I.length-1)===47;return(I=A(I,!Q)).length!==0||Q||(I="."),I.length>0&&C&&(I+="/"),Q?"/"+I:I},isAbsolute:function(I){return B(I),I.length>0&&I.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var I,Q=0;Q<arguments.length;++Q){var C=arguments[Q];B(C),C.length>0&&(I===void 0?I=C:I+="/"+C)}return I===void 0?".":g.normalize(I)},relative:function(I,Q){if(B(I),B(Q),I===Q||(I=g.resolve(I))===(Q=g.resolve(Q)))return"";for(var C=1;C<I.length&&I.charCodeAt(C)===47;++C);for(var E=I.length,a=E-C,i=1;i<Q.length&&Q.charCodeAt(i)===47;++i);for(var t=Q.length-i,e=a<t?a:t,o=-1,r=0;r<=e;++r){if(r===e){if(t>e){if(Q.charCodeAt(i+r)===47)return Q.slice(i+r+1);if(r===0)return Q.slice(i+r)}else a>e&&(I.charCodeAt(C+r)===47?o=r:r===0&&(o=0));break}var n=I.charCodeAt(C+r);if(n!==Q.charCodeAt(i+r))break;n===47&&(o=r)}var s="";for(r=C+o+1;r<=E;++r)r!==E&&I.charCodeAt(r)!==47||(s.length===0?s+="..":s+="/..");return s.length>0?s+Q.slice(i+o):(i+=o,Q.charCodeAt(i)===47&&++i,Q.slice(i))},_makeLong:function(I){return I},dirname:function(I){if(B(I),I.length===0)return".";for(var Q=I.charCodeAt(0),C=Q===47,E=-1,a=!0,i=I.length-1;i>=1;--i)if((Q=I.charCodeAt(i))===47){if(!a){E=i;break}}else a=!1;return E===-1?C?"/":".":C&&E===1?"//":I.slice(0,E)},basename:function(I,Q){if(Q!==void 0&&typeof Q!="string")throw new TypeError('"ext" argument must be a string');B(I);var C,E=0,a=-1,i=!0;if(Q!==void 0&&Q.length>0&&Q.length<=I.length){if(Q.length===I.length&&Q===I)return"";var t=Q.length-1,e=-1;for(C=I.length-1;C>=0;--C){var o=I.charCodeAt(C);if(o===47){if(!i){E=C+1;break}}else e===-1&&(i=!1,e=C+1),t>=0&&(o===Q.charCodeAt(t)?--t==-1&&(a=C):(t=-1,a=e))}return E===a?a=e:a===-1&&(a=I.length),I.slice(E,a)}for(C=I.length-1;C>=0;--C)if(I.charCodeAt(C)===47){if(!i){E=C+1;break}}else a===-1&&(i=!1,a=C+1);return a===-1?"":I.slice(E,a)},extname:function(I){B(I);for(var Q=-1,C=0,E=-1,a=!0,i=0,t=I.length-1;t>=0;--t){var e=I.charCodeAt(t);if(e!==47)E===-1&&(a=!1,E=t+1),e===46?Q===-1?Q=t:i!==1&&(i=1):Q!==-1&&(i=-1);else if(!a){C=t+1;break}}return Q===-1||E===-1||i===0||i===1&&Q===E-1&&Q===C+1?"":I.slice(Q,E)},format:function(I){if(I===null||typeof I!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof I);return function(Q,C){var E=C.dir||C.root,a=C.base||(C.name||"")+(C.ext||"");return E?E===C.root?E+a:E+Q+a:a}("/",I)},parse:function(I){B(I);var Q={root:"",dir:"",base:"",ext:"",name:""};if(I.length===0)return Q;var C,E=I.charCodeAt(0),a=E===47;a?(Q.root="/",C=1):C=0;for(var i=-1,t=0,e=-1,o=!0,r=I.length-1,n=0;r>=C;--r)if((E=I.charCodeAt(r))!==47)e===-1&&(o=!1,e=r+1),E===46?i===-1?i=r:n!==1&&(n=1):i!==-1&&(n=-1);else if(!o){t=r+1;break}return i===-1||e===-1||n===0||n===1&&i===e-1&&i===t+1?e!==-1&&(Q.base=Q.name=t===0&&a?I.slice(1,e):I.slice(t,e)):(t===0&&a?(Q.name=I.slice(1,i),Q.base=I.slice(1,e)):(Q.name=I.slice(t,i),Q.base=I.slice(t,e)),Q.ext=I.slice(i,e)),t>0?Q.dir=I.slice(0,t-1):a&&(Q.dir="/"),Q},sep:"/",delimiter:":",win32:null,posix:null};return g.posix=g,QC=g}();function bB(){return bB=Object.assign?Object.assign.bind():function(B){for(var A=1;A<arguments.length;A++){var g=arguments[A];for(var I in g)({}).hasOwnProperty.call(g,I)&&(B[I]=g[I])}return B},bB.apply(null,arguments)}var qE={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function pe(B,A){if(nB(B,A))return B[A];throw typeof B[A]=="function"&&function(g,I){return g==null||typeof g[I]!="function"||uB(g,I)&&Object.getPrototypeOf&&I in Object.getPrototypeOf(g)?!1:uB(ke,I)?!0:!(I in Object.prototype||I in Function.prototype)}(B,A)?new Error('Cannot access method "'+A+'" as a property'):new Error('No access to property "'+A+'"')}function nB(B,A){return!(!function(g){return typeof g=="object"&&g&&g.constructor===Object}(B)&&!Array.isArray(B))&&(!!uB(Ne,A)||!(A in Object.prototype)&&!(A in Function.prototype))}var Ne={length:!0,name:!0},ke={toString:!0,valueOf:!0,toLocaleString:!0};class Ue{constructor(A){this.wrappedObject=A,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(A=>this.has(A)).values()}get(A){return pe(this.wrappedObject,A)}set(A,g){return function(I,Q,C){if(nB(I,Q))return I[Q]=C,C;throw new Error('No access to property "'+Q+'"')}(this.wrappedObject,A,g),this}has(A){return nB(this.wrappedObject,A)&&A in this.wrappedObject}entries(){return function(A,g){return{next:()=>{var I=A.next();return I.done?I:{value:g(I.value),done:!1}}}}(this.keys(),A=>[A,this.get(A)])}forEach(A){for(var g of this.keys())A(this.get(g),g,this)}delete(A){nB(this.wrappedObject,A)&&delete this.wrappedObject[A]}clear(){for(var A of this.keys())this.delete(A)}get size(){return Object.keys(this.wrappedObject).length}}function UA(B){return typeof B=="number"}function WA(B){return!(!B||typeof B!="object"||typeof B.constructor!="function")&&(B.isBigNumber===!0&&typeof B.constructor.prototype=="object"&&B.constructor.prototype.isBigNumber===!0||typeof B.constructor.isDecimal=="function"&&B.constructor.isDecimal(B)===!0)}function me(B){return typeof B=="bigint"}function vE(B){return B&&typeof B=="object"&&Object.getPrototypeOf(B).isComplex===!0||!1}function TE(B){return B&&typeof B=="object"&&Object.getPrototypeOf(B).isFraction===!0||!1}function OE(B){return B&&B.constructor.prototype.isUnit===!0||!1}function pg(B){return typeof B=="string"}var VA=Array.isArray;function qA(B){return B&&B.constructor.prototype.isMatrix===!0||!1}function wB(B){return Array.isArray(B)||qA(B)}function Se(B){return B&&B.isDenseMatrix&&B.constructor.prototype.isMatrix===!0||!1}function Le(B){return B&&B.isSparseMatrix&&B.constructor.prototype.isMatrix===!0||!1}function Je(B){return B&&B.constructor.prototype.isRange===!0||!1}function RQ(B){return B&&B.constructor.prototype.isIndex===!0||!1}function Ye(B){return typeof B=="boolean"}function xe(B){return B&&B.constructor.prototype.isResultSet===!0||!1}function He(B){return B&&B.constructor.prototype.isHelp===!0||!1}function Ke(B){return typeof B=="function"}function je(B){return B instanceof Date}function qe(B){return B instanceof RegExp}function pQ(B){return!(!B||typeof B!="object"||B.constructor!==Object||vE(B)||TE(B))}function ve(B){return!!B&&(B instanceof Map||B instanceof Ue||typeof B.set=="function"&&typeof B.get=="function"&&typeof B.keys=="function"&&typeof B.has=="function")}function Te(B){return B===null}function Oe(B){return B===void 0}function We(B){return B&&B.isAccessorNode===!0&&B.constructor.prototype.isNode===!0||!1}function Pe(B){return B&&B.isArrayNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ve(B){return B&&B.isAssignmentNode===!0&&B.constructor.prototype.isNode===!0||!1}function ze(B){return B&&B.isBlockNode===!0&&B.constructor.prototype.isNode===!0||!1}function Xe(B){return B&&B.isConditionalNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ze(B){return B&&B.isConstantNode===!0&&B.constructor.prototype.isNode===!0||!1}function _e(B){return B&&B.isFunctionAssignmentNode===!0&&B.constructor.prototype.isNode===!0||!1}function $e(B){return B&&B.isFunctionNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ai(B){return B&&B.isIndexNode===!0&&B.constructor.prototype.isNode===!0||!1}function gi(B){return B&&B.isNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ii(B){return B&&B.isObjectNode===!0&&B.constructor.prototype.isNode===!0||!1}function Bi(B){return B&&B.isOperatorNode===!0&&B.constructor.prototype.isNode===!0||!1}function Qi(B){return B&&B.isParenthesisNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ci(B){return B&&B.isRangeNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ei(B){return B&&B.isRelationalNode===!0&&B.constructor.prototype.isNode===!0||!1}function ai(B){return B&&B.isSymbolNode===!0&&B.constructor.prototype.isNode===!0||!1}function ei(B){return B&&B.constructor.prototype.isChain===!0||!1}function $g(B){var A=typeof B;return A==="object"?B===null?"null":WA(B)?"BigNumber":B.constructor&&B.constructor.name?B.constructor.name:"Object":A}function jA(B){var A=typeof B;if(A==="number"||A==="bigint"||A==="string"||A==="boolean"||B==null)return B;if(typeof B.clone=="function")return B.clone();if(Array.isArray(B))return B.map(function(g){return jA(g)});if(B instanceof Date)return new Date(B.valueOf());if(WA(B))return B;if(pQ(B))return function(g,I){var Q={};for(var C in g)uB(g,C)&&(Q[C]=I(g[C]));return Q}(B,jA);if(A==="function")return B;throw new TypeError("Cannot clone: unknown type of value (value: ".concat(B,")"))}function pI(B,A){var g,I,Q;if(Array.isArray(B)){if(!Array.isArray(A)||B.length!==A.length)return!1;for(I=0,Q=B.length;I<Q;I++)if(!pI(B[I],A[I]))return!1;return!0}if(typeof B=="function")return B===A;if(B instanceof Object){if(Array.isArray(A)||!(A instanceof Object))return!1;for(g in B)if(!(g in A)||!pI(B[g],A[g]))return!1;for(g in A)if(!(g in B))return!1;return!0}return B===A}function uB(B,A){return B&&Object.hasOwnProperty.call(B,A)}var iI=function(B){if(B)throw new Error(`The global config is readonly.
|
|
898
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([i])),this.transcoderBinary=E,this.workerPool.setWorkerCreator(()=>{const t=new Worker(this.workerSourceURL),e=this.transcoderBinary.slice(0);return t.postMessage({type:"init",config:this.workerConfig,transcoderBinary:e},[e]),t})}),zB>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),zB++}return this.transcoderPending}load(A,g,I,Q){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const C=new d.FileLoader(this.manager);C.setPath(this.path),C.setCrossOrigin(this.crossOrigin),C.setWithCredentials(this.withCredentials),C.setResponseType("arraybuffer"),C.load(A,E=>{this.parse(E,g,Q)},I,Q)}parse(A,g,I){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(PB.has(A))return PB.get(A).promise.then(g).catch(I);this._createTexture(A).then(Q=>g?g(Q):null).catch(I)}_createTextureFrom(A,g){const{type:I,error:Q,data:{faces:C,width:E,height:a,format:i,type:t,dfdFlags:e}}=A;if(I==="error")return Promise.reject(Q);let o;if(g.faceCount===6)o=new d.CompressedCubeTexture(C,i,t);else{const r=C[0].mipmaps;o=g.layerCount>1?new d.CompressedArrayTexture(r,E,a,g.layerCount,i,t):new d.CompressedTexture(r,E,a,i,t)}return o.minFilter=C[0].mipmaps.length===1?d.LinearFilter:d.LinearMipmapLinearFilter,o.magFilter=d.LinearFilter,o.generateMipmaps=!1,o.needsUpdate=!0,o.colorSpace=ZQ(g),o.premultiplyAlpha=!!(1&e),o}async _createTexture(A,g={}){const I=function(a){const i=new Uint8Array(a.buffer,a.byteOffset,Bg.length);if(i[0]!==Bg[0]||i[1]!==Bg[1]||i[2]!==Bg[2]||i[3]!==Bg[3]||i[4]!==Bg[4]||i[5]!==Bg[5]||i[6]!==Bg[6]||i[7]!==Bg[7]||i[8]!==Bg[8]||i[9]!==Bg[9]||i[10]!==Bg[10]||i[11]!==Bg[11])throw new Error("Missing KTX 2.0 identifier.");const t={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},e=17*Uint32Array.BYTES_PER_ELEMENT,o=new KI(a,Bg.length,e,!0);t.vkFormat=o._nextUint32(),t.typeSize=o._nextUint32(),t.pixelWidth=o._nextUint32(),t.pixelHeight=o._nextUint32(),t.pixelDepth=o._nextUint32(),t.layerCount=o._nextUint32(),t.faceCount=o._nextUint32(),t.levelCount=o._nextUint32(),t.supercompressionScheme=o._nextUint32();const r=o._nextUint32(),n=o._nextUint32(),s=o._nextUint32(),c=o._nextUint32(),D=o._nextUint64(),b=o._nextUint64(),h=3*Math.max(t.levelCount,1)*8,w=new KI(a,Bg.length+e,h,!0);for(let tA=0,rA=Math.max(t.levelCount,1);tA<rA;tA++)t.levels.push({levelData:new Uint8Array(a.buffer,a.byteOffset+w._nextUint64(),w._nextUint64()),uncompressedByteLength:w._nextUint64()});const f=new KI(a,r,n,!0);f._skip(4);const p=f._nextUint16(),R=f._nextUint16(),U=f._nextUint16(),G=f._nextUint16(),k={vendorId:p,descriptorType:R,versionNumber:U,colorModel:f._nextUint8(),colorPrimaries:f._nextUint8(),transferFunction:f._nextUint8(),flags:f._nextUint8(),texelBlockDimension:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],bytesPlane:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],samples:[]},J=(G/4-6)/4;for(let tA=0;tA<J;tA++){const rA={bitOffset:f._nextUint16(),bitLength:f._nextUint8(),channelType:f._nextUint8(),samplePosition:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&rA.channelType?(rA.sampleLower=f._nextInt32(),rA.sampleUpper=f._nextInt32()):(rA.sampleLower=f._nextUint32(),rA.sampleUpper=f._nextUint32()),k.samples[tA]=rA}t.dataFormatDescriptor.length=0,t.dataFormatDescriptor.push(k);const m=new KI(a,s,c,!0);for(;m._offset<c;){const tA=m._nextUint32(),rA=m._scan(tA),LA=zQ(rA);if(t.keyValue[LA]=m._nextUint8Array(tA-rA.byteLength-1),LA.match(/^ktx/i)){const KA=zQ(t.keyValue[LA]);t.keyValue[LA]=KA.substring(0,KA.lastIndexOf("\0"))}m._skip(tA%4?4-tA%4:0)}if(b<=0)return t;const O=new KI(a,D,b,!0),X=O._nextUint16(),IA=O._nextUint16(),AA=O._nextUint32(),Z=O._nextUint32(),aA=O._nextUint32(),uA=O._nextUint32(),nA=[];for(let tA=0,rA=Math.max(t.levelCount,1);tA<rA;tA++)nA.push({imageFlags:O._nextUint32(),rgbSliceByteOffset:O._nextUint32(),rgbSliceByteLength:O._nextUint32(),alphaSliceByteOffset:O._nextUint32(),alphaSliceByteLength:O._nextUint32()});const MA=D+O._offset,lA=MA+AA,eA=lA+Z,pA=eA+aA,hA=new Uint8Array(a.buffer,a.byteOffset+MA,AA),bA=new Uint8Array(a.buffer,a.byteOffset+lA,Z),fA=new Uint8Array(a.buffer,a.byteOffset+eA,aA),GA=new Uint8Array(a.buffer,a.byteOffset+pA,uA);return t.globalData={endpointCount:X,selectorCount:IA,imageDescs:nA,endpointsData:hA,selectorsData:bA,tablesData:fA,extendedData:GA},t}(new Uint8Array(A)),Q=I.vkFormat===MQ&&I.dataFormatDescriptor[0].colorModel===167;if(!(I.vkFormat===0||Q&&!this.workerConfig.astcHDRSupported))return async function(a){const{vkFormat:i}=a;if(XB[i]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+i);DI[i]===void 0&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+i);let t;a.supercompressionScheme===2&&(VB||(VB=new Promise(async n=>{const s=new ye;await s.init(),n(s)})),t=await VB);const e=[];for(let n=0;n<a.levels.length;n++){const s=Math.max(1,a.pixelWidth>>n),c=Math.max(1,a.pixelHeight>>n),D=a.pixelDepth?Math.max(1,a.pixelDepth>>n):0,b=a.levels[n];let h,w;if(a.supercompressionScheme===0)h=b.levelData;else{if(a.supercompressionScheme!==2)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");h=t.decode(b.levelData,b.uncompressedByteLength)}w=DI[i]===d.FloatType?new Float32Array(h.buffer,h.byteOffset,h.byteLength/Float32Array.BYTES_PER_ELEMENT):DI[i]===d.HalfFloatType?new Uint16Array(h.buffer,h.byteOffset,h.byteLength/Uint16Array.BYTES_PER_ELEMENT):DI[i]===d.UnsignedInt5999Type||DI[i]===d.UnsignedInt101111Type?new Uint32Array(h.buffer,h.byteOffset,h.byteLength/Uint32Array.BYTES_PER_ELEMENT):h,e.push({data:w,width:s,height:c,depth:D})}const o=a.levelCount===0||e.length>1;let r;if(Me.has(XB[i]))r=a.pixelDepth===0?new d.DataTexture(e[0].data,a.pixelWidth,a.pixelHeight):new d.Data3DTexture(e[0].data,a.pixelWidth,a.pixelHeight,a.pixelDepth),r.minFilter=o?d.NearestMipmapNearestFilter:d.NearestFilter,r.magFilter=d.NearestFilter,r.generateMipmaps=a.levelCount===0;else{if(a.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");r=new d.CompressedTexture(e,a.pixelWidth,a.pixelHeight),r.minFilter=o?d.LinearMipmapLinearFilter:d.LinearFilter,r.magFilter=d.LinearFilter}return r.mipmaps=e,r.type=DI[i],r.format=XB[i],r.colorSpace=ZQ(a),r.needsUpdate=!0,Promise.resolve(r)}(I);const C=g,E=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:C},[A])).then(a=>this._createTextureFrom(a.data,I));return PB.set(A,{promise:E}),E}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),zB--}}hg.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},hg.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},hg.EngineFormat={RGBAFormat:d.RGBAFormat,RGBA_ASTC_4x4_Format:d.RGBA_ASTC_4x4_Format,RGB_BPTC_UNSIGNED_Format:d.RGB_BPTC_UNSIGNED_Format,RGBA_BPTC_Format:d.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:d.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:d.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:d.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:d.RGB_ETC1_Format,RGB_ETC2_Format:d.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:d.RGB_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format:d.RGBA_S3TC_DXT1_Format},hg.EngineType={UnsignedByteType:d.UnsignedByteType,HalfFloatType:d.HalfFloatType,FloatType:d.FloatType},hg.BasisWorker=function(){let B,A,g;const I=_EngineFormat,Q=_EngineType,C=_TranscoderFormat,E=_BasisFormat;self.addEventListener("message",function(o){const r=o.data;switch(r.type){case"init":B=r.config,n=r.transcoderBinary,A=new Promise(s=>{g={wasmBinary:n,onRuntimeInitialized:s},BASIS(g)}).then(()=>{g.initializeBasis(),g.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":A.then(()=>{try{const{faces:s,buffers:c,width:D,height:b,hasAlpha:h,format:w,type:f,dfdFlags:p}=function(R){const U=new g.KTX2File(new Uint8Array(R));function G(){U.close(),U.delete()}if(!U.isValid())throw G(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let k;if(U.isUASTC())k=E.UASTC;else if(U.isETC1S())k=E.ETC1S;else{if(!U.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");k=E.UASTC_HDR}const J=U.getWidth(),m=U.getHeight(),O=U.getLayers()||1,X=U.getLevels(),IA=U.getFaces(),AA=U.getHasAlpha(),Z=U.getDFDFlags(),{transcoderFormat:aA,engineFormat:uA,engineType:nA}=function(eA,pA,hA,bA){const fA=i[eA];for(let GA=0;GA<fA.length;GA++){const tA=fA[GA];if(!(tA.if&&!B[tA.if])&&tA.basisFormat.includes(eA)&&!(bA&&tA.transcoderFormat.length<2)&&!(tA.needsPowerOfTwo&&(!t(pA)||!t(hA))))return{transcoderFormat:tA.transcoderFormat[bA?1:0],engineFormat:tA.engineFormat[bA?1:0],engineType:tA.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(k,J,m,AA);if(!J||!m||!X)throw G(),new Error("THREE.KTX2Loader: Invalid texture");if(!U.startTranscoding())throw G(),new Error("THREE.KTX2Loader: .startTranscoding failed");const MA=[],lA=[];for(let eA=0;eA<IA;eA++){const pA=[];for(let hA=0;hA<X;hA++){const bA=[];let fA,GA;for(let rA=0;rA<O;rA++){const LA=U.getImageLevelInfo(hA,rA,eA);eA!==0||hA!==0||rA!==0||LA.origWidth%4==0&&LA.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),X>1?(fA=LA.origWidth,GA=LA.origHeight):(fA=LA.width,GA=LA.height);let KA=new Uint8Array(U.getImageTranscodedSizeInBytes(hA,rA,0,aA));const ig=U.transcodeImage(KA,hA,rA,eA,aA,0,-1,-1);if(nA===Q.HalfFloatType&&(KA=new Uint16Array(KA.buffer,KA.byteOffset,KA.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!ig)throw G(),new Error("THREE.KTX2Loader: .transcodeImage failed.");bA.push(KA)}const tA=e(bA);pA.push({data:tA,width:fA,height:GA}),lA.push(tA.buffer)}MA.push({mipmaps:pA,width:J,height:m,format:uA,type:nA})}return G(),{faces:MA,buffers:lA,width:J,height:m,hasAlpha:AA,dfdFlags:Z,format:uA,type:nA}}(r.buffer);self.postMessage({type:"transcode",id:r.id,data:{faces:s,width:D,height:b,hasAlpha:h,format:w,type:f,dfdFlags:p}},c)}catch(s){console.error(s),self.postMessage({type:"error",id:r.id,error:s.message})}})}var n});const a=[{if:"astcSupported",basisFormat:[E.UASTC],transcoderFormat:[C.ASTC_4x4,C.ASTC_4x4],engineFormat:[I.RGBA_ASTC_4x4_Format,I.RGBA_ASTC_4x4_Format],engineType:[Q.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.BC7_M5,C.BC7_M5],engineFormat:[I.RGBA_BPTC_Format,I.RGBA_BPTC_Format],engineType:[Q.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.BC1,C.BC3],engineFormat:[I.RGBA_S3TC_DXT1_Format,I.RGBA_S3TC_DXT5_Format],engineType:[Q.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.ETC1,C.ETC2],engineFormat:[I.RGB_ETC2_Format,I.RGBA_ETC2_EAC_Format],engineType:[Q.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.ETC1],engineFormat:[I.RGB_ETC1_Format],engineType:[Q.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.PVRTC1_4_RGB,C.PVRTC1_4_RGBA],engineFormat:[I.RGB_PVRTC_4BPPV1_Format,I.RGBA_PVRTC_4BPPV1_Format],engineType:[Q.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[E.UASTC_HDR],transcoderFormat:[C.BC6H],engineFormat:[I.RGB_BPTC_UNSIGNED_Format],engineType:[Q.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.RGBA32,C.RGBA32],engineFormat:[I.RGBAFormat,I.RGBAFormat],engineType:[Q.UnsignedByteType,Q.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[E.UASTC_HDR],transcoderFormat:[C.RGBA_HALF],engineFormat:[I.RGBAFormat],engineType:[Q.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],i={[E.ETC1S]:a.filter(o=>o.basisFormat.includes(E.ETC1S)).sort((o,r)=>o.priorityUASTC-r.priorityUASTC),[E.UASTC]:a.filter(o=>o.basisFormat.includes(E.UASTC)).sort((o,r)=>o.priorityUASTC-r.priorityUASTC),[E.UASTC_HDR]:a.filter(o=>o.basisFormat.includes(E.UASTC_HDR)).sort((o,r)=>o.priorityHDR-r.priorityHDR)};function t(o){return o<=2||!(o&o-1)&&o!==0}function e(o){if(o.length===1)return o[0];let r=0;for(let c=0;c<o.length;c++)r+=o[c].byteLength;const n=new Uint8Array(r);let s=0;for(let c=0;c<o.length;c++){const D=o[c];n.set(D,s),s+=D.byteLength}return n}};const Me=new Set([d.RGBAFormat,d.RGBFormat,d.RGFormat,d.RedFormat]),XB={[rE]:d.RGBAFormat,[nE]:d.RGFormat,[oE]:d.RedFormat,[tE]:d.RGBAFormat,[iE]:d.RGFormat,[eE]:d.RedFormat,[aE]:d.RGBAFormat,[EE]:d.RGBAFormat,[CE]:d.RGFormat,[QE]:d.RGFormat,[BE]:d.RedFormat,[IE]:d.RedFormat,[cE]:d.RGBFormat,[sE]:d.RGBFormat,[pE]:d.RGBA_ETC2_EAC_Format,[RE]:d.RGB_ETC2_Format,[MQ]:d.RGBA_ASTC_4x4_Format,[kE]:d.RGBA_ASTC_4x4_Format,[NE]:d.RGBA_ASTC_4x4_Format,[xE]:d.RGBA_ASTC_6x6_Format,[mE]:d.RGBA_ASTC_6x6_Format,[UE]:d.RGBA_ASTC_6x6_Format,[bE]:d.RGBA_S3TC_DXT1_Format,[dE]:d.RGBA_S3TC_DXT1_Format,[DE]:d.RGB_S3TC_DXT1_Format,[hE]:d.RGB_S3TC_DXT1_Format,[uE]:d.RGBA_S3TC_DXT3_Format,[wE]:d.RGBA_S3TC_DXT3_Format,[fE]:d.SIGNED_RED_RGTC1_Format,[lE]:d.RED_RGTC1_Format,[yE]:d.SIGNED_RED_GREEN_RGTC2_Format,[FE]:d.RED_GREEN_RGTC2_Format,[GE]:d.RGBA_BPTC_Format,[ME]:d.RGBA_BPTC_Format,[YE]:d.RGBA_PVRTC_4BPPV1_Format,[LE]:d.RGBA_PVRTC_4BPPV1_Format,[JE]:d.RGBA_PVRTC_2BPPV1_Format,[SE]:d.RGBA_PVRTC_2BPPV1_Format},DI={[rE]:d.FloatType,[nE]:d.FloatType,[oE]:d.FloatType,[tE]:d.HalfFloatType,[iE]:d.HalfFloatType,[eE]:d.HalfFloatType,[aE]:d.UnsignedByteType,[EE]:d.UnsignedByteType,[CE]:d.UnsignedByteType,[QE]:d.UnsignedByteType,[BE]:d.UnsignedByteType,[IE]:d.UnsignedByteType,[cE]:d.UnsignedInt5999Type,[sE]:d.UnsignedInt101111Type,[pE]:d.UnsignedByteType,[RE]:d.UnsignedByteType,[MQ]:d.HalfFloatType,[kE]:d.UnsignedByteType,[NE]:d.UnsignedByteType,[xE]:d.HalfFloatType,[mE]:d.UnsignedByteType,[UE]:d.UnsignedByteType,[bE]:d.UnsignedByteType,[dE]:d.UnsignedByteType,[DE]:d.UnsignedByteType,[hE]:d.UnsignedByteType,[uE]:d.UnsignedByteType,[wE]:d.UnsignedByteType,[fE]:d.UnsignedByteType,[lE]:d.UnsignedByteType,[yE]:d.UnsignedByteType,[FE]:d.UnsignedByteType,[GE]:d.UnsignedByteType,[ME]:d.UnsignedByteType,[YE]:d.UnsignedByteType,[LE]:d.UnsignedByteType,[JE]:d.UnsignedByteType,[SE]:d.UnsignedByteType};function ZQ(B){const A=B.dataFormatDescriptor[0];return A.colorPrimaries===1?A.transferFunction===2?d.SRGBColorSpace:d.LinearSRGBColorSpace:A.colorPrimaries===10?A.transferFunction===2?"display-p3":"display-p3-linear":(A.colorPrimaries===0||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),d.NoColorSpace)}async function _Q(B){const A=B.split("?")[0].split(".").pop(),g=await fetch(B);if(!g.ok)throw new Error(`Failed to fetch ${B}: ${g.statusText}`);if(A==="json"){const I=await g.json();return handleJSONSubtree(I,$Q(B))}if(A==="subtree")return async function(I,Q){const C=new DataView(I),E=C.getBigUint64(8,!0),a=C.getBigUint64(16,!0),i=24,t=i+Number(E),e=t+(8-t%8)%8,o=e+Number(a),r=I.slice(i,t),n=new TextDecoder().decode(r).trim(),s=JSON.parse(n);if(!s.buffers)throw new Error("subtree has no buffers");const c=s.buffers.map(async b=>{if(b.uri){const h=new URL(b.uri,Q).href,w=await fetch(h);if(!w.ok)throw new Error(`Failed to fetch binary file ${h}: ${w.statusText}`);return new Uint8Array(await w.arrayBuffer())}return new Uint8Array(I.slice(e,o))}),D=await Promise.all(c);return function(b,h){function w(G,k){if(!G)throw new Error("incomplete json subtree");if(G.constant){if(G.constant==0)return!1;if(G.constant==1)return!0}if(G.bitstream==null)throw new Error('json subtree "tileAvailability" does not specify a bitstream');if(!b.bufferViews||!b.bufferViews[G.bitstream])throw new Error('json subtree "bufferViews" does not specify a bitstream');const J=b.bufferViews[G.bitstream];return f(h[J.buffer],J.byteOffset,k)}function f(G,k,J){const m=J%8;return G[k+Math.floor(J/8)]>>m&!0}function p(G){let k=0;return k=G.z==null?ZB(G.x,G.y,G.level):$B(G.x,G.y,G.z,G.level),w(b.tileAvailability,k)}function R(G){let k=0;k=G.z==null?ZB(G.x,G.y,G.level):$B(G.x,G.y,G.z,G.level);const J=[];return b.contentAvailability.forEach(m=>{J.push(w(m,k))}),J}function U(G){let k=0;return k=G.z==null?ZB(G.x,G.y):$B(G.x,G.y,G.z),w(b.childSubtreeAvailability,k)}return{isTileAvailable:p,isContentAvailable:R,isChildSubtreeAvailable:U}}(s,D)}(await g.arrayBuffer(),$Q(B));throw new Error(`Unsupported file extension: ${A}`)}function $Q(B){const A=B.split("?")[0];return A.substring(0,A.lastIndexOf("/")+1)}function AC(B){return B=1431655765&((B=858993459&((B=252645135&((B=16711935&((B&=65535)^B<<8))^B<<4))^B<<2))^B<<1)}function ZB(B,A,g){let I=0;return g&&(I=(Math.pow(4,g)-1)/3),I+(AC(B)|AC(A)<<1)}function _B(B){return B=153391689&((B=51130563&((B=50393103&((B=4278190335&((B&=1023)^B<<16))^B<<8))^B<<4))^B<<2)}function $B(B,A,g,I){let Q=0;return I&&(Q=(Math.pow(8,I)-1)/7),Q+(_B(B)|_B(A)<<1|_B(g)<<2)}const jI=new Map;async function GQ(B,A){if(!B.root||!B.root.implicitTiling)return B;if(!B.root.content&&!B.root.contents)throw new Error("implicit tiling requires a Template URI");let g=!0;B.root.implicitTiling.subdivisionScheme&&(g=B.root.implicitTiling.subdivisionScheme.toUpperCase()==="QUADTREE");let I="";B.root.implicitTiling.subtrees&&(B.root.implicitTiling.subtrees.uri?I=B.root.implicitTiling.subtrees.uri:B.root.implicitTiling.subtrees.url&&(I=B.root.implicitTiling.subtrees.url));let Q=[];B.root.content?B.root.content.uri?Q.push(B.root.content.uri):B.root.content.url&&Q.push(B.root.content.url):B.root.contents&&B.root.contents.forEach(n=>{n.uri?Q.push(n.uri):n.url&&Q.push(n.url)});const C=function(n){const s=n.split("?")[0];return s.substring(0,s.lastIndexOf("/")+1)}(A);let E;g&&(E=I.replace("{level}",0).replace("{x}",0).replace("{y}",0)),g||(E=I.replace("{level}",0).replace("{x}",0).replace("{y}",0).replace("{z}",0));const a={level:0,x:0,y:0},i={level:0,x:0,y:0};g||(a.z=0,i.z=0),jI.set(E,await _Q(C+E));const t=jI.get(E),e=[];t.isContentAvailable(i)&&Q.forEach(n=>{let s;g&&(s=n.replace("{level}",a.level).replace("{x}",a.x).replace("{y}",a.y)),g||(s=n.replace("{level}",a.level).replace("{x}",a.x).replace("{y}",a.y).replace("{z}",a.z)),e.push({uri:s})});const o={geometricError:B.root.geometricError,boundingVolume:B.root.boundingVolume,refine:B.root.refine,globalAddress:a,localAddress:i,subtree:t,contents:e,getChildren:async()=>r(o)};return{root:o};async function r(n){const s=[];if(n.localAddress.level==B.root.implicitTiling.availableLevels-1)return s;if((n.localAddress.level+1)%B.root.implicitTiling.subtreeLevels==0){const c=IB(n.localAddress),D=IB(n.globalAddress),b=gC(g,B.root.boundingVolume,D);for(let h=0;h<c.length;h++){const w=c[h],f=D[h];n.subtree.isChildSubtreeAvailable(w)&&(g&&I.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y),g||I.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),jI.has(E)||jI.set(E,await _Q(C+E));const p=jI.get(E),R={level:0,x:0,y:0};g||(R.z=0);const U=[];p.isContentAvailable(R)&&Q.forEach(k=>{let J;g&&(J=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y)),g||(J=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),U.push({uri:J})});const G={geometricError:n.geometricError/2,boundingVolume:b[h],refine:B.root.refine,globalAddress:f,localAddress:R,subtree:p,contents:U,getChildren:async()=>r(G)};s.push(G)}}else{const c=IB(n.localAddress),D=IB(n.globalAddress),b=gC(g,B.root.boundingVolume,D);for(let h=0;h<c.length;h++){const w=c[h],f=D[h];if(!n.subtree.isTileAvailable(w))continue;const p=[],R=n.subtree.isContentAvailable(w);for(let G=0;G<Q.length;G++){if(!R[G])continue;const k=Q[G];let J;g&&(J=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y)),g||(J=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),p.push({uri:J})}const U={geometricError:n.geometricError/2,boundingVolume:b[h],refine:B.root.refine,globalAddress:f,localAddress:w,subtree:n.subtree,contents:p,getChildren:async()=>r(U)};s.push(U)}}return s.length>0?s:void 0}}function IB(B){const{level:A,x:g,y:I,z:Q}=B,C=A+1;let E=[];return E=Q===void 0?[{level:C,x:2*g,y:2*I},{level:C,x:2*g+1,y:2*I},{level:C,x:2*g,y:2*I+1},{level:C,x:2*g+1,y:2*I+1}]:[{level:C,x:2*g,y:2*I,z:2*Q},{level:C,x:2*g+1,y:2*I,z:2*Q},{level:C,x:2*g,y:2*I+1,z:2*Q},{level:C,x:2*g+1,y:2*I+1,z:2*Q},{level:C,x:2*g,y:2*I,z:2*Q+1},{level:C,x:2*g+1,y:2*I,z:2*Q+1},{level:C,x:2*g,y:2*I+1,z:2*Q+1},{level:C,x:2*g+1,y:2*I+1,z:2*Q+1}],E}function gC(B,A,g){const I=[];for(let Q=0;Q<g.length;Q++)I.push(Ge(B,A,g[Q]));return I}function Ge(B,A,g){if(A.region)return function(I,Q,C){const[E,a,i,t,e,o]=Q,r=(i-E)/2**C.level,n=(t-a)/2**C.level,s=I?0:(o-e)/2**C.level,c=E+r*C.x,D=a+n*C.y,b=c+r,h=D+n,w=I?e:e+s*C.z,f=I?o:w+s;return{region:[c,D,b,h,w,f]}}(B,A.region,g);if(A.box)return function(I,Q,C){const E=Q.slice(0,3),a=[Q.slice(3,6),Q.slice(6,9),Q.slice(9,12)],i=1/Math.pow(2,C.level),t=[i,i,I?1:i],e=a.map((n,s)=>n.map(c=>c*t[s])),o=[E[0]-a[0][0]-a[1][0]-a[2][0],E[1]-a[0][1]-a[1][1]-a[2][1],E[2]-a[0][2]-a[1][2]-a[2][2]];return{box:[o[0]+(2*C.x+1)*(e[0][0]+e[1][0]+e[2][0]),o[1]+(2*C.y+1)*(e[0][1]+e[1][1]+e[2][1]),I?E[2]:o[2]+(2*C.z+1)*(e[0][2]+e[1][2]+e[2][2])].concat(...e)}}(B,A.box,g);throw new Error("Unsupported bounding volume type")}(function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};function g(i){if(!i)throw new Error("Assertion failed")}function I(i){return new Uint8Array(i.buffer,i.byteOffset,i.byteLength)}function Q(i,t,e,o,r,n,s){var c=B.exports.sbrk,D=c(t),b=c(o*r),h=new Uint8Array(B.exports.memory.buffer);h.set(I(e),b);var w=i(D,t,b,o,r,n,s),f=new Uint8Array(w);return f.set(h.subarray(D,D+w)),c(D-c(0)),f}function C(i){for(var t=0,e=0;e<i.length;++e)var o=i[e];return t}function E(i,t){if(g(t==2||t==4),t==4)return new Uint32Array(i.buffer,i.byteOffset,i.byteLength/4);var e=new Uint16Array(i.buffer,i.byteOffset,i.byteLength/2);return new Uint32Array(e)}function a(i,t,e,o,r,n,s){var c=B.exports.sbrk,D=c(e*o),b=c(e*n),h=new Uint8Array(B.exports.memory.buffer);h.set(I(t),b),i(D,e,o,r,b,s);var w=new Uint8Array(e*o);return w.set(h.subarray(D,D+e*o)),c(D-c(0)),w}WebAssembly.instantiate(function(i){for(var t=new Uint8Array(i.length),e=0;e<i.length;++e){var o=i.charCodeAt(e);t[e]=o>96?o-97:o>64?o-39:o+4}var r=0;for(e=0;e<i.length;++e)t[r++]=t[e]<60?A[t[e]]:64*(t[e]-60)+t[++e];return t.buffer.slice(0,r)}("b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiE8AdilveoveovrrwrrrDDoDrbqqbelve9Weiiviebeoweuec;G:Qdkr:PlCo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxY9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVJ9V29VVbmE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9WbHa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbOK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbAl79IV9RbXDwebcekdKYq;i28Adbk:Bhdhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;C:kjjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:xjjjb8AdnaiTmbarc;adfadalz:wjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:xjjjb8Aarc;abfarc;adfalz:wjjjb8AarcUf9cb83ibarc8Wf9cb83ibarcyf9cb83ibarcaf9cb83ibarcKf9cb83ibarczf9cb83ibar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzarc;qofcKfhHarc;qofczfhOcbhAincdhCcbhodnavci6mbaH9cb83ibaO9cb83ibar9cb83i;yoar9cb83i;qoadaAfgoybbhXcbhQincbhwcbhLdninaoalfhKaoybbgYaX7aLVhLawcP0meaKhoaYhXawcefgwaQfai6mbkkcbhXarc;qofhwincwh8AcwhEdnaLaX93gocFeGg3cs0mbclhEa3ci0mba3cb9hcethEkdnaocw4cFeGg3cs0mbclh8Aa3ci0mba3cb9hceth8Aka8AaEfh3awydbh5cwh8AcwhEdnaocz4cFeGg8Ecs0mbclhEa8Eci0mba8Ecb9hcethEka3a5fh3dnaocFFFFb0mbclh8AaocFFF8F0mbaocFFFr0ceth8Akawa3aEfa8AfBdbawclfhwaXcefgXcw9hmbkaKhoaYhXaQczfgQai6mbkcbhocehwazhLinawaoaLydbarc;qofaocdtfydb6EhoaLclfhLawcefgwcw9hmbkcihCkcbh3arc;qlfcbcjdz:xjjjb8Aarc;alfcwfcbBdbar9cb83i;alaoclth8Fadhaaqhhakh5inarc;qlfadcba3cufgoaoa30Eal2falz:wjjjb8Aaiahaiah6Ehgdnaqaia39Ra3aqfai6EgYcsfc9WGgoaY9nmbarc;qofaYfcbaoaY9Rz:xjjjb8Akada3al2fh8Jcbh8Kina8Ka8FVcl4hQarc;alfa8Kcdtfh8LaAh8Mcbh8Nina8NaAfhwdndndndndndna8KPldebidkasa8Mc98GgLfhoa5aLfh8Aarc;qlfawc98GgLfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkaYTmla8Ncith8Ea8JaLfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aQ93a8E486bba8Aalfh8AaEalfhEaLhXaKcefgKaY9hmbxlkkaYTmia8Mc9:Ghoa8NcitcwGhEarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhLarc;qofhwaghXinawa5aofRbbcwtaaaofRbbVg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbaoalfhoawcefhwa8AhLa3aXcufgX9hmbxikkaYTmda8Jawfhoarc;qlfawfRbbhLarc;qofhwaghXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLa3aXcufgX9hmbxdkkaYTmeka8LydbhEcbhKarc;qofhoincdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egwa8Aawa8A6Egwczawcz6EaEfhEaoczfhoaKczfgKaY6mbka8LaEBdbka8Mcefh8Ma8Ncefg8Ncl9hmbka8Kcefg8KaC9hmbkaaamfhaahaxfhha5amfh5a3axfg3ai6mbkcbhocehwaPhLinawaoaLydbarc;alfaocdtfydb6EhoaLclfhLawcefgXhwaCaX9hmbkaraAcd4fa8FcdVaoaocdSE86bbaAclfgAal6mbkkabaefh8Kabcefhoalcd4gecbaDEhkadcefhOarc;abfceVhHcbhmdndninaiam9nmearc;qofcbcjdz:xjjjb8Aa8Kao9Rak6mdadamal2gwfhxcbh8JaOawfhzaocbakz:xjjjbghakfh5aqaiam9Ramaqfai6Egscsfgocl4cifcd4hCaoc9WGg8LThPindndndndndndndndndndnaDTmbara8Jcd4fRbbgLciGPlbedlbkasTmdaxa8Jfhoarc;abfa8JfRbbhLarc;qofhwashXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLaXcufgXmbxikkasTmia8JcitcwGhEarc;abfa8JceVfRbbcwtarc;abfa8Jc9:GgofRbbVhLaxaofhoarc;qofhwashXinawao8Vbbg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbawcefhwaoalfhoa8AhLaXcufgXmbxdkkaHa8Jc98GgEfhoazaEfh8Aarc;abfaEfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkasTmbaLcl4hYa8JcitcKGh3axaEfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aY93a3486bba8Aalfh8AaEalfhEaLhXaKcefgKas9hmbkkaDmbcbhoxlka8LTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8L9pmdxbkkdnavmbcehoxikcbhEaChKaChYinarc;qofaEfgocwf8Pibhyao8Pibh8PcdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egoa8Aaoa8A6Egoczaocz6EaYfhYaocucbaya8P:e9cb9sEgwaoaw6EaKfhKaEczfgEa8L9pmdxbkkaha8Jcd4fgoaoRbbcda8JcetcoGtV86bbxikdnaKas6mbaYas6mbaha8Jcd4fgoaoRbbcia8JcetcoGtV86bba8Ka59Ras6mra5arc;qofasz:wjjjbasfh5xikaKaY9phokaha8Jcd4fgwawRbbaoa8JcetcoGtV86bbka8Ka59RaC6mla5cbaCz:xjjjbgAaCfhYdndna8LmbaPhoxekdna8KaY9RcK9pmbaPhoxekaocdtc:q1jjbfcj1jjbaDEg5ydxggcetc;:FFFeGh8Fcuh3cuagtcu7cFeGhacbh8Marc;qofhLinarc;qofa8MfhQczhEdndndnagPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhExekcbhoa8FhEinaEaaaLaofRbb9nfhEaocefgocz9hmbkkcih8Ecbh8Ainczhwdndndna5a8AcdtfydbgKPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhwxekaKcetc;:FFFeGhwcuaKtcu7cFeGhXcbhoinawaXaLaofRbb9nfhwaocefgocz9hmbkkdndnawaE6mbaKa39hmeawaE9hmea5a8EcdtfydbcwSmeka8Ah8EawhEka8Acefg8Aci9hmbkaAa8Mco4fgoaoRbba8Ea8Mci4coGtV86bbdndndna5a8Ecdtfydbg3PDdbbbbbbbebkdncwa39Tg8ETmbcua3tcu7hwdndna3ceSmbcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXa3tVhXaocefhoa8Acufg8AmbkaYaX86bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbxdkkcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXcetVhXaocefhoa8Acufg8AmbkaYaX:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbkkcbhoinaYaLaofRbbgX86bbaYaXawcFeG9pfhYaocefgocz9hmbxikkdna3ceSmbinaYcb86bbaYcefhYxbkkinaYcb86bbaYcefhYxbkkaYaQ8Pbb83bbaYcwfaQcwf8Pbb83bbaYczfhYka8Mczfg8Ma8L9pgomeaLczfhLa8KaY9RcK9pmbkkaoTmlaYh5aYTmlka8Jcefg8Jal9hmbkarc;abfaxascufal2falz:wjjjb8Aasamfhma5hoa5mbkcbhwxdkdna8Kao9RakalfgwcKcaaDEgLawaL0EgX9pmbcbhwxdkdnawaL9pmbaocbaXaw9Rgwz:xjjjbawfhokaoarc;adfalz:wjjjbalfhodnaDTmbaoaraez:wjjjbaefhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;C:kjjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;C:kjjbk:Ese5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd;m:kjjbgrc;GeV86bbalc;abfcFecjez:xjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc;i1jjbfydbcdtfydbh3aLaoc;e1jjbfydbcdtfydbh8AaLaoc;a1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc;a1jjbfydbcdtfydbgKTaLavc;e1jjbfydbcdtfydbg8AceSGaLavc;i1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavc:W1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkdnaeaP9nmbcbhvxekcbhvinaeavfavc:W1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:kjjbk:Adewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb;m:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkdnaoar9nmbcbskaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b0Ec:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A0Ec:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk:Ylvdud99due99iudnaeTmbceaicufgvthocuaitcu7:Zhrcuavtcu7:Zhwcbhvadcl9hhDcbhqindndnalcwfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikdndnalIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9TgxaifhidndnalclfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9ThddndnalcxfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEawNJbbbZMgk:lJbbb9p9DTmbak:Ohmxekcjjjj94hmkadaifhiaoamVhmdndnaDmbabavfgPai86bbaPcifam86bbaPcdfad86bbaPcefax86bbxekabaqfgPai87ebaPcofam87ebaPclfad87ebaPcdfax87ebkalczfhlavclfhvaqcwfhqaecufgembkkk;YqdXui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:xjjjb8AcbhodnadTmbcbhoaiTmbdndnabaeSmbaehrxekavcuadcdtgwadcFFFFi0Ecbyd;q:kjjbHjjjjbbgrBd:SeavceBd:mdaraeawz:wjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaradaiavc:Sefz:pjjjbavyd:GehDadci9Ugqcbyd;q:kjjbHjjjjbbheavc:Sefavyd:mdgkcdtfaeBdbavakcefgwBd:mdaecbaqz:xjjjbhxavc:SefawcdtfcuaicdtaicFFFFi0Ecbyd;q:kjjbHjjjjbbgmBdbavakcdfgPBd:mdalc;ebfhsaDheamhwinawalIdbasaeydbgzcwazcw6EcdtfIdbMUdbaeclfheawclfhwaicufgimbkavc:SefaPcdtfcuaqcdtadcFFFF970Ecbyd;q:kjjbHjjjjbbgPBdbdnadci6mbarheaPhwaqhiinawamaeydbcdtfIdbamaeclfydbcdtfIdbMamaecwfydbcdtfIdbMUdbaecxfheawclfhwaicufgimbkkakcifhoalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhzcbhwcbhXcehQinaehLcihkarawci2gKcdtfgeydbhsaeclfydbhdabaXcx2fgicwfaecwfydbgYBdbaiclfadBdbaiasBdbaxawfce86bbaOaYBdwaOadBdlaOasBdbaPawcdtfcbBdbdnazTmbcihkaLhiinaOakcdtfaiydbgeBdbakaeaY9haeas9haead9hGGfhkaiclfhiazcufgzmbkkaXcefhXcbhzinaCaAarazaKfcdtfydbcdtgifydbcdtfgYheaDaifgdydbgshidnasTmbdninaeydbawSmeaeclfheaicufgiTmdxbkkaeaYascdtfc98fydbBdbadadydbcufBdbkazcefgzci9hmbkdndnakTmbcuhwJbbbbh8Acbhdavyd:KehYavyd:OehKindndnaDaOadcdtfydbcdtgzfydbgembadcefhdxekadcs0hiamazfgsIdbhEasalcbadcefgdaiEcdtfIdbaHaecwaecw6EcdtfIdbMg3Udba3aE:th3aecdthiaKaYazfydbcdtfheinaPaeydbgzcdtfgsa3asIdbMgEUdbaEa8Aa8AaE9DgsEh8AazawasEhwaeclfheaic98fgimbkkadak9hmbkawcu9hmekaQaq9pmdindnaxaQfRbbmbaQhwxdkaqaQcefgQ9hmbxikkakczakcz6EhzaOheaLhOawcu9hmbkkaocdtavc:Seffc98fhedninaoTmeaeydbcbyd;u:kjjbH:bjjjbbaec98fheaocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd;q:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:xjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic;K1jjbz:ojjjbkQbabaeadaic;m:jjjbz:ojjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:Vvioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:xjjjb8AalcuadcitgoadcFFFFe0Ecbyd;q:kjjbHjjjjbbgrBdxalceBd2araeadaicezNjjjbalcuaoadcjjjjoGEcbyd;q:kjjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:xjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkclhvdninavc98Smealcxfavfydbcbyd;u:kjjbH:bjjjbbavc98fhvxbkkalc;Waf8Kjjjjbk:Jwliuo99iud9:cbhv8Jjjjjbca9Rgoczfcwfcbyd:8:kjjbBdbaocb8Pd:0:kjjb83izaocwfcbyd;i:kjjbBdbaocb8Pd;a:kjjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:kjjbgeabcifc98GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:kjjbgeabcrfc94GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;y:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;y:kjjbfgdBd;y:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk;Qddbcjwk;mdbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;mqkzebbbebbbdbbb9G:vbb"),{}).then(function(i){(B=i.instance).exports.__wasm_call_ctors(),B.exports.meshopt_encodeVertexVersion(0),B.exports.meshopt_encodeIndexVersion(1)})})();var HE=function(){var B=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g,I=WebAssembly.validate(B)?C("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq;Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk;Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83ibawaDp5baxpEd:T:j83ibaocwfamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83ibaoarp5baxpEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgxpklbaiaxpklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83iKaiaDp5baxpEd:T:j83izaiamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83iwaiarp5baxpEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):C("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;BZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),Q=WebAssembly.instantiate(I,{}).then(function(n){(g=n.instance).exports.__wasm_call_ctors()});function C(n){for(var s=new Uint8Array(n.length),c=0;c<n.length;++c){var D=n.charCodeAt(c);s[c]=D>96?D-97:D>64?D-39:D+4}var b=0;for(c=0;c<n.length;++c)s[b++]=s[c]<60?A[s[c]]:64*(s[c]-60)+s[++c];return s.buffer.slice(0,b)}function E(n,s,c,D,b,h,w){var f=n.exports.sbrk,p=D+3&-4,R=f(p*b),U=f(h.length),G=new Uint8Array(n.exports.memory.buffer);G.set(h,U);var k=s(R,D,b,U,h.length);if(k==0&&w&&w(R,p,b),c.set(G.subarray(R,R+D*b)),f(R-f(0)),k!=0)throw new Error("Malformed buffer data: "+k)}var a={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},i={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},t=[],e=0;function o(n){var s={object:new Worker(n),pending:0,requests:{}};return s.object.onmessage=function(c){var D=c.data;s.pending-=D.count,s.requests[D.id][D.action](D.value),delete s.requests[D.id]},s}function r(n){var s=n.data;if(!s.id)return self.close();self.ready.then(function(c){try{var D=new Uint8Array(s.count*s.size);E(c,c.exports[s.mode],D,s.count,s.size,s.source,c.exports[s.filter]),self.postMessage({id:s.id,count:s.count,action:"resolve",value:D},[D.buffer])}catch(b){self.postMessage({id:s.id,count:s.count,action:"reject",value:b})}})}return{ready:Q,supported:!0,useWorkers:function(n){(function(s){for(var c="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(I)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+r.name+";"+E.toString()+r.toString(),D=new Blob([c],{type:"text/javascript"}),b=URL.createObjectURL(D),h=t.length;h<s;++h)t[h]=o(b);for(h=s;h<t.length;++h)t[h].object.postMessage({});t.length=s,URL.revokeObjectURL(b)})(n)},decodeVertexBuffer:function(n,s,c,D,b){E(g,g.exports.meshopt_decodeVertexBuffer,n,s,c,D,g.exports[a[b]])},decodeIndexBuffer:function(n,s,c,D){E(g,g.exports.meshopt_decodeIndexBuffer,n,s,c,D)},decodeIndexSequence:function(n,s,c,D){E(g,g.exports.meshopt_decodeIndexSequence,n,s,c,D)},decodeGltfBuffer:function(n,s,c,D,b,h){E(g,g.exports[i[b]],n,s,c,D,g.exports[a[h]])},decodeGltfBufferAsync:function(n,s,c,D,b){return t.length>0?function(h,w,f,p,R){for(var U=t[0],G=1;G<t.length;++G)t[G].pending<U.pending&&(U=t[G]);return new Promise(function(k,J){var m=new Uint8Array(f),O=++e;U.pending+=h,U.requests[O]={resolve:k,reject:J},U.object.postMessage({id:O,count:h,size:w,source:m,mode:p,filter:R},[m.buffer])})}(n,s,c,i[D],a[b]):Q.then(function(){var h=new Uint8Array(n*s);return E(g,g.exports[i[D]],h,n,s,c,g.exports[a[b]]),h})}}}();(function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g=WebAssembly.instantiate(function(a){for(var i=new Uint8Array(a.length),t=0;t<a.length;++t){var e=a.charCodeAt(t);i[t]=e>96?e-97:e>64?e-39:e+4}var o=0;for(t=0;t<a.length;++t)i[o++]=i[t]<60?A[i[t]]:64*(i[t]-60)+i[++t];return i.buffer.slice(0,o)}("b9H79Tebbbe:Gez9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gouuuuuue999Gvuuuuueu9Gquuuuuuu99uueu9GPuuuuuuuuuuu99uueu9Gquuuuuuuu99ueu9Gruuuuuu99eu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuiXCdilvorlwiDqkxmPbssbelve9Weiiviebeoweuec:G:Pdkr;7eko9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95br8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bw8A9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9O9v9W9K9HtWbDQ9TW79O9V9Wt9F79P9T9W29P9M959t29V9W9W95bqX9TW79O9V9Wt9F79P9T9W29P9M959qV919UWbkQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bxX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbma9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbPl79IV9RbsDwebcekdOAq:d;OeCdbk:J1eo3ue99euE99Cue9:8Jjjjjbcj;sb9Rgs8Kjjjjbcbhzasc:Cefcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkdnamcdGTmbalcrfci4gHcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd1:jjjbHjjjjbbhzasc:Cefasyd;8egecdtfazBdbasaecefBd;8ealcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egCcdtfaHBdbasaCcefBd;8eaHcFeaOz:rjjjbhQdnadTmbaecufhLcbhKindndnaQabaXcdtfgYydbgCc:v;t;h;Ev2aLGgOcdtfgAydbgHcuSmbceheinazaHcdtfydbaCSmdaOaefhHaecefheaQaHaLGgOcdtfgAydbgHcu9hmbkkazaKcdtfaCBdbaAaKBdbaKhHaKcefhKkaYaHBdbaXcefgXad9hmbkkaQcbyd:m:jjjbH:bjjjbbasasyd;8ecufBd;8ekcbh8AcualcefgecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbhKasc:Cefasyd;8egecdtfaKBdbasaKBdNeasaecefBd;8ecuadcitadcFFFFe0Ecbyd1:jjjbHjjjjbbhEasc:Cefasyd;8egecdtfaEBdbasaEBd:yeasaecefBd;8eascNefabadalcbz:cjjjbcualcdtgealcFFFFi0Eg3cbyd1:jjjbHjjjjbbhCasc:Cefasyd;8egHcdtfaCBdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhYasc:Cefasyd;8egHcdtfaYBdbasaHcefBd;8eaCaYaialavazasc:Cefz:djjjbalcbyd1:jjjbHjjjjbbh5asc:Cefasyd;8egHcdtfa5BdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egOcdtfaHBdbasaOcefBd;8ea3cbyd1:jjjbHjjjjbbhOasc:Cefasyd;8egAcdtfaOBdbasaAcefBd;8eaHcFeaez:rjjjbh8EaOcFeaez:rjjjbh8FdnalTmbaEcwfhaindnaKa8AgOcefg8AcdtfydbgAaKaOcdtgefydbgHSmbaAaH9RhhaEaHcitfhga8Faefh8Ja8Eaefh8KcbhQindndnagaQcitfydbgLaO9hmba8KaOBdba8JaOBdbxekdnaKaLcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgAfydbaOSmeaHae9Rh8Maecu7aHfhXaaaAfhHcbheinaXaeSmeaecefheaHydbhAaHcwfhHaAaO9hmbkaea8M6meka8Fa8LfgeaOaLaeydbcuSEBdba8KaLaOa8KydbcuSEBdbkaQcefgQah9hmbkka8Aal9hmbkaChHaYhOa8FhAa8EhQcbheindndnaeaHydbgL9hmbdnaeaOydbgL9hmbaQydbhLdnaAydbgXcu9hmbaLcu9hmba5aefcb86bbxikdnaXcuSmbaLcuSmbaeaXSmbaCaXcdtfydbaCaLcdtfydb9hmba5aefcd86bbxika5aefh8KdnaeaXSmbaeaLSmba8Kce86bbxika8Kcl86bbxdkdnaeaYaLcdtgXfydb9hmbdnaAydbg8KcuSmbaea8KSmbaQydbghcuSmbaeahSmba8FaXfydbggcuSmbagaLSmba8EaXfydbgXcuSmbaXaLSmbdnaCa8KcdtfydbgLaCaXcdtfydb9hmbaLaCahcdtfydbgXSmbaXaCagcdtfydb9hmba5aefcd86bbxlka5aefcl86bbxika5aefcl86bbxdka5aefcl86bbxeka5aefa5aLfRbb86bbkaHclfhHaOclfhOaAclfhAaQclfhQalaecefge9hmbkdnamcaGTmbaEcwfh8Jcbh8Nindndna5a8NfgyRbbg8Pc9:fPibebekdndndnaCa8Ncdtfydbgea8N9hmbdnaqmbcbhgxdkdnazTmbcbhga8NheinagaqazaecdtgefydbfRbbcdGce4VhgaYaefydbgea8N9hmbxikkcbhga8NheinagaqaefRbbcdGce4VhgaYaecdtfydbgea8N9hmbxdkka5aefRbbhexeka8NheindnaKaecdtgafgeclfydbgHaeydbgeSmbaHae9Rh8AaEaecitfh8MaCaafh8Lcbh8Kina8Ma8KcitfydbgXhednindnaKaecdtgLfgeclfydbgHaeydbgeSmbdnaCaEaecitgOfydbcdtfydba8LydbgQ9hmbcehexikaHae9Rhhaecu7aHfhAa8JaOfhHcbheinaAaeSmeaecefheaHydbhOaHcwfhHaCaOcdtfydbaQ9hmbkaeah6hexdkaYaLfydbgeaX9hmbkcbhekagaece7Vhga8Kcefg8Ka8A9hmbkkaYaafydbgea8N9hmbka8PciagceGEhekayae86bbka8Ncefg8Nal9hmbkkdnaqTmbdndnazTmbazheaChHalhOindnaqaeydbfRbbceGTmba5aHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaChealhHindnaqRbbceGTmba5aeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaChealhOa5hHindna5aeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmba5healhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcbhIcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhaasc:Cefasyd;8egecdtfaaBdbasaecefBd;8easc:qefcbBdbas9cb83i1eaaaialavazasc1efz:ejjjbh8RdndnaDmbcbh8Scbh8Lxekcbh8LawhecbhHindnaeIdbJbbbb9ETmbasa8LcdtfaHBdba8Lcefh8LkaeclfheaDaHcefgH9hmbkcua8Lal2gecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbh8Sasc:Cefasyd;8egecdtfa8SBdbasaecefBd;8ealTmbdna8Lmbcbh8Lxekarcd4hXdnazTmba8Lcdth8KcbhLa8ShKinaoazaLcdtfydbaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbxdkka8Lcdth8KcbhLa8ShKinaoaLaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbkkcualc8S2gHalc;D;O;f8U0EgAcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhycbhqcbh8Ndna8LTmbcbhIaAcbyd1:jjjbHjjjjbbh8Nasc:Cefasyd;8egecdtfa8NBdbasaecefBd;8ea8NcbaHz:rjjjb8Acua8Lal2gecltgHaecFFFFb0Ecbyd1:jjjbHjjjjbbhqasc:Cefasyd;8egecdtfaqBdbasaecefBd;8eaqcbaHz:rjjjb8AamcjjjjdGTmbcualcltgealcFFFFb0Ecbyd1:jjjbHjjjjbbhIasc:Cefasyd;8egHcdtfaIBdbasaHcefBd;8eaIcbaez:rjjjb8AkdnadTmbcbhQabhHinaaaHclfydbgLcx2fgeIdbaaaHydbgKcx2fgOIdbgR:tg8UaaaHcwfydbgXcx2fgAIdlaOIdlg8V:tg8WNaAIdbaR:tg8XaeIdla8V:tg8YN:tg8Zh80aeIdwaOIdwg81:tgBa8XNaAIdwa81:tg83a8UN:tgUh8Xa8Ya83Na8WaBN:tg8Yh8Udna8Za8ZNa8Ya8YNaUaUNMM:rgBJbbbb9EgOTmba8ZaB:vh80aUaB:vh8Xa8YaB:vh8UkayaCaKcdtfydbgAc8S2fgea8UaB:rg8Wa8UNNg85aeIdbMUdbaea8Xa8Wa8XNg86Ng87aeIdlMUdlaea80a8Wa80Ng83Ng88aeIdwMUdwaea86a8UNg86aeIdxMUdxaea83a8UNg89aeIdzMUdzaea83a8XNg8:aeIdCMUdCaea8Ua8Wa80a81Na8UaRNa8Va8XNMM:mgZNg83Ng8UaeIdKMUdKaea8Xa83Ng8XaeId3MUd3aea80a83Ng80aeIdaMUdaaea83aZNg83aeId8KMUd8Kaea8WaeIdyMUdyayaCaLcdtfydbgLc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdyayaCaXcdtfydbgKc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdydnaITmbdnaOTmba8ZaB:vh8ZaUaB:vhUa8YaB:vh8YkaIaAcltfgeaBJbbbZNg8UaUNg8WaeIdlMUdlaea8Ua8ZNg8XaeIdwMUdwaea8Ua8YNg80aeIdbMUdbaea8UaR:ma8YNaUa8VN:ta81a8ZN:tNg8UaeIdxMUdxaIaLcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxaIaKcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxkaHcxfhHaQcifgQad6mbkkdnalTmbJ;n;m;m89J:v:;;w8ZamczGEh8YcbhOaChAaahHayheindnaOaAydb9hmbaecxfgQaQIdbJbbbbMUdbaeczfgQaQIdbJbbbbMUdbaecCfgQaQIdbJbbbbMUdbaea8YaecyfgQIdbg8ZNg8UaeIdbMUdbaeclfgLa8UaLIdbMUdbaecwfgLa8UaLIdbMUdbaecKfgLaLIdbaHIdbg8Xa8UN:tUdbaHcwfIdbh8Waec3fgLaLIdba8UaHclfIdbg80N:tUdbaecafgLaLIdba8Ua8WN:tUdbaec8KfgLIdbhUaQa8Za8UMUdbaLaUa8Ua8Wa8WNa8Xa8XNa80a80NMMNMUdbkaAclfhAaHcxfhHaec8SfhealaOcefgO9hmbkkdnadTmbcbhXabhKinabaXcdtfhLcbhHina5aLaHc:G1jjbfydbcdtfydbgOfRbbhedndna5aKaHfydbgAfRbbgQc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaQcufcFeGce0mba8EaAcdtfydbaO9hmekdnaecufcFeGce0mba8FaOcdtfydbaA9hmekJbbacJbbacJbbbZaecFeGceSEaQcFeGceSEh88aaaOcx2fgeIdwaaaAcx2fgQIdwgB:tg80:mh86aeIdlaQIdlg83:tg8Z:mh89aeIdbaQIdbgR:tgU:mh8:dnaaaLaHc:K1jjbfydbcdtfydbcx2fgeIdwaB:tg8Va80a80NaUaUNa8Za8ZNMMg8YNa8Va80NaeIdbaR:tg81aUNa8ZaeIdla83:tg85NMMg8Wa80N:tg8Xa8XNa81a8YNa8WaUN:tg8Ua8UNa85a8YNa8Wa8ZN:tg8Wa8WNMM:rg87Jbbbb9ETmba8Xa87:vh8Xa8Wa87:vh8Wa8Ua87:vh8Uka88a8Y:rNg8Ya8XaBNa8UaRNa83a8WNMM:mgZNg87aZNhZa8Xa87Nhna8Wa87Nhca8Ua87Nh9ca8Ya8XNg87a8WNhJa87a8UNh9ea8Ya8WNgTa8UNhSa8Xa87Nh87a8WaTNhTa8Ua8Ya8UNNh9hdnaUa85Na81a89NMg8Xa8XNa8Za8VNa85a86NMg8Ua8UNa80a81Na8Va8:NMg8Wa8WNMM:rg80Jbbbb9ETmba8Xa80:vh8Xa8Wa80:vh8Wa8Ua80:vh8UkayaCaAcdtfydbc8S2fgeaeIdba9ha8Ua88a80:rNg80a8UNNMgUMUdbaeaTa8Wa80a8WNg8VNMg81aeIdlMUdlaea87a8Xa80a8XNg8ZNMg85aeIdwMUdwaeaSa8Va8UNMg8VaeIdxMUdxaea9ea8Za8UNMg87aeIdzMUdzaeaJa8Za8WNMg8ZaeIdCMUdCaea9ca8Ua80a8XaBNa8UaRNa83a8WNMMgB:mNg80NMg8UaeIdKMUdKaeaca8Wa80NMg8WaeId3MUd3aeana8Xa80NMg8XaeIdaMUdaaeaZaBa80N:tg80aeId8KMUd8Kaea8YJbbbbMg8YaeIdyMUdyayaCaOcdtfydbc8S2fgeaUaeIdbMUdbaea81aeIdlMUdlaea85aeIdwMUdwaea8VaeIdxMUdxaea87aeIdzMUdzaea8ZaeIdCMUdCaea8UaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea80aeId8KMUd8Kaea8YaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaXcifgXad6mbka8LTmbcbhKinJbbbbh8YaaabaKcdtfgeclfydbgXcx2fgHIdwaaaeydbg8Kcx2fgOIdwg81:tg8Wa8WNaHIdbaOIdbg85:tg8Xa8XNaHIdlaOIdlg87:tg80a80NMMgRaaaecwfydbghcx2fgeIdwa81:tg8ZNa8Wa8Wa8ZNa8XaeIdba85:tgUNa80aeIdla87:tgBNMMg8UN:tJbbbbJbbjZaRa8Za8ZNaUaUNaBaBNMMg8VNa8Ua8UN:tg83:va83Jbbbb9BEg83Nh89a8Va8WNa8Za8UN:ta83Nh8:aRaBNa80a8UN:ta83NhZa8Va80NaBa8UN:ta83NhnaRaUNa8Xa8UN:ta83Nhca8Va8XNaUa8UN:ta83Nh9ca8XaBNaUa80N:tg8Ua8UNa80a8ZNaBa8WN:tg8Ua8UNa8WaUNa8Za8XN:tg8Ua8UNMM:rJbbbZNh8Ua8Sa8Ka8L2ggcdtfhHa8Saha8L2gEcdtfhOa8SaXa8L2g8JcdtfhAa81:mhJa87:mh9ea85:mhTcbhQa8LhLJbbbbhBJbbbbh83JbbbbhRJbbbbh8VJbbbbh81Jbbbbh85Jbbbbh87Jbbbbh88Jbbbbh86inascjdfaQfgecwfa8Ua8:aAIdbaHIdbg8Z:tg80Na89aOIdba8Z:tgUNMg8WNUdbaeclfa8Uana80NaZaUNMg8XNUdbaea8Ua9ca80NacaUNMg80NUdbaecxfa8UaJa8WNa9ea8XNa8ZaTa80NMMMg8ZNUdba8Ua8Wa8XNNa8VMh8Va8Ua8Wa80NNa81Mh81a8Ua8Xa80NNa85Mh85a8Ua8Za8ZNNa8YMh8Ya8Ua8Wa8ZNNaBMhBa8Ua8Xa8ZNNa83Mh83a8Ua80a8ZNNaRMhRa8Ua8Wa8WNNa87Mh87a8Ua8Xa8XNNa88Mh88a8Ua80a80NNa86Mh86aHclfhHaAclfhAaOclfhOaQczfhQaLcufgLmbka8Na8Kc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8NaXc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8Nahc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdyaqagcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqa8JcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqaEcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaKcifgKad6mbkkcbhOdndnamcwGg9imbJbbbbh85cbh6cbh9kcbh0xekcbh6a3cbyd1:jjjbHjjjjbbh0asc:Cefasyd;8egecdtfa0BdbasaecefBd;8ecua0alabadaCz:fjjjbgAcltaAcjjjjiGEcbyd1:jjjbHjjjjbbh9kasc:Cefasyd;8egecdtfa9kBdbasaecefBd;8ea9kaAa0aaalz:gjjjbJFFuuh85aATmba9kheaAhHinaeIdbg8Ua85a85a8U9EEh85aeclfheaHcufgHmbkaAh6kasydNeh9mdnalTmba9mclfhea9mydbhAa5hHalhQcbhOincbaeydbgLaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaLhAaQcufgQmbkaOce4hOkcuadaO9Rcifg9ncx2a9nc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8Pasc:Cefasyd;8egecdtfa8PBdbasaecefBd;8ecua9ncdta9ncFFFFi0Ecbyd1:jjjbHjjjjbbh9oasc:Cefasyd;8egecdtfa9oBdbasaecefBd;8ea3cbyd1:jjjbHjjjjbbhDasc:Cefasyd;8egecdtfaDBdbasaecefBd;8ealcbyd1:jjjbHjjjjbbh9pasc:Cefasyd;8egecdtfa9pBdbasaecefBd;8eaxaxNa8RJbbjZamclGEgnanN:vh88Jbbbbh86dnadak9nmbdna9nci6mbasyd:yeh9qa8Lclth9ra8Pcwfh9sJbbbbh87Jbbbbh86inascNefabadalaCz:cjjjbabh8Kcbh8Mcbh3inaba3cdtfhgcbheindnaCa8KaefydbgOcdtgXfydbgAaCagaec:W1jjbfydbcdtfydbgHcdtghfydbgQSmba5aHfRbbgKcv2a5aOfRbbgLfc;a1jjbfRbbg8JaLcv2aKfgEc;a1jjbfRbbg8AVcFeGTmbdnaQaA9nmbaEc;G1jjbfRbbcFeGmekdnaLcufcFeGce0mbaKTmba8EaXfydbaH9hmekdnaLTmbaKcufcFeGce0mba8FahfydbaO9hmeka8Pa8Mcx2fgAaHaOa8AcFeGgQEBdlaAaOaHaQEBdbaAaQa8JGcb9hBdwa8Mcefh8Mkaeclfgecx9hmbkdna3cifg3ad9pmba8Kcxfh8Ka8Mcifa9n9nmekka8MTmdcbhhinayaCa8Pahcx2fgKydbgQcdtgAfydbc8S2fgeIdwaaaKydlgLcx2fgHIdwg8XNaeIdzaHIdbg80NaeIdaMg8Ua8UMMa8XNaeIdlaHIdlg8ZNaeIdCa8XNaeId3Mg8Ua8UMMa8ZNaeIdba80NaeIdxa8ZNaeIdKMg8Ua8UMMa80NaeId8KMMM:lh8UJbbbbJbbjZaeIdyg8W:va8WJbbbb9BEh8WdndnaKydwg8KmbJFFuuh81xekJbbbbJbbjZayaCaLcdtfydbc8S2fgeIdygU:vaUJbbbb9BEaeIdwaaaQcx2fgHIdwgUNaeIdzaHIdbg8YNaeIdaMgBaBMMaUNaeIdlaHIdlgBNaeIdCaUNaeId3MgUaUMMaBNaeIdba8YNaeIdxaBNaeIdKMgUaUMMa8YNaeId8KMMM:lNh81ka8Wa8UNh8Vdna8LTmba8NaQc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaQa8L2ggcltfheaHIdyhUa8SaLa8L2gEcdtfgXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaLc8S2fgOIdwaaaQcx2fgeIdwg8YNaOIdzaeIdbgBNaOIdaMg8Wa8WMMa8YNaOIdlaeIdlg83NaOIdCa8YNaOId3Mg8Wa8WMMa83NaOIdbaBNaOIdxa83NaOIdKMg8Wa8WMMaBNaOId8KMMMh8Wa8SagcdtfhHaqaEcltfheaOIdyhRa8LhOinaHIdbgUaUaRNaecxfIdba8YaecwfIdbNaBaeIdbNa83aeclfIdbNMMMgUaUM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81dndndna5aQfRbbc9:fPdbedkdna8Fa8Ea8EaAfydbaLSEaYaAfydbgXcdtfydbgAcu9hmbaYaLcdtfydbhAka8NaXc8S2fgOIdwaaaAcx2fgeIdwg8XNaOIdzaeIdbg80NaOIdaMg8Ua8UMMa8XNaOIdlaeIdlg8ZNaOIdCa8XNaOId3Mg8Ua8UMMa8ZNaOIdba80NaOIdxa8ZNaOIdKMg8Ua8UMMa80NaOId8KMMMh8Ua8SaAa8L2ggcdtfhHaqaXa8L2gEcltfheaOIdyhUa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaAc8S2fgOIdwaaaXcx2fgeIdwg80NaOIdzaeIdbg8ZNaOIdaMg8Wa8WMMa80NaOIdlaeIdlgUNaOIdCa80NaOId3Mg8Wa8WMMaUNaOIdba8ZNaOIdxaUNaOIdKMg8Wa8WMMa8ZNaOId8KMMMh8Wa8SaEcdtfhHaqagcltfheaOIdyh8Ya8LhOinaHIdbg8Xa8Xa8YNaecxfIdba80aecwfIdbNa8ZaeIdbNaUaeclfIdbNMMMg8Xa8XM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81xdkaYaAfydbgAaQSmbina8NaAc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka8Va8U:lMh8VaYaAcdtfydbgAaQ9hmbkka5aLfRbbci9hmba8KTmbaYaLcdtfydbgAaLSmba8SagcdtfhXaaaQcx2fgeIdbh8XaeIdwh80aeIdlh8Zina8NaAc8S2fgHIdwa80NaHIdza8XNaHIdaMg8Ua8UMMa80NaHIdla8ZNaHIdCa80NaHId3Mg8Ua8UMMa8ZNaHIdba8XNaHIdxa8ZNaHIdKMg8Ua8UMMa8XNaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba80aecwfIdbNa8XaeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka81a8U:lMh81aYaAcdtfydbgAaL9hmbkkaKa81a8Va81a8V9DgeEUdwaKaQaLaea8Kcb9hGgeEBdlaKaLaQaeEBdbahcefgha8M9hmbkascjdfcbcj;qbz:rjjjb8Aa9shea8MhHinascjdfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinascjdfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea9shHinascjdfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdba9oaOcdtfaeBdbaHcxfhHa8Maecefge9hmbkadak9RgOci9Uh9tdnalTmbcbheaDhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh9ua9pcbalz:rjjjbh3aOcO9Uh9va9tce4h9wcbh8Acbh8Jdnina8Pa9oa8Jcdtfydbcx2fgEIdwg8Ua889Emea8Aa9t9pmeJFFuuh8Wdna9wa8M9pmba8Pa9oa9wcdtfydbcx2fIdwJbb;aZNh8Wkdna8Ua8W9ETmba8Ua869ETmba8Aa9v0mdkdna3aCaEydlghcdtg9xfydbgAfg9yRbba3aCaEydbg8Kcdtg9zfydbgefg9ARbbVmba5a8KfRbbh9Bdna9maecdtfgHclfydbgOaHydbgHSmbaOaH9RhQaaaAcx2fhKaaaecx2fhXa9qaHcitfhecbhHcehgdnindnaDaeydbcdtfydbgOaASmbaDaeclfydbcdtfydbgLaASmbaOaLSmbaaaLcx2fgLIdbaaaOcx2fgOIdbg8X:tg8UaXIdlaOIdlg80:tg8YNaXIdba8X:tgBaLIdla80:tg8WN:tg8Za8UaKIdla80:tg83NaKIdba8X:tgRa8WN:tg80Na8WaXIdwaOIdwgU:tg8VNa8YaLIdwaU:tg8XN:tg8Ya8WaKIdwaU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaQ6hgaQaH9hmbkkagceGTmba9wcefh9wxekdndndndna9Bc9:fPdebdka8KheinaDaecdtgefahBdbaYaefydbgea8K9hmbxikkdna8Fa8Ea8Ea9zfydbahSEaYa9zfydbg8Kcdtfydbgecu9hmbaYa9xfydbhekaDa9zfahBdbaehhkaDa8KcdtfahBdbka9Ace86bba9yce86bbaEIdwg8Ua86a86a8U9DEh86a9ucefh9ucecda9BceSEa8Afh8Aka8Jcefg8Ja8M9hmbkka9uTmddnalTmbcbhLcbhXindnaDaXcdtgefydbgOaXSmbaCaOcdtfydbh8KdnaXaCaefydb9hghmbaya8Kc8S2fgeayaXc8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyaITmbaIa8KcltfgeaIaXcltfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxka8LTmba8NaOc8S2fgea8NaXc8S2ggfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9raO2hKaqhHa8LhAinaHaKfgeaHaLfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkahmbJbbbbJbbjZayagfgeIdyg8U:va8UJbbbb9BEaeIdwaaa8Kcx2fgHIdwg8UNaeIdzaHIdbg8WNaeIdaMg8Xa8XMMa8UNaeIdlaHIdlg8XNaeIdCa8UNaeId3Mg8Ua8UMMa8XNaeIdba8WNaeIdxa8XNaeIdKMg8Ua8UMMa8WNaeId8KMMM:lNg8Ua87a87a8U9DEh87kaLa9rfhLaXcefgXal9hmbkcbhHa8EheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8EaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHa8FheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8FaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkka87a86a8LEh87cbhHabhecbhOindnaCaDaeydbcdtfydbgLcdtfydbgAaCaDaeclfydbcdtfydbgKcdtfydbgQSmbaAaCaDaecwfydbcdtfydbg8KcdtfydbgXSmbaQaXSmbabaHcdtfgAaLBdbaAcwfa8KBdbaAclfaKBdbaHcifhHkaecxfheaOcifgOad6mbkdndna9imbaHhdxekdnaHak0mbaHhdxekdna85a879FmbaHhdxekJFFuuh85cbhdabhecbhOindna9ka0aeydbgAcdtfydbcdtfIdbg8Ua879ETmbaeclf8Pdbh9CabadcdtfgQaABdbaQclfa9C83dba8Ua85a85a8U9EEh85adcifhdkaecxfheaOcifgOaH6mbkkadak0mbxdkkascNefabadalaCz:cjjjbkdndnadak0mbadhOxekdna9imbadhOxekdna85a889FmbadhOxekcehLina85Jbb;aZNg8Ua88a8Ua889DEh8XJbbbbh8Udna6Tmba9khea6hHinaeIdbg8Wa8Ua8Wa8X9FEa8Ua8Wa8U9EEh8UaeclfheaHcufgHmbkkJFFuuh85cbhOabhecbhHindna9ka0aeydbgAcdtfydbcdtfIdbg8Wa8X9ETmbaeclf8Pdbh9CabaOcdtfgQaABdbaQclfa9C83dba8Wa85a85a8W9EEh85aOcifhOkaecxfheaHcifgHad6mbkdnaLaOad9hVceGmbadhOxdka8Ua86a86a8U9DEh86aOak9nmecbhLaOhda85a889FmbkkdnamcjjjjdGTmba9pcbalz:rjjjbhLdnaOTmbabheaOhHinaLaeydbgAfa5aAfRbbcl9h86bbaeclfheaHcufgHmbkkascNefabaOalaCz:cjjjbalTmbcbhQasyd:yehgindnaLaQfRbbTmbdna5aQfRbbgecl0mbceaetcQGmekdnaCaQcdtgKfydbgeaQSmbaaaQcx2fgHaaaecx2fge8Pdb83dbaHcwfaecwfydbBdbxekayaQc8S2fgeIdyg8Ua8UJL:3;rUNg8UMh88aeIdwa8UMhRaeIdla8UMh8VaeIdba8UMhUaeIdaa8UaaaQcx2fg8KIdwg89N:th81aeId3a8Ua8KIdlg8:N:th85aeIdKa8KIdbgZa8UN:th8YJbbbbhcaeIdCJbbbbMh87aeIdzJbbbbMhBaeIdxJbbbbMh83dndna8LTmbaQhAinJbbbba88a8NaAc8S2fgHIdyg8U:va8UJbbbb9BEh8UaqaAa8L2cltfheaHIdaa88Na81Mh81aHId3a88Na85Mh85aHIdKa88Na8YMh8YaHIdCa88Na87Mh87aHIdza88NaBMhBaHIdxa88Na83Mh83aHIdwa88NaRMhRaHIdla88Na8VMh8VaHIdba88NaUMhUa8LhHina81aecxfIdbg8ZaecwfIdbg8WNa8UN:th81a85a8ZaeclfIdbg8XNa8UN:th85a87a8Wa8XNa8UN:th87aUaeIdbg80a80Na8UN:thUa8Ya8Za80Na8UN:th8YaBa8Wa80Na8UN:thBa83a8Xa80Na8UN:th83aRa8Wa8WNa8UN:thRa8Va8Xa8XNa8UN:th8VaeczfheaHcufgHmbkaYaAcdtfydbgAaQ9hmbkaITmbaIaQcltfgeIdxhTaeIdwh9caeIdlhJaeIdbh8UxekJbbbbhTJbbbbh9cJbbbbhJJbbbbh8UkaBaU:vg8Xa8YNa81:ta87aBa83aU:vg8WN:tg81a8Va83a8WN:tg8Z:vg80a8Wa8YNa85:tg8VN:th85a9ca8Ua8XN:taJa8Ua8WN:tg83a80N:tg87aRaBa8XN:ta81a80N:tgB:vgR:mh81a83a8Z:vg9c:mhJdnJbbbba8Ua8UaU:vg9eN:ta83a9cN:ta87aRN:tg83:la88J:983:g81Ng8U9ETmba81a85NaJa8VNa9ea8YNaT:tMMa83:vhckaU:la8U9ETmba8Z:la8U9ETmbaB:la8U9ETmba9e:macNa8X:ma81acNa85aB:vMg85Na8W:maJacNa80:ma85Na8Va8Z:vMMg87Na8Y:maU:vMMMh88a9maKfgeclfydbgHaeydbge9RhXagaecitfhKJbbbbh8UdnaHaeSghmbJbbbbh8UaKheaXhAinaaaeclfydbcx2fgHIdwa89:tg8Wa8WNaHIdbaZ:tg8Wa8WNaHIdla8::tg8Wa8WNMMg8Waaaeydbcx2fgHIdwa89:tg8Xa8XNaHIdbaZ:tg8Xa8XNaHIdla8::tg8Xa8XNMMg8Xa8Ua8Ua8X9DEg8Ua8Ua8W9DEh8UaecwfheaAcufgAmbkka85a89:tg8Wa8WNa88aZ:tg8Wa8WNa87a8::tg8Wa8WNMMa8U:rg8Ua8UN9EmbdnahmbcbhAcehhdninaaaKclfydbcx2fgeIdbaaaKydbcx2fgHIdbg8X:tg8Ua8:aHIdlg80:tg8YNaZa8X:tgBaeIdla80:tg8WN:tg8Za8Ua87a80:tg83Na88a8X:tgRa8WN:tg80Na8Wa89aHIdwgU:tg8VNa8YaeIdwaU:tg8XN:tg8Ya8Wa85aU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmeaKcwfhKaAcefgAaX6hhaXaA9hmbkkahceGmeka8Ka85Udwa8Ka87Udla8Ka88UdbkaQcefgQal9hmbkdndna8LTmba8LclthYa8Lcdth8KcbhKa8ShXindnaLaKfRbbTmba5aKfRbbclSmbJbbbbJbbjZa8NaKc8S2fIdyg8U:va8UJbbbb9BEh8UaaaCaKcdtfydbcx2fhHaqheaXhAa8LhQinaAa8UaecwfIdbaHIdwNaeIdbaHIdbNaeclfIdbaHIdlNMMaecxfIdbMNUdbaeczfheaAclfhAaQcufgQmbkkaqaYfhqaXa8KfhXaKcefgKal9hmbkarcd4hXavcd4hYasId:qeh8UasId:meh8WasId1eh8XazTmea8Lcdth8KcbhKindnaLaKfRbbTmbaiazaKcdtfydbgCaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaCaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbxikkavcd4hCasId:qeh8UasId:meh8WasId1eh8XdnazTmbazheindna9pRbbTmbaiaeydbaC2cdtfgHaaIdba8RNa8XMUdbaHaaclfIdba8RNa8WMUdlaHaacwfIdba8RNa8UMUdwka9pcefh9paeclfheaacxfhaalcufglmbxikkaCcdtheindna9pRbbTmbaiaaIdba8RNa8XMUdbaiclfaaclfIdba8RNa8WMUdbaicwfaacwfIdba8RNa8UMUdbka9pcefh9paacxfhaaiaefhialcufglmbxdkka8Lcdth8KcbhKindnaLaKfRbbTmbaiaKaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaKaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbkkdnamcjjjjlGTmbazmbaOTmbcbhLabheina5aeydbgAfRbbc3thKaecwfgXydbhHdndna8EaAcdtg8KfydbaeclfgYydbgCSmbcbhQa8FaCcdtfydbaA9hmekcjjjj94hQkaeaKaQVaAVBdba5aCfRbbc3thKdndna8EaCcdtfydbaHSmbcbhQa8FaHcdtfydbaC9hmekcjjjj94hQkaYaKaQVaCVBdba5aHfRbbc3thQdndna8EaHcdtfydbaASmbcbhCa8Fa8KfydbaH9hmekcjjjj94hCkaXaQaCVaHVBdbaecxfheaLcifgLaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPana86:rNUdbkasyd;8egecdtasc:Ceffc98fhHdninaeTmeaHydbcbyd:m:jjjbH:bjjjbbaHc98fhHaecufhexbkkascj;sbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:rjjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd1:jjjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:rjjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd:m:jjjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkawclfhwabclfhbaiaDcefgD9hmbkkk:hrdvuv998Jjjjjbca9Rgoczfcwfcbyd11jjbBdbaocb8Pdj1jjb83izaocwfcbydN1jjbBdbaocb8Pd:m1jjb83ibdnadTmbaicd4hrdnabmbdnalTmbcbhwinaealawcdtfydbar2cdtfhDcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxikkarcdthwcbhDincbhiinaoczfaifgqaeaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaeawfheaDcefgDad9hmbxdkkdnalTmbcbhwinabawcx2fgiaealawcdtfydbar2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxdkkarcdthlcbhwaehDinabawcx2fgiaeawar2cdtfgqIdbUdbaiaqIdlUdlaiaqIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaDalfhDawcefgwad9hmbkkJbbbbaoIdbaoIdzgx:tgkakJbbbb9DEgkaoIdlaoIdCgm:tgPaPak9DEgkaoIdwaoIdKgP:tgsasak9DEhsdnabTmbadTmbJbbbbJbbjZas:vasJbbbb9BEhkinabakabIdbax:tNUdbabclfgoakaoIdbam:tNUdbabcwfgoakaoIdbaP:tNUdbabcxfhbadcufgdmbkkdnavTmbavaPUdwavamUdlavaxUdbkask:ZlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvc:G1jjbfydbcdtfydbcdtfydbhodnabalawavfydbcdtfydbgqcdtfgkydbgvaqSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnabaocdtfgkydbgvaoSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnabavfgDydbgvaxSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhvabhocbhkindndnavalydbgq9hmbdnavaoydbgq9hmbaoakBdbakcefhkxdkaoabaqcdtfydbBdbxekaoabaqcdtfydbBdbkaoclfhoalclfhlaeavcefgv9hmbkakk;Jiilud99duabcbaecltz:rjjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakclfgxaqaxIdbMUdbakcwfgxaDaxIdbMUdbakcxfgkakIdbJbbjZMUdbaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhraehkinarcxfgoIdbhDaocbBdbararIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbarclfgoaDaoIdbNUdbarcwfgoaDaoIdbNUdbarczfhrakcufgkmbkkdnalTmbinavadydbcltfgrcxfgkaicwfIdbarcwfIdb:tgDaDNaiIdbarIdb:tgDaDNaiclfIdbarclfIdb:tgDaDNMMgDakIdbgqaqaD9DEUdbadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhrinabarIdbUdbarczfhrabclfhbaecufgembkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbkRbababaeadaialavaoarawaDaqakaxcjjjjdVamz:bjjjbk:p8Koque99due99iuq998Jjjjjbc;Wb9Rgq8Kjjjjbcbhkaqcxfcbc;Kbz:rjjjb8Aaqcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgxBdxaqceBd2axaialavcbcbz:ejjjb8AaqcualcdtalcFFFFi0Egmcbyd1:jjjbHjjjjbbgiBdzaqcdBd2dndnJFF959eJbbjZawJbbjZawJbbjZ9DE:vawJ9VO:d869DEgw:lJbbb9p9DTmbaw:OhPxekcjjjj94hPkadci9Uhsarco9UhzdndnaombaPcd9imekdnalTmbaPcuf:YhwdnaoTmbcbhvaihHaxhOindndnaoavfRbbceGTmbavcjjjjlVhAxekdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHaOcxfhOalavcefgv9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkadTmbcbhkaehvcbhOinakaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgA9haiavydbcdtfydbgXaH9haXaA9hGGfhkavcxfhvaOcifgOad6mbkkarci9UhQdndnaz:Z:rJbbbZMgw:lJbbb9p9DTmbaw:Ohvxekcjjjj94hvkaQ:ZhLcbhKc:bwhHdndninashYaHhXaPhrakg8AaQ9pmeaXar9Rcd9imeavaXcufavaX9iEarcefavar9kEhzdnalTmbazcuf:YhwdnaoTmbcbhOaihPaxhvindndnaoaOfRbbceGTmbaOcjjjjlVhHxekdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcqthHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHasVhHdndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHascCtVhHkaPaHBdbaPclfhPavcxfhvalaOcefgO9hmbxdkkaxhvaihOalhPindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcCthHdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqtaHVhHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaOaHasVBdbavcxfhvaOclfhOaPcufgPmbkkcbhOdnadTmbaehvcbhPinaOaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgs9haiavydbcdtfydbgAaH9haAas9hGGfhOavcxfhvaPcifgPad6mbkkaYhsaOhkaXhHazhPdnaOaQ9nmbaOhsa8AhkazhHarhPkdndnaKcl0mbdnaY:Zgwa8A:ZgC:taz:YgEar:Y:tg3aEaX:Y:tg5aO:Zg8EaL:tNNNawaL:ta5NaCa8E:tNaCaL:ta3Na8Eaw:tNM:vaEMJbbbZMgw:lJbbb9p9DTmbaw:Ohvxdkcjjjj94hvxekaPaHfcd9ThvkaKcefgKcs9hmbxdkka8AhkarhPkdndndnakmbJbbjZhwcbhicdhvaDmexdkalcd4alfhHcehOinaOgvcethOavaH6mbkcbhOaqcuavcdtgravcFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCaqciBd2aqamcbyd1:jjjbHjjjjbbgXBdKaqclBd2dndndndnalTmbaPcuf:YhwaoTmecbhOaihHaxhPindndnaoaOfRbbceGTmbaOcjjjjlVhsxekdndnaPclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqthsdndnaPcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAVhsdndnaPIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAcCtVhskaHasBdbaHclfhHaPcxfhPalaOcefgO9hmbxikkazcFearz:rjjjb8AcbhrcbhvxdkaxhOaihPalhHindndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascCthsdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqtasVhsdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaPasaAVBdbaOcxfhOaPclfhPaHcufgHmbkkazcFearz:rjjjbhAavcufhocbhrcbhzindndndnaAaiazcdtgKfydbgHcm4aH7c:v;t;h;Ev2gvcs4av7aoGgPcdtfgsydbgOcuSmbcehvinaiaOcdtgOfydbaHSmdaPavfhOavcefhvaAaOaoGgPcdtfgsydbgOcu9hmbkkasazBdbarhvarcefhrxekaXaOfydbhvkaXaKfavBdbazcefgzal9hmbkcuarc8S2gOarc;D;O;f8U0EhvkcbhAaqavcbyd1:jjjbHjjjjbbgvBd3aqcvBd2avcbaOz:rjjjbhOdnadTmbaehiinJbbnnJbbjZaXaiydbgHcdtfydbgvaXaiclfydbgPcdtfydbgzSavaXaicwfydbgscdtfydbgKSGgoEh8FdnaxaPcx2fgPIdbaxaHcx2fgHIdbg8E:tgCaxascx2fgsIdlaHIdlg3:tgwNasIdba8E:tgEaPIdla3:tgaN:tgLaLNaaasIdwaHIdwg5:tghNawaPIdwa5:tgaN:tgwawNaaaENahaCN:tgCaCNMM:rgEJbbbb9ETmbaLaE:vhLaCaE:vhCawaE:vhwkaOavc8S2fgvavIdbawa8FaE:rNgEawNNgaMUdbavaCaEaCNghNggavIdlMUdlavaLaEaLNg8FNg8JavIdwMUdwavahawNghavIdxMUdxava8FawNg8KavIdzMUdzava8FaCNg8FavIdCMUdCavawaEaLa5Nawa8ENa3aCNMM:mg3Ng8ENgwavIdKMUdKavaCa8ENgCavId3MUd3avaLa8ENgLavIdaMUdaava8Ea3Ng8EavId8KMUd8KavaEavIdyMUdydnaombaOazc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdyaOaKc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdykaicxfhiaAcifgAad6mbkkcbhHaqcuarcdtgvarcFFFFi0Egicbyd1:jjjbHjjjjbbgPBdaaqcoBd2aqaicbyd1:jjjbHjjjjbbgiBd8KaqcrBd2aPcFeavz:rjjjbhzdnalTmbaXhPinJbbbbJbbjZaOaPydbgsc8S2fgvIdygw:vawJbbbb9BEavIdwaxcwfIdbgwNavIdzaxIdbgCNavIdaMgLaLMMawNavIdlaxclfIdbgLNavIdCawNavId3MgwawMMaLNavIdbaCNavIdxaLNavIdKMgwawMMaCNavId8KMMM:lNhwdndnazascdtgvfgsydbcuSmbaiavfIdbaw9ETmekasaHBdbaiavfawUdbkaPclfhPaxcxfhxalaHcefgH9hmbkkJbbbbhwdnarTmbinaiIdbgCawawaC9DEhwaiclfhiarcufgrmbkkakcd4akfhOcehiinaigvcethiavaO6mbkcbhiaqcuavcdtgOavcFFFFi0Ecbyd1:jjjbHjjjjbbgPBdyaPcFeaOz:rjjjbhsdnadTmbavcufhAcbhrcbhxindnaXaeaxcdtfgvydbcdtfydbgiaXavclfydbcdtfydbgOSmbaiaXavcwfydbcdtfydbgvSmbaOavSmbazavcdtfydbhHdndnazaOcdtfydbgvazaicdtfydbgi9pmbavaH9pmbaHhlaihoavhHxekdnaHai9pmbaHav9pmbaihlavhoxekavhlaHhoaihHkabarcx2fgvaHBdbavcwfaoBdbavclfalBdbdnasaoc:3F;N8N2alc:F:b:DD27aHc;D;O:B8J27aAGgOcdtfgvydbgicuSmbcehPinaPhvdnabaicx2fgiydbaH9hmbaiydlal9hmbaiydwaoSmikavcefhPasaOavfaAGgOcdtfgvydbgicu9hmbkkavarBdbarcefhrkaxcifgxad6mbkarci2hikdnaDmbcwhvxdkaw:rhwcwhvkaDawUdbkavcdthvdninavTmeavc98fgvaqcxffydbcbyd:m:jjjbH:bjjjbbxbkkaqc;Wbf8Kjjjjbaik:2ldwue9:8Jjjjjbc;Wb9Rgr8Kjjjjbcbhwarcxfcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkarcualcdtalcFFFFi0EgDcbyd1:jjjbHjjjjbbgqBdxarceBd2aqcbaialavcbarcxfz:djjjbcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhkarcxfaryd2gxcdtgmfakBdbaraxcefgPBd2akaialavcbcbz:ejjjb8AarcxfaPcdtfaDcbyd1:jjjbHjjjjbbgvBdbaraxcdfgiBd2arcxfaicdtfcuavalaeadaqz:fjjjbgecltaecjjjjiGEcbyd1:jjjbHjjjjbbgiBdbaiaeavakalz:gjjjbdnadTmbaoaoNhocbhwabhlcbhkindnaiavalydbgecdtfydbcdtfIdbao9ETmbalclf8PdbhsabawcdtfgqaeBdbaqclfas83dbawcifhwkalcxfhlakcifgkad6mbkkaxcifhlamarcxffcwfhkdninalTmeakydbcbyd:m:jjjbH:bjjjbbakc98fhkalcufhlxbkkarc;Wbf8Kjjjjbawk:FCoDud99rue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:rjjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgqBdxawceBd2aqaeadaicbcbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd1:jjjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbh5cbhPindna3axaPcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5aPcefgPad9hmbxdkkazcFeasz:rjjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa5:ZghaH:tNNNaOaH:taaNa8Aah:tNa8AaH:ta8FNahaO:tNM:va8EMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd1:jjjbHjjjjbbg5BdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbhDcbhYindndndna3axaYcdtgKfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbcehiinaxaecdtgefydbaCSmdamaifheaicefhia3aeaAGgmcdtfgEydbgecu9hmbkkaEaYBdbaDhiaDcefhDxeka5aefydbhika5aKfaiBdbaYcefgYad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:rjjjb8AcbhDcbhekawaecbyd1:jjjbHjjjjbbgeBd3awcvBd2aecbaiz:rjjjbhEavcd4hKdnadTmbdnalTmbaKcdth3a5hCaqhealhmadhAinaEaCydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaecxfheama3fhmaAcufgAmbxdkka5hmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd1:jjjbHjjjjbbgeBdaawcoBd2awaicbyd1:jjjbHjjjjbbg3Bd8KaecFeaYz:rjjjbhxdnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8AaKcdthPalheina8Aaec;81jjbalEgmIdwaEa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndnaxaAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka5clfh5aqcxfhqaeaPfheadaCcefgC9hmbkkabaxaYz:qjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd:m:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Ydidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:rjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbeeeeeebebbeeebeebbbbebebbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:GNbb"),{}).then(function(a){(B=a.instance).exports.__wasm_call_ctors()});function I(a){if(!a)throw new Error("Assertion failed")}function Q(a){return new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}function C(a,i,t,e,o,r,n,s){var c=B.exports.sbrk,D=c(4*s),b=c(t*e),h=c(t*r),w=new Uint8Array(B.exports.memory.buffer);w.set(Q(i),b),o&&w.set(Q(o),h);var f=a(D,b,t,e,h,r,n,s);new Uint8Array(B.exports.memory.buffer);var p=new Uint32Array(f);return Q(p).set(w.subarray(D,D+4*f)),c(D-c(0)),p}var E={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,Regularize:16,Permissive:32,_InternalDebug:1<<30}})(),function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g=WebAssembly.instantiate(function(E){for(var a=new Uint8Array(E.length),i=0;i<E.length;++i){var t=E.charCodeAt(i);a[i]=t>96?t-97:t>64?t-39:t+4}var e=0;for(i=0;i<E.length;++i)a[e++]=a[i]<60?A[a[i]]:64*(a[i]-60)+a[++i];return a.buffer.slice(0,e)}("b9H79TebbbeVx9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gvuuuuueu9Gwuuuuuuuub9Gxuuuuuuuuuuuueu9Gkuuuuuuuuuu99eu9Gouuuuuub9Gruuuuuuub9GluuuubiAOdilvorwDqqDkbiibeilve9Weiiviebeoweuec;G:Odkr;qeDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDE9TW79O9V9Wt9F9J9V9T9W91tW9t9W9OWVW9c9V919U9K7bqL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbkl79IV9RbxDwebcekdszq:x9DOdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:w8KDPue99eux99dui99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:ojjjb8Adndnalcb9imbaoal9nmbamcuaocdtaocFFFFi0Egscbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamascbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8waihsalhAinazasydbcdtfcbBdbasclfhsaAcufgAmbkaihsalhAinazasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkaihsalhCcbhXindnazasydbcdtgQfgAydbcb9imbaHaQfaXBdbaAaAydbgQcjjjj94VBdbaQaXfhXkasclfhsaCcufgCmbkalci9UhLdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhXaHaAydbcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaXcdtfgXaXydbgXcefBdbaOaXcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaihsalhAindnazasydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaHaCfgCaCydbaQ9RBdbkasclfhsaAcufgAmbxdkkamcuaocdtgsaocFFFFi0EgAcbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamaAcbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8wazcbasz:ojjjbhXalci9UhLaihsalhAinaXasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkdnaoTmbcbhsaHhAaXhCaohQinaAasBdbaAclfhAaCydbasfhsaCclfhCaQcufgQmbkkdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhQaHaAydbcdtfgKaKydbgKcefBdbaOaKcdtfasBdbaHaQcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaoTmbcbhsaohAinaHasfgCaCydbaXasfydb9RBdbasclfhsaAcufgAmbkkamaLcbyd;u1jjbHjjjjbbgsBd:OwamclBd;8wascbaLz:ojjjbhYamcuaLcK2alcjjjjd0Ecbyd;u1jjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihAa8AhsaLhrJbbbbh5inavaAclfydbaK2cdtfgCIdlh8EavaAydbaK2cdtfgXIdlhEavaAcwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgasaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbasclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyascxfa8EaE:tg8Eagah:tggNa8FaE:tg8Faaah:tgaN:tgEJbbbbJbbjZa8Ja8K:tg8Ja8FNa8La8K:tg8Ka8EN:tghahNaEaENaaa8KNaga8JN:tgEaENMM:rg8K:va8KJbbbb9BEg8ENUdbasczfaEa8ENUdbascCfaha8ENUdbascwfa8Maya8NMMJbbnn:vUdba5a8KMh5aAcxfhAascKfhsarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;u1jjbHjjjjbbgCBd:WwamcoBd;8waEaq:ZNhEdna3mbcbhsaChAinaAasBdbaAclfhAaLascefgs9hmbkkaE:rhhcuh8PamcuaLcltalcFFFFd0Ecbyd;u1jjbHjjjjbbgIBd:0wamcrBd;8wcbaIa8AaCaLz:djjjb8AJFFuuhyJFFuuh8RJFFuuh8Sdnalci6gXmbJFFuuh8Sa8AhsaLhAJFFuuh8RJFFuuhyinascwfIdbgEayayaE9EEhyasclfIdbgEa8Ra8RaE9EEh8RasIdbgEa8Sa8SaE9EEh8SascKfhsaAcufgAmbkkahJbbbZNhgamaocetgscuaocu9kEcbyd;u1jjbHjjjjbbgABd:4waAcFeasz:ojjjbhCdnaXmbcbhAJFFuuhEa8Ahscuh8PinascwfIdbay:tghahNasIdba8S:tghahNasclfIdba8R:tghahNMM:rghaEa8PcuSahaE9DVgXEhEaAa8PaXEh8PascKfhsaLaAcefgA9hmbkkamczfcbcjwz:ojjjb8Aamcwf9cb83ibam9cb83ibagaxNhRJbbjZak:th8Ncbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80cbh81cbhPinJbbbbhEdna8UTmbJbbjZa8U:Z:vhEkJbbbbhhdna80a80Na8Ya8YNa8Za8ZNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8XaENh5a8WaENh8Fa8VaENhaa8PhQdndndndndna8UaPVTmbamydwgBTmea80ahNh8Ja8ZahNh8La8YahNh8Maeamydbcdtfh83cbh3JFFuuhEcvhXcuhQindnaza83a3cdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAindndnaCaiaAydbgKcx2fgsclfydbgrcetf8Vebcs4aCasydbgLcetf8Vebcs4faCascwfydbglcetf8Vebcs4fgombcbhsxekcehsazaLcdtfydbgLceSmbcehsazarcdtfydbgrceSmbcehsazalcdtfydbglceSmbdnarcdSaLcdSfalcdSfcd6mbaocefhsxekaocdfhskdnasaX9kmba8AaKcK2fgLIdwa5:thhaLIdla8F:th8KaLIdbaa:th8EdndnakJbbbb9DTmba8E:lg8Ea8K:lg8Ka8Ea8K9EEg8Kah:lgha8Kah9EEag:vJbbjZMhhxekahahNa8Ea8ENa8Ka8KNMM:rag:va8NNJbbjZMJ9VO:d86JbbjZaLIdCa8JNaLIdxa8MNa8LaLIdzNMMakN:tghahJ9VO:d869DENhhkaKaQasaX6ahaE9DVgLEhQasaXaLEhXahaEaLEhEkaAclfhAavcufgvmbkka3cefg3aB9hmbkkaQcu9hmekama5Ud:ODama8FUd:KDamaaUd:GDamcuBd:qDamcFFF;7rBdjDaIcba8AaYamc:GDfakJbbbb9Damc:qDfamcjDfz:ejjjbamyd:qDhQdndnaxJbbbb9ETmba8UaD6mbaQcuSmeceh3amIdjDaR9EmixdkaQcu9hmekdna8UTmbdnamydlgza8Uci2fgsciGTmbadasfcba8Uazcu7fciGcefz:ojjjb8AkabaPcltfgzam8Pib83dbazcwfamcwf8Pib83dbaPcefhPkc3hzinazc98Smvamc:Cwfazfydbcbyd;y1jjbH:bjjjbbazc98fhzxbkkcbh3a8Uaq9pmbamydwaCaiaQcx2fgsydbcetf8Vebcs4aCascwfydbcetf8Vebcs4faCasclfydbcetf8Vebcs4ffaw9nmekcbhscbhAdna81TmbcbhAamczfhXinamczfaAcdtfaXydbgLBdbaXclfhXaAaYaLfRbbTfhAa81cufg81mbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDaAc;8eaAclfc:bd6Eh81inamcjDfasfcFFF;7rBdbasclfgscz9hmbka81cdthBdnalTmbaeaXcdtfhocbhrindnazaoarcdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAcuhLcuhsinazaiaAydbgKcx2fgXclfydbcdtfydbazaXydbcdtfydbfazaXcwfydbcdtfydbfgXasaXas6gXEhsaKaLaXEhLaAclfhAavcufgvmbkaLcuSmba8AaLcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEcbhAindndnasamc:qDfaAfgvydbgX6mbasaX9hmeaEamcjDfaAfIdb9FTmekavasBdbamc:GDfaAfaLBdbamcjDfaAfaEUdbxdkaAclfgAcz9hmbkkarcefgral9hmbkkamczfaBfhLcbhscbhAindnamc:GDfasfydbgXcuSmbaLaAcdtfaXBdbaAcefhAkasclfgscz9hmbkaAa81fg81TmbJFFuuhhcuhKamczfhsa81hvcuhLina8AasydbgXcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEdndnazaiaXcx2fgAclfydbcdtfydbazaAydbcdtfydbfazaAcwfydbcdtfydbfgAaL6mbaAaL9hmeaEah9DTmekaEhhaAhLaXhKkasclfhsavcufgvmbkaKcuSmbaKhQkdnamaiaQcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80kcbhXinaOaHaraXcdtfydbcdtgAfydbcdtfgKhsazaAfgvydbgLhAdnaLTmbdninasydbaQSmeasclfhsaAcufgATmdxbkkasaKaLcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaQcK2fgsIdbhEasIdlhhasIdwh8KasIdxh8EasIdzh5asIdCh8FaYaQfce86bba80a8FMh80a8Za5Mh8Za8Ya8EMh8Ya8Xa8KMh8Xa8WahMh8Wa8VaEMh8Vamydxh8Uxbkkamc:WDf8KjjjjbaPk;Vvivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbararydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark:;idiud99dndnabaecitfgwydlgDciGgqciSmbinabcbaDcd4gDalaqcdtfIdbawIdb:tgkJbbbb9FEgwaecefgefadaialavaoarz:ejjjbak:larIdb9FTmdabawaD7aefgecitfgwydlgDciGgqci9hmbkkabaecitfgeclfhbdnavmbcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdwalIdw:tgkakNaqIdbalIdb:tgkakNaqIdlalIdl:tgkakNMM:rgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbxdkkcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdbalIdb:t:lgkaqIdlalIdl:t:lgxakax9EEgkaqIdwalIdw:t:lgxakax9EEgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbkkk;llevudnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0abydxaq9pVakVgDce9hmbavawcltfgxab8Pdb83dbaxcwfabcwfgx8Pdb83dbdnaxydbgqTmbaoabydbcdtfhxaqhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkdnabydxglci2gsabydlgxfgkciGTmbarakfcbalaxcu7fciGcefz:ojjjb8Aabydxci2hsabydlhxabydwhqkab9cb83dwababydbaqfBdbabascifc98GaxfBdlaP8Vebhscbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk8LbabaeadaialavaoarawaDaDaqJbbbbz:cjjjbk;Nkovud99euv99eul998Jjjjjbc:W;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:W:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaoc8Wfawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeaocbBd8Sao9cb83iKao9cb83izaoczfaoc8Wfawci2cxaoc8Sfcbcrz1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:W:qefawcxaoc8Sfcbciz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:W:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:W:qefheaoc8WfhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabaxUd8KabasUdaabazUd3abaCaxaPN:tUdKabaXasaPN:tUdCabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabae86b8UdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabav86bRdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:W;aef8Kjjjjbk;Iwwvul99iud99eue99eul998Jjjjjbcje9Rgr8Kjjjjbavcd4hwaicd4hDdndnaoTmbarc;abfcbaocdtgvz:ojjjb8Aarc;Gbfcbavz:ojjjb8AarhvarcafhiaohqinavcFFF97BdbaicFFF;7rBdbaiclfhiavclfhvaqcufgqmbkdnadTmbcbhkinaeakaD2cdtfgvIdwhxavIdlhmavIdbhPalakaw2cdtfIdbhsarc;abfhzarhiarc;GbfhHarcafhqcj1jjbhvaohOinasavcwfIdbaxNavIdbaPNavclfIdbamNMMgAMhCakhXdnaAas:tgAaqIdbgQ9DgLmbaHydbhXkaHaXBdbakhXdnaCaiIdbgK9EmbazydbhXaKhCkazaXBdbaiaCUdbaqaAaQaLEUdbavcxfhvaqclfhqaHclfhHaiclfhiazclfhzaOcufgOmbkakcefgkad9hmbkkadThkJbbbbhCcbhXarc;abfhvarc;Gbfhicbhqinalavydbgzaw2cdtfIdbalaiydbgHaw2cdtfIdbaeazaD2cdtfgzIdwaeaHaD2cdtfgHIdw:tgsasNazIdbaHIdb:tgsasNazIdlaHIdl:tgsasNMM:rMMgsaCasaC9EgzEhCaqaXazEhXaiclfhiavclfhvaoaqcefgq9hmbkaCJbbbZNhKxekadThkcbhXJbbbbhKkJbbbbhCdnaearc;abfaXcdtgifydbgqaD2cdtfgvIdwaearc;GbfaifydbgzaD2cdtfgiIdwgm:tgsasNavIdbaiIdbgY:tgAaANavIdlaiIdlgP:tgQaQNMM:rgxJbbbb9ETmbaxalaqaw2cdtfIdbMalazaw2cdtfIdb:taxaxM:vhCkasaCNamMhmaQaCNaPMhPaAaCNaYMhYdnakmbaDcdthvawcdthiindnalIdbg8AaecwfIdbam:tgCaCNaeIdbaY:tgsasNaeclfIdbaP:tgAaANMM:rgQMgEaK9ETmbJbbbbhxdnaQJbbbb9ETmbaEaK:taQaQM:vhxkaxaCNamMhmaxaANaPMhPaxasNaYMhYa8AaKaQMMJbbbZNhKkaeavfhealaifhladcufgdmbkkabaKUdxabamUdwabaPUdlabaYUdbarcjef8Kjjjjbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Reeeu8Jjjjjbca9Rgo8Kjjjjbab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbdnadTmbaocbBd3ao9cb83iwao9cb83ibaoaeadaialaoc3falEavcbalEcrz1jjjbabao8Pib83dbabao8Piw83dwkaocaf8Kjjjjbk:3lequ8JjjjjbcjP9Rgl8Kjjjjbcbhvalcjxfcbaiz:ojjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjxfaDcefRbbfRbb9RcFeGci6aoalcjxfaDRbbfRbb9RcFeGci6faoalcjxfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:rjjjb8Aakalcjxffaocefgo86bbaxalcjxffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjxffao86bbarcifhravcefgvad9hmbkalcFeaicetz:ojjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkcetfgw8UebgDcu9kmbawax87ebaocjlfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjlfaDz:njjjb8AalcjPf8Kjjjjbk9teiucbcbyd;C1jjbgeabcifc98GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;C1jjbgeabcrfc94GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;C1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;C1jjbfgdBd;C1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkk9Tdbcjwk9ubbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;uwkxebbbdbbb9GNbb"),{}).then(function(E){(B=E.instance).exports.__wasm_call_ctors()});function I(E){if(!E)throw new Error("Assertion failed")}function Q(E){return new Uint8Array(E.buffer,E.byteOffset,E.byteLength)}function C(E){var a=new Float32Array(B.exports.memory.buffer,E,12);return{centerX:a[0],centerY:a[1],centerZ:a[2],radius:a[3],coneApexX:a[4],coneApexY:a[5],coneApexZ:a[6],coneAxisX:a[7],coneAxisY:a[8],coneAxisZ:a[9],coneCutoff:a[10]}}}();let Og=0;class KE{constructor(A){if(this.downloadParallelism=A.downloadParallelism==null?8:A.downloadParallelism,this.timeout=A.timeout!=null?A.timeout:5e3,this.renderer=A.renderer,this.zUpToYUpMatrix=new V.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems!=null&&(this.maxCachedItems=A.maxCachedItems)),this.gltfLoader=new _C,this.gltfLoader.register(g=>({name:"KHR_spz_gaussian_splats_compression"})),A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const g=new gE;g.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"),this.dracoLoader=g,this.gltfLoader.setDRACOLoader(g),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const g=new hg;g.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.ktx2loader=g,this.gltfLoader.setKTX2Loader(g),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(HE),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new XC(this.gltfLoader),this.GLTFTileDecoder=new ja(this.gltfLoader,this.renderer),this.cache=new VC,this.register={},this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const A=this;Og<A.downloadParallelism&&A._download(),A._loadBatch()}_scheduleDownload(A){this.downloads.unshift(A)}_download(){do{if(this.nextDownloads.length==0&&(this._getNextDownloads(),this.nextDownloads.length==0))return;for(;this.nextDownloads.length>0;){const A=this.nextDownloads.shift();A&&A.shouldDoDownload()&&A.doDownload()}}while(Og<this.downloadParallelism)}_meshReceived(A,g,I,Q,C,E,a){this.ready.unshift([A,g,I,Q,C,E,a])}_loadBatch(){for(this.nextReady.length==0&&this._getNextReady();this.nextReady.length>0;){const A=this.nextReady.shift();if(!A)return;const g=A[0],I=A[1],Q=A[2],C=g.get(Q);C&&I[Q]&&Object.keys(I[Q]).forEach(E=>{const a=I[Q][E];a&&(g.put(Q,a(C)),I[Q][E]=null)}),this.nextReady.length==0&&this._getNextReady()}}_getNextDownloads(){let A=Number.POSITIVE_INFINITY,g=-1;for(let a=this.downloads.length-1;a>=0;a--)this.downloads[a].shouldDoDownload()?this.downloads[a].distanceFunction||this.nextDownloads.push(this.downloads.splice(a,1)[0]):this.downloads.splice(a,1);if(this.nextDownloads.length>0)return;let I,Q=0,C=Number.MAX_SAFE_INTEGER,E=-1;for(let a=this.downloads.length-1;a>=0;a--){const i=this.downloads[a].distanceFunction();i<=A&&(A=i,g=a),Q=Math.max(this.downloads[a].level),this.downloads[a].loadingStrategy!="IMMEDIATE"&&this.downloads[a].level<C&&(C=this.downloads[a].level,E=a)}if(Q>C+4?I=this.downloads.splice(E,1).pop():g>=0&&(I=this.downloads.splice(g,1).pop()),I){this.nextDownloads.push(I);const a=I.getSiblings();for(let i=this.downloads.length-1;i>=0;i--)a.map(t=>t.uuid).includes(this.downloads[i].uuid)&&this.nextDownloads.push(this.downloads.splice(i,1).pop())}}_getNextReady(){let A=Number.POSITIVE_INFINITY,g=-1;for(let I=this.ready.length-1;I>=0;I--)this.ready[I][3]||this.nextReady.push(this.ready.splice(I,1)[0]);if(!(this.nextReady.length>0)){for(let I=this.ready.length-1;I>=0;I--){const Q=this.ready[I][3]()*this.ready[I][5];Q<=A&&(A=Q,g=I)}if(g>=0){const I=this.ready.splice(g,1).pop();this.nextReady.push(I);const Q=I[4]();for(let C=this.ready.length-1;C>=0;C--)Q.map(E=>E.uuid).includes(this.ready[C][6])&&this.nextReady.push(this.ready.splice(C,1).pop())}}}get(A,g,I,Q,C,E,a,i,t,e,o,r){const n=this,s=IC(I),c=new AbortController;if(A.signal.addEventListener("abort",()=>{n.register[s]&&Object.keys(n.register[s]).length!=0||c.abort("user abort")}),!(I.includes(".b3dm")||I.includes(".json")||I.includes(".gltf")||I.includes(".glb")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");if(n.register[s]||(n.register[s]={}),n.register[s][g]&&console.error(" a tile should only be loaded once"),n.register[s][g]=Q,n.cache.get(s))this._meshReceived(n.cache,n.register,s,C,E,a,g);else{let D;I.includes(".b3dm")?D=()=>{var b;b=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Og++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.b3dmDecoder.parseB3DM(h,w=>{n.meshCallback(w,o)},t,e)).then(h=>{n.cache.put(s,h),this._meshReceived(n.cache,n.register,s,C,E,a,g),n._checkSize()}).catch(h=>{}).finally(()=>{Og--})}:I.includes(".glb")||I.includes(".gltf")?D=()=>{var b;b=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Og++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.GLTFTileDecoder.parseSplats(h,t,e,r)).then(h=>{h.isSplatsData||(t&&h.applyMatrix4(this.zUpToYUpMatrix),h.traverse(w=>{w.isMesh&&(e&&w.applyMatrix4(this.zUpToYUpMatrix),n.meshCallback&&n.meshCallback(w,o)),w.isPoints&&n.pointsCallback&&n.pointsCallback(w,o)})),n.cache.put(s,h),n._meshReceived(n.cache,n.register,s,C,E,a,g),n._checkSize()}).catch(h=>{}).finally(()=>{Og--})}:I.includes(".json")&&(D=()=>{var b;b=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Og++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.json()}).then(h=>GQ(h,I)).then(h=>{n.cache.put(s,h),n._meshReceived(n.cache,n.register,s),n._checkSize()}).catch(h=>{console.error(h)}).finally(()=>{Og--})}),this._scheduleDownload({shouldDoDownload:()=>!A.signal.aborted&&!!n.register[s]&&Object.keys(n.register[s]).length>0&&!n.cache.get(s),doDownload:D,distanceFunction:C,getSiblings:E,level:a,loadingStrategy:i,uuid:g})}}clear(){const A=this.maxCachedItems;this.maxCachedItems=0,this._checkSize(),this.maxCachedItems=A}invalidate(A,g){const I=IC(A),Q=this;Q.register[I]&&setTimeout(()=>{Q.register&&Q.register[I]&&(delete Q.register[I][g],Q._checkSize())},Q.timeout)}dispose(){let A=this.cache.head();for(this._disposeEntryContent(A);(A=A.next()).key!=null;)this._disposeEntryContent(A);this.cache.reset(),this.cache=void 0,this.register=void 0,this.dracoLoader&&this.dracoLoader.dispose(),this.ktx2loader&&this.ktx2loader.dispose()}_checkSize(){const A=this;let g=0;for(;A.cache.size()>A.maxCachedItems&&g<A.cache.size();){g++;const I=A.cache.head(),Q=A.register[I.key];Q&&(Object.keys(Q).length>0?(A.cache.remove(I.key),A.cache.put(I.key,I.value)):(A.cache.remove(I.key),delete A.register[I.key],A._disposeEntryContent(I)))}}_disposeEntryContent(A){A.value&&(A.value.isSplatsBatch?A.value.remove():A.value.traverse&&A.value.traverse(g=>{if(g.material)if(g.material.length)for(let I=0;I<g.material.length;++I)g.material[I].dispose();else g.material.dispose();g.geometry&&g.geometry.dispose()}))}}function IC(B){for(var A=B.split("/"),g=[],I=0,Q=0;Q<A.length;Q++){var C=A[Q];C!=="."&&C!==""&&C!==".."?g[I++]=C:C===".."&&I>0&&I--}if(I===0)return"/";var E="";for(Q=0;Q<I;Q++)E+="/"+g[Q];return E}const ZA=[];for(let B=0;B<256;++B)ZA.push((B+256).toString(16).slice(1));let AQ;const Re=new Uint8Array(16),BC={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function jE(B,A,g){if(BC.randomUUID&&!B)return BC.randomUUID();const I=(B=B||{}).random??B.rng?.()??function(){if(!AQ){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");AQ=crypto.getRandomValues.bind(crypto)}return AQ(Re)}();if(I.length<16)throw new Error("Random bytes length must be >= 16");return I[6]=15&I[6]|64,I[8]=63&I[8]|128,function(Q,C=0){return(ZA[Q[C+0]]+ZA[Q[C+1]]+ZA[Q[C+2]]+ZA[Q[C+3]]+"-"+ZA[Q[C+4]]+ZA[Q[C+5]]+"-"+ZA[Q[C+6]]+ZA[Q[C+7]]+"-"+ZA[Q[C+8]]+ZA[Q[C+9]]+"-"+ZA[Q[C+10]]+ZA[Q[C+11]]+ZA[Q[C+12]]+ZA[Q[C+13]]+ZA[Q[C+14]]+ZA[Q[C+15]]).toLowerCase()}(I)}var QC,CC,eI=function(){if(CC)return QC;function B(I){if(typeof I!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(I))}function A(I,Q){for(var C,E="",a=0,i=-1,t=0,e=0;e<=I.length;++e){if(e<I.length)C=I.charCodeAt(e);else{if(C===47)break;C=47}if(C===47){if(!(i===e-1||t===1))if(i!==e-1&&t===2){if(E.length<2||a!==2||E.charCodeAt(E.length-1)!==46||E.charCodeAt(E.length-2)!==46){if(E.length>2){var o=E.lastIndexOf("/");if(o!==E.length-1){o===-1?(E="",a=0):a=(E=E.slice(0,o)).length-1-E.lastIndexOf("/"),i=e,t=0;continue}}else if(E.length===2||E.length===1){E="",a=0,i=e,t=0;continue}}Q&&(E.length>0?E+="/..":E="..",a=2)}else E.length>0?E+="/"+I.slice(i+1,e):E=I.slice(i+1,e),a=e-i-1;i=e,t=0}else C===46&&t!==-1?++t:t=-1}return E}CC=1;var g={resolve:function(){for(var I,Q="",C=!1,E=arguments.length-1;E>=-1&&!C;E--){var a;E>=0?a=arguments[E]:(I===void 0&&(I=process.cwd()),a=I),B(a),a.length!==0&&(Q=a+"/"+Q,C=a.charCodeAt(0)===47)}return Q=A(Q,!C),C?Q.length>0?"/"+Q:"/":Q.length>0?Q:"."},normalize:function(I){if(B(I),I.length===0)return".";var Q=I.charCodeAt(0)===47,C=I.charCodeAt(I.length-1)===47;return(I=A(I,!Q)).length!==0||Q||(I="."),I.length>0&&C&&(I+="/"),Q?"/"+I:I},isAbsolute:function(I){return B(I),I.length>0&&I.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var I,Q=0;Q<arguments.length;++Q){var C=arguments[Q];B(C),C.length>0&&(I===void 0?I=C:I+="/"+C)}return I===void 0?".":g.normalize(I)},relative:function(I,Q){if(B(I),B(Q),I===Q||(I=g.resolve(I))===(Q=g.resolve(Q)))return"";for(var C=1;C<I.length&&I.charCodeAt(C)===47;++C);for(var E=I.length,a=E-C,i=1;i<Q.length&&Q.charCodeAt(i)===47;++i);for(var t=Q.length-i,e=a<t?a:t,o=-1,r=0;r<=e;++r){if(r===e){if(t>e){if(Q.charCodeAt(i+r)===47)return Q.slice(i+r+1);if(r===0)return Q.slice(i+r)}else a>e&&(I.charCodeAt(C+r)===47?o=r:r===0&&(o=0));break}var n=I.charCodeAt(C+r);if(n!==Q.charCodeAt(i+r))break;n===47&&(o=r)}var s="";for(r=C+o+1;r<=E;++r)r!==E&&I.charCodeAt(r)!==47||(s.length===0?s+="..":s+="/..");return s.length>0?s+Q.slice(i+o):(i+=o,Q.charCodeAt(i)===47&&++i,Q.slice(i))},_makeLong:function(I){return I},dirname:function(I){if(B(I),I.length===0)return".";for(var Q=I.charCodeAt(0),C=Q===47,E=-1,a=!0,i=I.length-1;i>=1;--i)if((Q=I.charCodeAt(i))===47){if(!a){E=i;break}}else a=!1;return E===-1?C?"/":".":C&&E===1?"//":I.slice(0,E)},basename:function(I,Q){if(Q!==void 0&&typeof Q!="string")throw new TypeError('"ext" argument must be a string');B(I);var C,E=0,a=-1,i=!0;if(Q!==void 0&&Q.length>0&&Q.length<=I.length){if(Q.length===I.length&&Q===I)return"";var t=Q.length-1,e=-1;for(C=I.length-1;C>=0;--C){var o=I.charCodeAt(C);if(o===47){if(!i){E=C+1;break}}else e===-1&&(i=!1,e=C+1),t>=0&&(o===Q.charCodeAt(t)?--t==-1&&(a=C):(t=-1,a=e))}return E===a?a=e:a===-1&&(a=I.length),I.slice(E,a)}for(C=I.length-1;C>=0;--C)if(I.charCodeAt(C)===47){if(!i){E=C+1;break}}else a===-1&&(i=!1,a=C+1);return a===-1?"":I.slice(E,a)},extname:function(I){B(I);for(var Q=-1,C=0,E=-1,a=!0,i=0,t=I.length-1;t>=0;--t){var e=I.charCodeAt(t);if(e!==47)E===-1&&(a=!1,E=t+1),e===46?Q===-1?Q=t:i!==1&&(i=1):Q!==-1&&(i=-1);else if(!a){C=t+1;break}}return Q===-1||E===-1||i===0||i===1&&Q===E-1&&Q===C+1?"":I.slice(Q,E)},format:function(I){if(I===null||typeof I!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof I);return function(Q,C){var E=C.dir||C.root,a=C.base||(C.name||"")+(C.ext||"");return E?E===C.root?E+a:E+Q+a:a}("/",I)},parse:function(I){B(I);var Q={root:"",dir:"",base:"",ext:"",name:""};if(I.length===0)return Q;var C,E=I.charCodeAt(0),a=E===47;a?(Q.root="/",C=1):C=0;for(var i=-1,t=0,e=-1,o=!0,r=I.length-1,n=0;r>=C;--r)if((E=I.charCodeAt(r))!==47)e===-1&&(o=!1,e=r+1),E===46?i===-1?i=r:n!==1&&(n=1):i!==-1&&(n=-1);else if(!o){t=r+1;break}return i===-1||e===-1||n===0||n===1&&i===e-1&&i===t+1?e!==-1&&(Q.base=Q.name=t===0&&a?I.slice(1,e):I.slice(t,e)):(t===0&&a?(Q.name=I.slice(1,i),Q.base=I.slice(1,e)):(Q.name=I.slice(t,i),Q.base=I.slice(t,e)),Q.ext=I.slice(i,e)),t>0?Q.dir=I.slice(0,t-1):a&&(Q.dir="/"),Q},sep:"/",delimiter:":",win32:null,posix:null};return g.posix=g,QC=g}();function bB(){return bB=Object.assign?Object.assign.bind():function(B){for(var A=1;A<arguments.length;A++){var g=arguments[A];for(var I in g)({}).hasOwnProperty.call(g,I)&&(B[I]=g[I])}return B},bB.apply(null,arguments)}var qE={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function pe(B,A){if(nB(B,A))return B[A];throw typeof B[A]=="function"&&function(g,I){return g==null||typeof g[I]!="function"||uB(g,I)&&Object.getPrototypeOf&&I in Object.getPrototypeOf(g)?!1:uB(ke,I)?!0:!(I in Object.prototype||I in Function.prototype)}(B,A)?new Error('Cannot access method "'+A+'" as a property'):new Error('No access to property "'+A+'"')}function nB(B,A){return!(!function(g){return typeof g=="object"&&g&&g.constructor===Object}(B)&&!Array.isArray(B))&&(!!uB(Ne,A)||!(A in Object.prototype)&&!(A in Function.prototype))}var Ne={length:!0,name:!0},ke={toString:!0,valueOf:!0,toLocaleString:!0};class Ue{constructor(A){this.wrappedObject=A,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(A=>this.has(A)).values()}get(A){return pe(this.wrappedObject,A)}set(A,g){return function(I,Q,C){if(nB(I,Q))return I[Q]=C,C;throw new Error('No access to property "'+Q+'"')}(this.wrappedObject,A,g),this}has(A){return nB(this.wrappedObject,A)&&A in this.wrappedObject}entries(){return function(A,g){return{next:()=>{var I=A.next();return I.done?I:{value:g(I.value),done:!1}}}}(this.keys(),A=>[A,this.get(A)])}forEach(A){for(var g of this.keys())A(this.get(g),g,this)}delete(A){nB(this.wrappedObject,A)&&delete this.wrappedObject[A]}clear(){for(var A of this.keys())this.delete(A)}get size(){return Object.keys(this.wrappedObject).length}}function UA(B){return typeof B=="number"}function WA(B){return!(!B||typeof B!="object"||typeof B.constructor!="function")&&(B.isBigNumber===!0&&typeof B.constructor.prototype=="object"&&B.constructor.prototype.isBigNumber===!0||typeof B.constructor.isDecimal=="function"&&B.constructor.isDecimal(B)===!0)}function me(B){return typeof B=="bigint"}function vE(B){return B&&typeof B=="object"&&Object.getPrototypeOf(B).isComplex===!0||!1}function TE(B){return B&&typeof B=="object"&&Object.getPrototypeOf(B).isFraction===!0||!1}function OE(B){return B&&B.constructor.prototype.isUnit===!0||!1}function pg(B){return typeof B=="string"}var VA=Array.isArray;function qA(B){return B&&B.constructor.prototype.isMatrix===!0||!1}function wB(B){return Array.isArray(B)||qA(B)}function Se(B){return B&&B.isDenseMatrix&&B.constructor.prototype.isMatrix===!0||!1}function Le(B){return B&&B.isSparseMatrix&&B.constructor.prototype.isMatrix===!0||!1}function Je(B){return B&&B.constructor.prototype.isRange===!0||!1}function RQ(B){return B&&B.constructor.prototype.isIndex===!0||!1}function Ye(B){return typeof B=="boolean"}function xe(B){return B&&B.constructor.prototype.isResultSet===!0||!1}function He(B){return B&&B.constructor.prototype.isHelp===!0||!1}function Ke(B){return typeof B=="function"}function je(B){return B instanceof Date}function qe(B){return B instanceof RegExp}function pQ(B){return!(!B||typeof B!="object"||B.constructor!==Object||vE(B)||TE(B))}function ve(B){return!!B&&(B instanceof Map||B instanceof Ue||typeof B.set=="function"&&typeof B.get=="function"&&typeof B.keys=="function"&&typeof B.has=="function")}function Te(B){return B===null}function Oe(B){return B===void 0}function We(B){return B&&B.isAccessorNode===!0&&B.constructor.prototype.isNode===!0||!1}function Pe(B){return B&&B.isArrayNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ve(B){return B&&B.isAssignmentNode===!0&&B.constructor.prototype.isNode===!0||!1}function ze(B){return B&&B.isBlockNode===!0&&B.constructor.prototype.isNode===!0||!1}function Xe(B){return B&&B.isConditionalNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ze(B){return B&&B.isConstantNode===!0&&B.constructor.prototype.isNode===!0||!1}function _e(B){return B&&B.isFunctionAssignmentNode===!0&&B.constructor.prototype.isNode===!0||!1}function $e(B){return B&&B.isFunctionNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ai(B){return B&&B.isIndexNode===!0&&B.constructor.prototype.isNode===!0||!1}function gi(B){return B&&B.isNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ii(B){return B&&B.isObjectNode===!0&&B.constructor.prototype.isNode===!0||!1}function Bi(B){return B&&B.isOperatorNode===!0&&B.constructor.prototype.isNode===!0||!1}function Qi(B){return B&&B.isParenthesisNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ci(B){return B&&B.isRangeNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ei(B){return B&&B.isRelationalNode===!0&&B.constructor.prototype.isNode===!0||!1}function ai(B){return B&&B.isSymbolNode===!0&&B.constructor.prototype.isNode===!0||!1}function ei(B){return B&&B.constructor.prototype.isChain===!0||!1}function _g(B){var A=typeof B;return A==="object"?B===null?"null":WA(B)?"BigNumber":B.constructor&&B.constructor.name?B.constructor.name:"Object":A}function jA(B){var A=typeof B;if(A==="number"||A==="bigint"||A==="string"||A==="boolean"||B==null)return B;if(typeof B.clone=="function")return B.clone();if(Array.isArray(B))return B.map(function(g){return jA(g)});if(B instanceof Date)return new Date(B.valueOf());if(WA(B))return B;if(pQ(B))return function(g,I){var Q={};for(var C in g)uB(g,C)&&(Q[C]=I(g[C]));return Q}(B,jA);if(A==="function")return B;throw new TypeError("Cannot clone: unknown type of value (value: ".concat(B,")"))}function pI(B,A){var g,I,Q;if(Array.isArray(B)){if(!Array.isArray(A)||B.length!==A.length)return!1;for(I=0,Q=B.length;I<Q;I++)if(!pI(B[I],A[I]))return!1;return!0}if(typeof B=="function")return B===A;if(B instanceof Object){if(Array.isArray(A)||!(A instanceof Object))return!1;for(g in B)if(!(g in A)||!pI(B[g],A[g]))return!1;for(g in A)if(!(g in B))return!1;return!0}return B===A}function uB(B,A){return B&&Object.hasOwnProperty.call(B,A)}var iI=function(B){if(B)throw new Error(`The global config is readonly.
|
|
899
899
|
Please create a mathjs instance if you want to change the default configuration.
|
|
900
900
|
Example:
|
|
901
901
|
|
|
902
902
|
import { create, all } from 'mathjs';
|
|
903
903
|
const mathjs = create(all);
|
|
904
904
|
mathjs.config({ number: 'BigNumber' });
|
|
905
|
-
`);return Object.freeze(qE)};function EC(){return!0}function Dg(){return!1}function dI(){}bB(iI,qE,{MATRIX_OPTIONS:["Matrix","Array"],NUMBER_OPTIONS:["number","BigNumber","Fraction"]});const aC="Argument is not a typed-function.",lB=function B(){function A(M){return typeof M=="object"&&M!==null&&M.constructor===Object}const g=[{name:"number",test:function(M){return typeof M=="number"}},{name:"string",test:function(M){return typeof M=="string"}},{name:"boolean",test:function(M){return typeof M=="boolean"}},{name:"Function",test:function(M){return typeof M=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(M){return M instanceof Date}},{name:"RegExp",test:function(M){return M instanceof RegExp}},{name:"Object",test:A},{name:"null",test:function(M){return M===null}},{name:"undefined",test:function(M){return M===void 0}}],I={name:"any",test:EC,isAny:!0};let Q,C,E=0,a={createCount:0};function i(M){const N=Q.get(M);if(N)return N;let L='Unknown type "'+M+'"';const x=M.toLowerCase();let K;for(K of C)if(K.toLowerCase()===x){L+='. Did you mean "'+K+'" ?';break}throw new TypeError(L)}function t(M){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any";const L=N?i(N).index:C.length,x=[];for(let T=0;T<M.length;++T){if(!M[T]||typeof M[T].name!="string"||typeof M[T].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");const z=M[T].name;if(Q.has(z))throw new TypeError('Duplicate type name "'+z+'"');x.push(z),Q.set(z,{name:z,test:M[T].test,isAny:M[T].isAny,index:L+T,conversionsTo:[]})}const K=C.slice(L);C=C.slice(0,L).concat(x).concat(K);for(let T=L+x.length;T<C.length;++T)Q.get(C[T]).index=T}function e(){Q=new Map,C=[],E=0,t([I],!1)}function o(M){const N=C.filter(L=>{const x=Q.get(L);return!x.isAny&&x.test(M)});return N.length?N:["any"]}function r(M){return M&&typeof M=="function"&&"_typedFunctionData"in M}function n(M,N,L){if(!r(M))throw new TypeError(aC);const x=L&&L.exact,K=h(Array.isArray(N)?N.join(","):N),T=s(K);if(!x||T in M.signatures){const P=M._typedFunctionData.signatureMap.get(T);if(P)return P}const z=K.length;let q,$;if(x){let P;for(P in q=[],M.signatures)q.push(M._typedFunctionData.signatureMap.get(P))}else q=M._typedFunctionData.signatures;for(let P=0;P<z;++P){const FA=K[P],DA=[];let JA;for(JA of q){const PA=R(JA.params,P);if(PA&&(!FA.restParam||PA.restParam)){if(!PA.hasAny){const Cg=b(PA);if(FA.types.some(tg=>!Cg.has(tg.name)))continue}DA.push(JA)}}if(q=DA,q.length===0)break}for($ of q)if($.params.length<=z)return $;throw new TypeError("Signature not found (signature: "+(M.name||"unnamed")+"("+s(K,", ")+"))")}function s(M){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return M.map(L=>L.name).join(N)}function c(M){const N=M.indexOf("...")===0,L=(N?M.length>3?M.slice(3):"any":M).split("|").map(T=>i(T.trim()));let x=!1,K=N?"...":"";return{types:L.map(function(T){return x=T.isAny||x,K+=T.name+"|",{name:T.name,typeIndex:T.index,test:T.test,isAny:T.isAny,conversion:null,conversionIndex:-1}}),name:K.slice(0,-1),hasAny:x,hasConversion:!1,restParam:N}}function D(M){const N=M.types.map(z=>z.name),L=function(z){if(z.length===0)return[];const q=z.map(i);z.length>1&&q.sort((FA,DA)=>FA.index-DA.index);let $=q[0].conversionsTo;if(z.length===1)return $;$=$.concat([]);const P=new Set(z);for(let FA=1;FA<q.length;++FA){let DA;for(DA of q[FA].conversionsTo)P.has(DA.from)||($.push(DA),P.add(DA.from))}return $}(N);let x=M.hasAny,K=M.name;const T=L.map(function(z){const q=i(z.from);return x=q.isAny||x,K+="|"+z.from,{name:z.from,typeIndex:q.index,test:q.test,isAny:q.isAny,conversion:z,conversionIndex:z.index}});return{types:M.types.concat(T),name:K,hasAny:x,hasConversion:T.length>0,restParam:M.restParam}}function b(M){return M.typeSet||(M.typeSet=new Set,M.types.forEach(N=>M.typeSet.add(N.name))),M.typeSet}function h(M){const N=[];if(typeof M!="string")throw new TypeError("Signatures must be strings");const L=M.trim();if(L==="")return N;const x=L.split(",");for(let K=0;K<x.length;++K){const T=c(x[K].trim());if(T.restParam&&K!==x.length-1)throw new SyntaxError('Unexpected rest parameter "'+x[K]+'": only allowed for the last parameter');if(T.types.length===0)return null;N.push(T)}return N}function w(M){const N=hA(M);return!!N&&N.restParam}function f(M){if(M&&M.types.length!==0){if(M.types.length===1)return i(M.types[0].name).test;if(M.types.length===2){const N=i(M.types[0].name).test,L=i(M.types[1].name).test;return function(x){return N(x)||L(x)}}{const N=M.types.map(function(L){return i(L.name).test});return function(L){for(let x=0;x<N.length;x++)if(N[x](L))return!0;return!1}}}return EC}function p(M){let N,L,x;if(w(M)){N=pA(M).map(f);const K=N.length,T=f(hA(M)),z=function(q){for(let $=K;$<q.length;$++)if(!T(q[$]))return!1;return!0};return function(q){for(let $=0;$<N.length;$++)if(!N[$](q[$]))return!1;return z(q)&&q.length>=K+1}}return M.length===0?function(K){return K.length===0}:M.length===1?(L=f(M[0]),function(K){return L(K[0])&&K.length===1}):M.length===2?(L=f(M[0]),x=f(M[1]),function(K){return L(K[0])&&x(K[1])&&K.length===2}):(N=M.map(f),function(K){for(let T=0;T<N.length;T++)if(!N[T](K[T]))return!1;return K.length===N.length})}function R(M,N){return N<M.length?M[N]:w(M)?hA(M):null}function U(M,N){const L=R(M,N);return L?b(L):new Set}function G(M){return M.conversion===null||M.conversion===void 0}function k(M,N){const L=new Set;return M.forEach(x=>{const K=U(x.params,N);let T;for(T of K)L.add(T)}),L.has("any")?["any"]:Array.from(L)}function J(M,N,L){let x,K;const T=M||"unnamed";let z,q=L;for(z=0;z<N.length;z++){const DA=[];if(q.forEach(JA=>{const PA=f(R(JA.params,z));(z<JA.params.length||w(JA.params))&&PA(N[z])&&DA.push(JA)}),DA.length===0){if(K=k(q,z),K.length>0){const JA=o(N[z]);return x=new TypeError("Unexpected type of argument in function "+T+" (expected: "+K.join(" or ")+", actual: "+JA.join(" | ")+", index: "+z+")"),x.data={category:"wrongType",fn:T,index:z,actual:JA,expected:K},x}}else q=DA}const $=q.map(function(DA){return w(DA.params)?1/0:DA.params.length});if(N.length<Math.min.apply(null,$))return K=k(q,z),x=new TypeError("Too few arguments in function "+T+" (expected: "+K.join(" or ")+", index: "+N.length+")"),x.data={category:"tooFewArgs",fn:T,index:N.length,expected:K},x;const P=Math.max.apply(null,$);if(N.length>P)return x=new TypeError("Too many arguments in function "+T+" (expected: "+P+", actual: "+N.length+")"),x.data={category:"tooManyArgs",fn:T,index:N.length,expectedLength:P},x;const FA=[];for(let DA=0;DA<N.length;++DA)FA.push(o(N[DA]).join("|"));return x=new TypeError('Arguments of type "'+FA.join(", ")+'" do not match any of the defined signatures of function '+T+"."),x.data={category:"mismatch",actual:FA},x}function m(M){let N=C.length+1;for(let L=0;L<M.types.length;L++)G(M.types[L])&&(N=Math.min(N,M.types[L].typeIndex));return N}function O(M){let N=E+1;for(let L=0;L<M.types.length;L++)G(M.types[L])||(N=Math.min(N,M.types[L].conversionIndex));return N}function X(M,N){if(M.hasAny){if(!N.hasAny)return 1}else if(N.hasAny)return-1;if(M.restParam){if(!N.restParam)return 1}else if(N.restParam)return-1;if(M.hasConversion){if(!N.hasConversion)return 1}else if(N.hasConversion)return-1;const L=m(M)-m(N);if(L<0)return-1;if(L>0)return 1;const x=O(M)-O(N);return x<0?-1:x>0?1:0}function IA(M,N){const L=M.params,x=N.params,K=hA(L),T=hA(x),z=w(L),q=w(x);if(z&&K.hasAny){if(!q||!T.hasAny)return 1}else if(q&&T.hasAny)return-1;let $,P=0,FA=0;for($ of L)$.hasAny&&++P,$.hasConversion&&++FA;let DA=0,JA=0;for($ of x)$.hasAny&&++DA,$.hasConversion&&++JA;if(P!==DA)return P-DA;if(z&&K.hasConversion){if(!q||!T.hasConversion)return 1}else if(q&&T.hasConversion)return-1;if(FA!==JA)return FA-JA;if(z){if(!q)return 1}else if(q)return-1;const PA=(L.length-x.length)*(z?-1:1);if(PA!==0)return PA;const Cg=[];let tg,ug=0;for(let Yg=0;Yg<L.length;++Yg){const gI=X(L[Yg],x[Yg]);Cg.push(gI),ug+=gI}if(ug!==0)return ug;for(tg of Cg)if(tg!==0)return tg;return 0}function AA(M,N){let L=N;if(M.some(K=>K.hasConversion)){const K=w(M),T=M.map(Z);L=function(){const z=[],q=K?arguments.length-1:arguments.length;for(let $=0;$<q;$++)z[$]=T[$](arguments[$]);return K&&(z[q]=arguments[q].map(T[q])),N.apply(this,z)}}let x=L;if(w(M)){const K=M.length-1;x=function(){return L.apply(this,bA(arguments,0,K).concat([bA(arguments,K)]))}}return x}function Z(M){let N,L,x,K;const T=[],z=[];switch(M.types.forEach(function(q){q.conversion&&(T.push(i(q.conversion.from).test),z.push(q.conversion.convert))}),z.length){case 0:return function(q){return q};case 1:return N=T[0],x=z[0],function(q){return N(q)?x(q):q};case 2:return N=T[0],L=T[1],x=z[0],K=z[1],function(q){return N(q)?x(q):L(q)?K(q):q};default:return function(q){for(let $=0;$<z.length;$++)if(T[$](q))return z[$](q);return q}}}function aA(M){return function N(L,x,K){if(x<L.length){const q=L[x];let $=[];if(q.restParam){const P=q.types.filter(G);P.length<q.types.length&&$.push({types:P,name:"..."+P.map(FA=>FA.name).join("|"),hasAny:P.some(FA=>FA.isAny),hasConversion:!1,restParam:!0}),$.push(q)}else $=q.types.map(function(P){return{types:[P],name:P.name,hasAny:P.isAny,hasConversion:P.conversion,restParam:!1}});return T=$,z=function(P){return N(L,x+1,K.concat([P]))},Array.prototype.concat.apply([],T.map(z))}return[K];var T,z}(M,0,[])}function uA(M,N){const L=Math.max(M.length,N.length);for(let q=0;q<L;q++){const $=U(M,q),P=U(N,q);let FA,DA=!1;for(FA of P)if($.has(FA)){DA=!0;break}if(!DA)return!1}const x=M.length,K=N.length,T=w(M),z=w(N);return T?z?x===K:K>=x:z?x>=K:x===K}function nA(M,N,L){const x=[];let K;for(K of M){let T=L[K];if(typeof T!="number")throw new TypeError('No definition for referenced signature "'+K+'"');if(T=N[T],typeof T!="function")return!1;x.push(T)}return x}function MA(M,N,L){const x=function(z){return z.map(q=>rA(q)?GA(q.referToSelf.callback):tA(q)?fA(q.referTo.references,q.referTo.callback):q)}(M),K=new Array(x.length).fill(!1);let T=!0;for(;T;){T=!1;let z=!0;for(let q=0;q<x.length;++q){if(K[q])continue;const $=x[q];if(rA($))x[q]=$.referToSelf.callback(L),x[q].referToSelf=$.referToSelf,K[q]=!0,z=!1;else if(tA($)){const P=nA($.referTo.references,x,N);P?(x[q]=$.referTo.callback.apply(this,P),x[q].referTo=$.referTo,K[q]=!0,z=!1):T=!0}}if(z&&T)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return x}function lA(M,N){if(a.createCount++,Object.keys(N).length===0)throw new SyntaxError("No signatures provided");a.warnAgainstDeprecatedThis&&function(cA){const ng=/\bthis(\(|\.signatures\b)/;Object.keys(cA).forEach(xI=>{const Kg=cA[xI];if(ng.test(Kg.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}(N);const L=[],x=[],K={},T=[];let z;for(z in N){if(!Object.prototype.hasOwnProperty.call(N,z))continue;const cA=h(z);if(!cA)continue;L.forEach(function(BI){if(uA(BI,cA))throw new TypeError('Conflicting signatures "'+s(BI)+'" and "'+s(cA)+'".')}),L.push(cA);const ng=x.length;x.push(N[z]);const xI=cA.map(D);let Kg;for(Kg of aA(xI)){const BI=s(Kg);T.push({params:Kg,name:BI,fn:ng}),Kg.every(JB=>!JB.hasConversion)&&(K[BI]=ng)}}T.sort(IA);const q=MA(x,K,II);let $;for($ in K)Object.prototype.hasOwnProperty.call(K,$)&&(K[$]=q[K[$]]);const P=[],FA=new Map;for($ of T)FA.has($.name)||($.fn=q[$.fn],P.push($),FA.set($.name,$));const DA=P[0]&&P[0].params.length<=2&&!w(P[0].params),JA=P[1]&&P[1].params.length<=2&&!w(P[1].params),PA=P[2]&&P[2].params.length<=2&&!w(P[2].params),Cg=P[3]&&P[3].params.length<=2&&!w(P[3].params),tg=P[4]&&P[4].params.length<=2&&!w(P[4].params),ug=P[5]&&P[5].params.length<=2&&!w(P[5].params),Yg=DA&&JA&&PA&&Cg&&tg&&ug;for(let cA=0;cA<P.length;++cA)P[cA].test=p(P[cA].params);const gI=DA?f(P[0].params[0]):Dg,kB=JA?f(P[1].params[0]):Dg,oI=PA?f(P[2].params[0]):Dg,nI=Cg?f(P[3].params[0]):Dg,WI=tg?f(P[4].params[0]):Dg,PI=ug?f(P[5].params[0]):Dg,og=DA?f(P[0].params[1]):Dg,UB=JA?f(P[1].params[1]):Dg,VI=PA?f(P[2].params[1]):Dg,rI=Cg?f(P[3].params[1]):Dg,kI=tg?f(P[4].params[1]):Dg,zI=ug?f(P[5].params[1]):Dg;for(let cA=0;cA<P.length;++cA)P[cA].implementation=AA(P[cA].params,P[cA].fn);const UI=DA?P[0].implementation:dI,mI=JA?P[1].implementation:dI,XI=PA?P[2].implementation:dI,ZI=Cg?P[3].implementation:dI,xg=tg?P[4].implementation:dI,SI=ug?P[5].implementation:dI,LI=DA?P[0].params.length:-1,JI=JA?P[1].params.length:-1,_I=PA?P[2].params.length:-1,mB=Cg?P[3].params.length:-1,$I=tg?P[4].params.length:-1,SB=ug?P[5].params.length:-1,LB=Yg?6:0,Hg=P.length,AB=P.map(cA=>cA.test),gB=P.map(cA=>cA.implementation),YI=function(){for(let cA=LB;cA<Hg;cA++)if(AB[cA](arguments))return gB[cA].apply(this,arguments);return a.onMismatch(M,arguments,P)};function II(cA,ng){return arguments.length===LI&&gI(cA)&&og(ng)?UI.apply(this,arguments):arguments.length===JI&&kB(cA)&&UB(ng)?mI.apply(this,arguments):arguments.length===_I&&oI(cA)&&VI(ng)?XI.apply(this,arguments):arguments.length===mB&&nI(cA)&&rI(ng)?ZI.apply(this,arguments):arguments.length===$I&&WI(cA)&&kI(ng)?xg.apply(this,arguments):arguments.length===SB&&PI(cA)&&zI(ng)?SI.apply(this,arguments):YI.apply(this,arguments)}try{Object.defineProperty(II,"name",{value:M})}catch{}return II.signatures=K,II._typedFunctionData={signatures:P,signatureMap:FA},II}function eA(M,N,L){throw J(M,N,L)}function pA(M){return bA(M,0,M.length-1)}function hA(M){return M[M.length-1]}function bA(M,N,L){return Array.prototype.slice.call(M,N,L)}function fA(M,N){return{referTo:{references:M,callback:N}}}function GA(M){if(typeof M!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:M}}}function tA(M){return M&&typeof M.referTo=="object"&&Array.isArray(M.referTo.references)&&typeof M.referTo.callback=="function"}function rA(M){return M&&typeof M.referToSelf=="object"&&typeof M.referToSelf.callback=="function"}function LA(M,N){if(!M)return N;if(N&&N!==M){const L=new Error("Function names do not match (expected: "+M+", actual: "+N+")");throw L.data={actual:N,expected:M},L}return M}function KA(M){let N;for(const L in M)Object.prototype.hasOwnProperty.call(M,L)&&(r(M[L])||typeof M[L].signature=="string")&&(N=LA(N,M[L].name));return N}function ig(M,N){let L;for(L in N)if(Object.prototype.hasOwnProperty.call(N,L)){if(L in M&&N[L]!==M[L]){const x=new Error('Signature "'+L+'" is defined twice');throw x.data={signature:L,sourceFunction:N[L],destFunction:M[L]},x}M[L]=N[L]}}e(),t(g);const vA=a;function sA(M){if(!M||typeof M.from!="string"||typeof M.to!="string"||typeof M.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(M.to===M.from)throw new SyntaxError('Illegal to define conversion from "'+M.from+'" to itself.')}return a=function(M){const N=typeof M=="string";let L=N?M:"";const x={};for(let K=N?1:0;K<arguments.length;++K){const T=arguments[K];let z,q={};if(typeof T=="function"?(z=T.name,typeof T.signature=="string"?q[T.signature]=T:r(T)&&(q=T.signatures)):A(T)&&(q=T,N||(z=KA(T))),Object.keys(q).length===0){const $=new TypeError("Argument to 'typed' at index "+K+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw $.data={index:K,argument:T},$}N||(L=LA(L,z)),ig(x,q)}return lA(L||"",x)},a.create=B,a.createCount=vA.createCount,a.onMismatch=eA,a.throwMismatchError=eA,a.createError=J,a.clear=e,a.clearConversions=function(){let M;for(M of C)Q.get(M).conversionsTo=[];E=0},a.addTypes=t,a._findType=i,a.referTo=function(){const M=pA(arguments).map(L=>s(h(L))),N=hA(arguments);if(typeof N!="function")throw new TypeError("Callback function expected as last argument");return fA(M,N)},a.referToSelf=GA,a.convert=function(M,N){const L=i(N);if(L.test(M))return M;const x=L.conversionsTo;if(x.length===0)throw new Error("There are no conversions to "+N+" defined.");for(let K=0;K<x.length;K++)if(i(x[K].from).test(M))return x[K].convert(M);throw new Error("Cannot convert "+M+" to "+N)},a.findSignature=n,a.find=function(M,N,L){return n(M,N,L).implementation},a.isTypedFunction=r,a.warnAgainstDeprecatedThis=!0,a.addType=function(M,N){let L="any";N!==!1&&Q.has("Object")&&(L="Object"),a.addTypes([M],L)},a.addConversion=function(M){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};sA(M);const L=i(M.to),x=L.conversionsTo.find(K=>K.from===M.from);if(x){if(!N||!N.override)throw new Error('There is already a conversion from "'+M.from+'" to "'+L.name+'"');a.removeConversion({from:x.from,to:M.to,convert:x.convert})}L.conversionsTo.push({from:M.from,convert:M.convert,index:E++})},a.addConversions=function(M,N){M.forEach(L=>a.addConversion(L,N))},a.removeConversion=function(M){sA(M);const N=i(M.to),L=function(K,T){for(let z=0;z<K.length;z++)if(T(K[z]))return K[z]}(N.conversionsTo,K=>K.from===M.from);if(!L)throw new Error("Attempt to remove nonexistent conversion from "+M.from+" to "+M.to);if(L.convert!==M.convert)throw new Error("Conversion to remove does not match existing conversion");const x=N.conversionsTo.indexOf(L);N.conversionsTo.splice(x,1)},a.resolve=function(M,N){if(!r(M))throw new TypeError(aC);const L=M._typedFunctionData.signatures;for(let x=0;x<L.length;++x)if(L[x].test(N))return L[x];return null},a}();function wA(B,A,g,I){function Q(C){var E=function(a,i){for(var t={},e=0;e<i.length;e++){var o=i[e],r=a[o];r!==void 0&&(t[o]=r)}return t}(C,A.map(ii));return function(a,i,t){var e=i.filter(r=>!function(n){return n&&n[0]==="?"}(r)).every(r=>t[r]!==void 0);if(!e){var o=i.filter(r=>t[r]===void 0);throw new Error('Cannot create function "'.concat(a,'", ')+"some dependencies are missing: ".concat(o.map(r=>'"'.concat(r,'"')).join(", "),"."))}}(B,A,C),g(E)}return Q.isFactory=!0,Q.fn=B,Q.dependencies=A.slice().sort(),I&&(Q.meta=I),Q}function ii(B){return B&&B[0]==="?"?B.slice(1):B}function YA(B){return typeof B=="boolean"||!!isFinite(B)&&B===Math.round(B)}function gQ(B,A,g){var I={2:"0b",8:"0o",16:"0x"}[A],Q="";if(g){if(g<1)throw new Error("size must be in greater than 0");if(!YA(g))throw new Error("size must be an integer");if(B>2**(g-1)-1||B<-(2**(g-1)))throw new Error("Value must be in range [-2^".concat(g-1,", 2^").concat(g-1,"-1]"));if(!YA(B))throw new Error("Value must be an integer");B<0&&(B+=2**g),Q="i".concat(g)}var C="";return B<0&&(B=-B,C="-"),"".concat(C).concat(I).concat(B.toString(A)).concat(Q)}function cQ(B,A){if(typeof A=="function")return A(B);if(B===1/0)return"Infinity";if(B===-1/0)return"-Infinity";if(isNaN(B))return"NaN";var{notation:g,precision:I,wordSize:Q}=WE(A);switch(g){case"fixed":return function(C,E){if(isNaN(C)||!isFinite(C))return String(C);var a=rB(C),i=typeof E=="number"?sB(a,a.exponent+1+E):a,t=i.coefficients,e=i.exponent+1,o=e+(E||0);return t.length<o&&(t=t.concat(fI(o-t.length))),e<0&&(t=fI(1-e).concat(t),e=1),e<t.length&&t.splice(e,0,e===0?"0.":"."),i.sign+t.join("")}(B,I);case"exponential":return eC(B,I);case"engineering":return function(C,E){if(isNaN(C)||!isFinite(C))return String(C);var a=rB(C),i=sB(a,E),t=i.exponent,e=i.coefficients,o=t%3==0?t:t<0?t-3-t%3:t-t%3;if(UA(E))for(;E>e.length||t-o+1>e.length;)e.push(0);else for(var r=Math.abs(t-o)-(e.length-1),n=0;n<r;n++)e.push(0);for(var s=Math.abs(t-o),c=1;s>0;)c++,s--;var D=e.slice(c).join(""),b=UA(E)&&D.length||D.match(/[1-9]/)?"."+D:"",h=e.slice(0,c).join("")+b+"e"+(t>=0?"+":"")+o.toString();return i.sign+h}(B,I);case"bin":return gQ(B,2,Q);case"oct":return gQ(B,8,Q);case"hex":return gQ(B,16,Q);case"auto":return function(C,E,a){if(isNaN(C)||!isFinite(C))return String(C);var i=tC(a?.lowerExp,-3),t=tC(a?.upperExp,5),e=rB(C),o=E?sB(e,E):e;if(o.exponent<i||o.exponent>=t)return eC(C,E);var r=o.coefficients,n=o.exponent;r.length<E&&(r=r.concat(fI(E-r.length))),r=r.concat(fI(n-r.length+1+(r.length<E?E-r.length:0)));var s=n>0?n:0;return s<(r=fI(-n).concat(r)).length-1&&r.splice(s+1,0,"."),o.sign+r.join("")}(B,I,A).replace(/((\.\d*?)(0+))($|e)/,function(){var C=arguments[2],E=arguments[4];return C!=="."?C+E:E});default:throw new Error('Unknown notation "'+g+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function WE(B){var A,g,I="auto";if(B!==void 0)if(UA(B))A=B;else if(WA(B))A=B.toNumber();else{if(!pQ(B))throw new Error("Unsupported type of options, number, BigNumber, or object expected");B.precision!==void 0&&(A=iC(B.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),B.wordSize!==void 0&&(g=iC(B.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),B.notation&&(I=B.notation)}return{notation:I,precision:A,wordSize:g}}function rB(B){var A=String(B).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!A)throw new SyntaxError("Invalid number "+B);var g=A[1],I=A[2],Q=parseFloat(A[4]||"0"),C=I.indexOf(".");Q+=C!==-1?C-1:I.length-1;var E=I.replace(".","").replace(/^0*/,function(a){return Q-=a.length,""}).replace(/0*$/,"").split("").map(function(a){return parseInt(a)});return E.length===0&&(E.push(0),Q++),{sign:g,coefficients:E,exponent:Q}}function eC(B,A){if(isNaN(B)||!isFinite(B))return String(B);var g=rB(B),I=A?sB(g,A):g,Q=I.coefficients,C=I.exponent;Q.length<A&&(Q=Q.concat(fI(A-Q.length)));var E=Q.shift();return I.sign+E+(Q.length>0?"."+Q.join(""):"")+"e"+(C>=0?"+":"")+C}function sB(B,A){for(var g={sign:B.sign,coefficients:B.coefficients,exponent:B.exponent},I=g.coefficients;A<=0;)I.unshift(0),g.exponent++,A++;if(I.length>A&&I.splice(A,I.length-A)[0]>=5){var Q=A-1;for(I[Q]++;I[Q]===10;)I.pop(),Q===0&&(I.unshift(0),g.exponent++,Q++),I[--Q]++}return g}function fI(B){for(var A=[],g=0;g<B;g++)A.push(0);return A}function cB(B,A){var g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(g<=0)throw new Error("Relative tolerance must be greater than 0");if(I<0)throw new Error("Absolute tolerance must be at least 0");return!isNaN(B)&&!isNaN(A)&&(isFinite(B)&&isFinite(A)?B===A||Math.abs(B-A)<=Math.max(g*Math.max(Math.abs(B),Math.abs(A)),I):B===A)}function iC(B,A){return UA(B)?B:WA(B)?B.toNumber():void A()}function tC(B,A){return UA(B)?B:WA(B)?B.toNumber():A}var PE=function(){return PE=lB.create,lB},ti=wA("typed",["?BigNumber","?Complex","?DenseMatrix","?Fraction"],function(B){var{BigNumber:A,Complex:g,DenseMatrix:I,Fraction:Q}=B,C=PE();return C.clear(),C.addTypes([{name:"number",test:UA},{name:"Complex",test:vE},{name:"BigNumber",test:WA},{name:"bigint",test:me},{name:"Fraction",test:TE},{name:"Unit",test:OE},{name:"identifier",test:E=>pg&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(E)},{name:"string",test:pg},{name:"Chain",test:ei},{name:"Array",test:VA},{name:"Matrix",test:qA},{name:"DenseMatrix",test:Se},{name:"SparseMatrix",test:Le},{name:"Range",test:Je},{name:"Index",test:RQ},{name:"boolean",test:Ye},{name:"ResultSet",test:xe},{name:"Help",test:He},{name:"function",test:Ke},{name:"Date",test:je},{name:"RegExp",test:qe},{name:"null",test:Te},{name:"undefined",test:Oe},{name:"AccessorNode",test:We},{name:"ArrayNode",test:Pe},{name:"AssignmentNode",test:Ve},{name:"BlockNode",test:ze},{name:"ConditionalNode",test:Xe},{name:"ConstantNode",test:Ze},{name:"FunctionNode",test:$e},{name:"FunctionAssignmentNode",test:_e},{name:"IndexNode",test:Ai},{name:"Node",test:gi},{name:"ObjectNode",test:Ii},{name:"OperatorNode",test:Bi},{name:"ParenthesisNode",test:Qi},{name:"RangeNode",test:Ci},{name:"RelationalNode",test:Ei},{name:"SymbolNode",test:ai},{name:"Map",test:ve},{name:"Object",test:pQ}]),C.addConversions([{from:"number",to:"BigNumber",convert:function(E){if(A||BB(E),E.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+E+"). Use function bignumber(x) to convert to BigNumber.");return new A(E)}},{from:"number",to:"Complex",convert:function(E){return g||QB(E),new g(E,0)}},{from:"BigNumber",to:"Complex",convert:function(E){return g||QB(E),new g(E.toNumber(),0)}},{from:"bigint",to:"number",convert:function(E){if(E>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+E+")");return Number(E)}},{from:"bigint",to:"BigNumber",convert:function(E){return A||BB(E),new A(E.toString())}},{from:"bigint",to:"Fraction",convert:function(E){return Q||CB(E),new Q(E)}},{from:"Fraction",to:"BigNumber",convert:function(E){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(E){return g||QB(E),new g(E.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(E){Q||CB(E);var a=new Q(E);if(a.valueOf()!==E)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+E+"). Use function fraction(x) to convert to Fraction.");return a}},{from:"string",to:"number",convert:function(E){var a=Number(E);if(isNaN(a))throw new Error('Cannot convert "'+E+'" to a number');return a}},{from:"string",to:"BigNumber",convert:function(E){A||BB(E);try{return new A(E)}catch{throw new Error('Cannot convert "'+E+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(E){try{return BigInt(E)}catch{throw new Error('Cannot convert "'+E+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(E){Q||CB(E);try{return new Q(E)}catch{throw new Error('Cannot convert "'+E+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(E){g||QB(E);try{return new g(E)}catch{throw new Error('Cannot convert "'+E+'" to Complex')}}},{from:"boolean",to:"number",convert:function(E){return+E}},{from:"boolean",to:"BigNumber",convert:function(E){return A||BB(E),new A(+E)}},{from:"boolean",to:"bigint",convert:function(E){return BigInt(+E)}},{from:"boolean",to:"Fraction",convert:function(E){return Q||CB(E),new Q(+E)}},{from:"boolean",to:"string",convert:function(E){return String(E)}},{from:"Array",to:"Matrix",convert:function(E){return I||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new I(E)}},{from:"Matrix",to:"Array",convert:function(E){return E.valueOf()}}]),C.onMismatch=(E,a,i)=>{var t=C.createError(E,a,i);if(["wrongType","mismatch"].includes(t.data.category)&&a.length===1&&wB(a[0])&&i.some(o=>!o.params.includes(","))){var e=new TypeError("Function '".concat(E,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(E,")'."));throw e.data=t.data,e}throw t},C.onMismatch=(E,a,i)=>{var t=C.createError(E,a,i);if(["wrongType","mismatch"].includes(t.data.category)&&a.length===1&&wB(a[0])&&i.some(o=>!o.params.includes(","))){var e=new TypeError("Function '".concat(E,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(E,")'."));throw e.data=t.data,e}throw t},C});function BB(B){throw new Error("Cannot convert value ".concat(B," into a BigNumber: no class 'BigNumber' provided"))}function QB(B){throw new Error("Cannot convert value ".concat(B," into a Complex number: no class 'Complex' provided"))}function CB(B){throw new Error("Cannot convert value ".concat(B," into a Fraction, no class 'Fraction' provided."))}/*!
|
|
905
|
+
`);return Object.freeze(qE)};function EC(){return!0}function Dg(){return!1}function dI(){}bB(iI,qE,{MATRIX_OPTIONS:["Matrix","Array"],NUMBER_OPTIONS:["number","BigNumber","Fraction"]});const aC="Argument is not a typed-function.",lB=function B(){function A(M){return typeof M=="object"&&M!==null&&M.constructor===Object}const g=[{name:"number",test:function(M){return typeof M=="number"}},{name:"string",test:function(M){return typeof M=="string"}},{name:"boolean",test:function(M){return typeof M=="boolean"}},{name:"Function",test:function(M){return typeof M=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(M){return M instanceof Date}},{name:"RegExp",test:function(M){return M instanceof RegExp}},{name:"Object",test:A},{name:"null",test:function(M){return M===null}},{name:"undefined",test:function(M){return M===void 0}}],I={name:"any",test:EC,isAny:!0};let Q,C,E=0,a={createCount:0};function i(M){const N=Q.get(M);if(N)return N;let L='Unknown type "'+M+'"';const x=M.toLowerCase();let K;for(K of C)if(K.toLowerCase()===x){L+='. Did you mean "'+K+'" ?';break}throw new TypeError(L)}function t(M){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any";const L=N?i(N).index:C.length,x=[];for(let T=0;T<M.length;++T){if(!M[T]||typeof M[T].name!="string"||typeof M[T].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");const z=M[T].name;if(Q.has(z))throw new TypeError('Duplicate type name "'+z+'"');x.push(z),Q.set(z,{name:z,test:M[T].test,isAny:M[T].isAny,index:L+T,conversionsTo:[]})}const K=C.slice(L);C=C.slice(0,L).concat(x).concat(K);for(let T=L+x.length;T<C.length;++T)Q.get(C[T]).index=T}function e(){Q=new Map,C=[],E=0,t([I],!1)}function o(M){const N=C.filter(L=>{const x=Q.get(L);return!x.isAny&&x.test(M)});return N.length?N:["any"]}function r(M){return M&&typeof M=="function"&&"_typedFunctionData"in M}function n(M,N,L){if(!r(M))throw new TypeError(aC);const x=L&&L.exact,K=h(Array.isArray(N)?N.join(","):N),T=s(K);if(!x||T in M.signatures){const P=M._typedFunctionData.signatureMap.get(T);if(P)return P}const z=K.length;let q,$;if(x){let P;for(P in q=[],M.signatures)q.push(M._typedFunctionData.signatureMap.get(P))}else q=M._typedFunctionData.signatures;for(let P=0;P<z;++P){const FA=K[P],DA=[];let JA;for(JA of q){const PA=R(JA.params,P);if(PA&&(!FA.restParam||PA.restParam)){if(!PA.hasAny){const Cg=b(PA);if(FA.types.some(tg=>!Cg.has(tg.name)))continue}DA.push(JA)}}if(q=DA,q.length===0)break}for($ of q)if($.params.length<=z)return $;throw new TypeError("Signature not found (signature: "+(M.name||"unnamed")+"("+s(K,", ")+"))")}function s(M){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return M.map(L=>L.name).join(N)}function c(M){const N=M.indexOf("...")===0,L=(N?M.length>3?M.slice(3):"any":M).split("|").map(T=>i(T.trim()));let x=!1,K=N?"...":"";return{types:L.map(function(T){return x=T.isAny||x,K+=T.name+"|",{name:T.name,typeIndex:T.index,test:T.test,isAny:T.isAny,conversion:null,conversionIndex:-1}}),name:K.slice(0,-1),hasAny:x,hasConversion:!1,restParam:N}}function D(M){const N=M.types.map(z=>z.name),L=function(z){if(z.length===0)return[];const q=z.map(i);z.length>1&&q.sort((FA,DA)=>FA.index-DA.index);let $=q[0].conversionsTo;if(z.length===1)return $;$=$.concat([]);const P=new Set(z);for(let FA=1;FA<q.length;++FA){let DA;for(DA of q[FA].conversionsTo)P.has(DA.from)||($.push(DA),P.add(DA.from))}return $}(N);let x=M.hasAny,K=M.name;const T=L.map(function(z){const q=i(z.from);return x=q.isAny||x,K+="|"+z.from,{name:z.from,typeIndex:q.index,test:q.test,isAny:q.isAny,conversion:z,conversionIndex:z.index}});return{types:M.types.concat(T),name:K,hasAny:x,hasConversion:T.length>0,restParam:M.restParam}}function b(M){return M.typeSet||(M.typeSet=new Set,M.types.forEach(N=>M.typeSet.add(N.name))),M.typeSet}function h(M){const N=[];if(typeof M!="string")throw new TypeError("Signatures must be strings");const L=M.trim();if(L==="")return N;const x=L.split(",");for(let K=0;K<x.length;++K){const T=c(x[K].trim());if(T.restParam&&K!==x.length-1)throw new SyntaxError('Unexpected rest parameter "'+x[K]+'": only allowed for the last parameter');if(T.types.length===0)return null;N.push(T)}return N}function w(M){const N=hA(M);return!!N&&N.restParam}function f(M){if(M&&M.types.length!==0){if(M.types.length===1)return i(M.types[0].name).test;if(M.types.length===2){const N=i(M.types[0].name).test,L=i(M.types[1].name).test;return function(x){return N(x)||L(x)}}{const N=M.types.map(function(L){return i(L.name).test});return function(L){for(let x=0;x<N.length;x++)if(N[x](L))return!0;return!1}}}return EC}function p(M){let N,L,x;if(w(M)){N=pA(M).map(f);const K=N.length,T=f(hA(M)),z=function(q){for(let $=K;$<q.length;$++)if(!T(q[$]))return!1;return!0};return function(q){for(let $=0;$<N.length;$++)if(!N[$](q[$]))return!1;return z(q)&&q.length>=K+1}}return M.length===0?function(K){return K.length===0}:M.length===1?(L=f(M[0]),function(K){return L(K[0])&&K.length===1}):M.length===2?(L=f(M[0]),x=f(M[1]),function(K){return L(K[0])&&x(K[1])&&K.length===2}):(N=M.map(f),function(K){for(let T=0;T<N.length;T++)if(!N[T](K[T]))return!1;return K.length===N.length})}function R(M,N){return N<M.length?M[N]:w(M)?hA(M):null}function U(M,N){const L=R(M,N);return L?b(L):new Set}function G(M){return M.conversion===null||M.conversion===void 0}function k(M,N){const L=new Set;return M.forEach(x=>{const K=U(x.params,N);let T;for(T of K)L.add(T)}),L.has("any")?["any"]:Array.from(L)}function J(M,N,L){let x,K;const T=M||"unnamed";let z,q=L;for(z=0;z<N.length;z++){const DA=[];if(q.forEach(JA=>{const PA=f(R(JA.params,z));(z<JA.params.length||w(JA.params))&&PA(N[z])&&DA.push(JA)}),DA.length===0){if(K=k(q,z),K.length>0){const JA=o(N[z]);return x=new TypeError("Unexpected type of argument in function "+T+" (expected: "+K.join(" or ")+", actual: "+JA.join(" | ")+", index: "+z+")"),x.data={category:"wrongType",fn:T,index:z,actual:JA,expected:K},x}}else q=DA}const $=q.map(function(DA){return w(DA.params)?1/0:DA.params.length});if(N.length<Math.min.apply(null,$))return K=k(q,z),x=new TypeError("Too few arguments in function "+T+" (expected: "+K.join(" or ")+", index: "+N.length+")"),x.data={category:"tooFewArgs",fn:T,index:N.length,expected:K},x;const P=Math.max.apply(null,$);if(N.length>P)return x=new TypeError("Too many arguments in function "+T+" (expected: "+P+", actual: "+N.length+")"),x.data={category:"tooManyArgs",fn:T,index:N.length,expectedLength:P},x;const FA=[];for(let DA=0;DA<N.length;++DA)FA.push(o(N[DA]).join("|"));return x=new TypeError('Arguments of type "'+FA.join(", ")+'" do not match any of the defined signatures of function '+T+"."),x.data={category:"mismatch",actual:FA},x}function m(M){let N=C.length+1;for(let L=0;L<M.types.length;L++)G(M.types[L])&&(N=Math.min(N,M.types[L].typeIndex));return N}function O(M){let N=E+1;for(let L=0;L<M.types.length;L++)G(M.types[L])||(N=Math.min(N,M.types[L].conversionIndex));return N}function X(M,N){if(M.hasAny){if(!N.hasAny)return 1}else if(N.hasAny)return-1;if(M.restParam){if(!N.restParam)return 1}else if(N.restParam)return-1;if(M.hasConversion){if(!N.hasConversion)return 1}else if(N.hasConversion)return-1;const L=m(M)-m(N);if(L<0)return-1;if(L>0)return 1;const x=O(M)-O(N);return x<0?-1:x>0?1:0}function IA(M,N){const L=M.params,x=N.params,K=hA(L),T=hA(x),z=w(L),q=w(x);if(z&&K.hasAny){if(!q||!T.hasAny)return 1}else if(q&&T.hasAny)return-1;let $,P=0,FA=0;for($ of L)$.hasAny&&++P,$.hasConversion&&++FA;let DA=0,JA=0;for($ of x)$.hasAny&&++DA,$.hasConversion&&++JA;if(P!==DA)return P-DA;if(z&&K.hasConversion){if(!q||!T.hasConversion)return 1}else if(q&&T.hasConversion)return-1;if(FA!==JA)return FA-JA;if(z){if(!q)return 1}else if(q)return-1;const PA=(L.length-x.length)*(z?-1:1);if(PA!==0)return PA;const Cg=[];let tg,ug=0;for(let Yg=0;Yg<L.length;++Yg){const AI=X(L[Yg],x[Yg]);Cg.push(AI),ug+=AI}if(ug!==0)return ug;for(tg of Cg)if(tg!==0)return tg;return 0}function AA(M,N){let L=N;if(M.some(K=>K.hasConversion)){const K=w(M),T=M.map(Z);L=function(){const z=[],q=K?arguments.length-1:arguments.length;for(let $=0;$<q;$++)z[$]=T[$](arguments[$]);return K&&(z[q]=arguments[q].map(T[q])),N.apply(this,z)}}let x=L;if(w(M)){const K=M.length-1;x=function(){return L.apply(this,bA(arguments,0,K).concat([bA(arguments,K)]))}}return x}function Z(M){let N,L,x,K;const T=[],z=[];switch(M.types.forEach(function(q){q.conversion&&(T.push(i(q.conversion.from).test),z.push(q.conversion.convert))}),z.length){case 0:return function(q){return q};case 1:return N=T[0],x=z[0],function(q){return N(q)?x(q):q};case 2:return N=T[0],L=T[1],x=z[0],K=z[1],function(q){return N(q)?x(q):L(q)?K(q):q};default:return function(q){for(let $=0;$<z.length;$++)if(T[$](q))return z[$](q);return q}}}function aA(M){return function N(L,x,K){if(x<L.length){const q=L[x];let $=[];if(q.restParam){const P=q.types.filter(G);P.length<q.types.length&&$.push({types:P,name:"..."+P.map(FA=>FA.name).join("|"),hasAny:P.some(FA=>FA.isAny),hasConversion:!1,restParam:!0}),$.push(q)}else $=q.types.map(function(P){return{types:[P],name:P.name,hasAny:P.isAny,hasConversion:P.conversion,restParam:!1}});return T=$,z=function(P){return N(L,x+1,K.concat([P]))},Array.prototype.concat.apply([],T.map(z))}return[K];var T,z}(M,0,[])}function uA(M,N){const L=Math.max(M.length,N.length);for(let q=0;q<L;q++){const $=U(M,q),P=U(N,q);let FA,DA=!1;for(FA of P)if($.has(FA)){DA=!0;break}if(!DA)return!1}const x=M.length,K=N.length,T=w(M),z=w(N);return T?z?x===K:K>=x:z?x>=K:x===K}function nA(M,N,L){const x=[];let K;for(K of M){let T=L[K];if(typeof T!="number")throw new TypeError('No definition for referenced signature "'+K+'"');if(T=N[T],typeof T!="function")return!1;x.push(T)}return x}function MA(M,N,L){const x=function(z){return z.map(q=>rA(q)?GA(q.referToSelf.callback):tA(q)?fA(q.referTo.references,q.referTo.callback):q)}(M),K=new Array(x.length).fill(!1);let T=!0;for(;T;){T=!1;let z=!0;for(let q=0;q<x.length;++q){if(K[q])continue;const $=x[q];if(rA($))x[q]=$.referToSelf.callback(L),x[q].referToSelf=$.referToSelf,K[q]=!0,z=!1;else if(tA($)){const P=nA($.referTo.references,x,N);P?(x[q]=$.referTo.callback.apply(this,P),x[q].referTo=$.referTo,K[q]=!0,z=!1):T=!0}}if(z&&T)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return x}function lA(M,N){if(a.createCount++,Object.keys(N).length===0)throw new SyntaxError("No signatures provided");a.warnAgainstDeprecatedThis&&function(cA){const ng=/\bthis(\(|\.signatures\b)/;Object.keys(cA).forEach(xI=>{const Kg=cA[xI];if(ng.test(Kg.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}(N);const L=[],x=[],K={},T=[];let z;for(z in N){if(!Object.prototype.hasOwnProperty.call(N,z))continue;const cA=h(z);if(!cA)continue;L.forEach(function(II){if(uA(II,cA))throw new TypeError('Conflicting signatures "'+s(II)+'" and "'+s(cA)+'".')}),L.push(cA);const ng=x.length;x.push(N[z]);const xI=cA.map(D);let Kg;for(Kg of aA(xI)){const II=s(Kg);T.push({params:Kg,name:II,fn:ng}),Kg.every(JB=>!JB.hasConversion)&&(K[II]=ng)}}T.sort(IA);const q=MA(x,K,gI);let $;for($ in K)Object.prototype.hasOwnProperty.call(K,$)&&(K[$]=q[K[$]]);const P=[],FA=new Map;for($ of T)FA.has($.name)||($.fn=q[$.fn],P.push($),FA.set($.name,$));const DA=P[0]&&P[0].params.length<=2&&!w(P[0].params),JA=P[1]&&P[1].params.length<=2&&!w(P[1].params),PA=P[2]&&P[2].params.length<=2&&!w(P[2].params),Cg=P[3]&&P[3].params.length<=2&&!w(P[3].params),tg=P[4]&&P[4].params.length<=2&&!w(P[4].params),ug=P[5]&&P[5].params.length<=2&&!w(P[5].params),Yg=DA&&JA&&PA&&Cg&&tg&&ug;for(let cA=0;cA<P.length;++cA)P[cA].test=p(P[cA].params);const AI=DA?f(P[0].params[0]):Dg,kB=JA?f(P[1].params[0]):Dg,oI=PA?f(P[2].params[0]):Dg,nI=Cg?f(P[3].params[0]):Dg,WI=tg?f(P[4].params[0]):Dg,PI=ug?f(P[5].params[0]):Dg,og=DA?f(P[0].params[1]):Dg,UB=JA?f(P[1].params[1]):Dg,VI=PA?f(P[2].params[1]):Dg,rI=Cg?f(P[3].params[1]):Dg,kI=tg?f(P[4].params[1]):Dg,zI=ug?f(P[5].params[1]):Dg;for(let cA=0;cA<P.length;++cA)P[cA].implementation=AA(P[cA].params,P[cA].fn);const UI=DA?P[0].implementation:dI,mI=JA?P[1].implementation:dI,XI=PA?P[2].implementation:dI,ZI=Cg?P[3].implementation:dI,xg=tg?P[4].implementation:dI,SI=ug?P[5].implementation:dI,LI=DA?P[0].params.length:-1,JI=JA?P[1].params.length:-1,_I=PA?P[2].params.length:-1,mB=Cg?P[3].params.length:-1,$I=tg?P[4].params.length:-1,SB=ug?P[5].params.length:-1,LB=Yg?6:0,Hg=P.length,AB=P.map(cA=>cA.test),gB=P.map(cA=>cA.implementation),YI=function(){for(let cA=LB;cA<Hg;cA++)if(AB[cA](arguments))return gB[cA].apply(this,arguments);return a.onMismatch(M,arguments,P)};function gI(cA,ng){return arguments.length===LI&&AI(cA)&&og(ng)?UI.apply(this,arguments):arguments.length===JI&&kB(cA)&&UB(ng)?mI.apply(this,arguments):arguments.length===_I&&oI(cA)&&VI(ng)?XI.apply(this,arguments):arguments.length===mB&&nI(cA)&&rI(ng)?ZI.apply(this,arguments):arguments.length===$I&&WI(cA)&&kI(ng)?xg.apply(this,arguments):arguments.length===SB&&PI(cA)&&zI(ng)?SI.apply(this,arguments):YI.apply(this,arguments)}try{Object.defineProperty(gI,"name",{value:M})}catch{}return gI.signatures=K,gI._typedFunctionData={signatures:P,signatureMap:FA},gI}function eA(M,N,L){throw J(M,N,L)}function pA(M){return bA(M,0,M.length-1)}function hA(M){return M[M.length-1]}function bA(M,N,L){return Array.prototype.slice.call(M,N,L)}function fA(M,N){return{referTo:{references:M,callback:N}}}function GA(M){if(typeof M!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:M}}}function tA(M){return M&&typeof M.referTo=="object"&&Array.isArray(M.referTo.references)&&typeof M.referTo.callback=="function"}function rA(M){return M&&typeof M.referToSelf=="object"&&typeof M.referToSelf.callback=="function"}function LA(M,N){if(!M)return N;if(N&&N!==M){const L=new Error("Function names do not match (expected: "+M+", actual: "+N+")");throw L.data={actual:N,expected:M},L}return M}function KA(M){let N;for(const L in M)Object.prototype.hasOwnProperty.call(M,L)&&(r(M[L])||typeof M[L].signature=="string")&&(N=LA(N,M[L].name));return N}function ig(M,N){let L;for(L in N)if(Object.prototype.hasOwnProperty.call(N,L)){if(L in M&&N[L]!==M[L]){const x=new Error('Signature "'+L+'" is defined twice');throw x.data={signature:L,sourceFunction:N[L],destFunction:M[L]},x}M[L]=N[L]}}e(),t(g);const vA=a;function sA(M){if(!M||typeof M.from!="string"||typeof M.to!="string"||typeof M.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(M.to===M.from)throw new SyntaxError('Illegal to define conversion from "'+M.from+'" to itself.')}return a=function(M){const N=typeof M=="string";let L=N?M:"";const x={};for(let K=N?1:0;K<arguments.length;++K){const T=arguments[K];let z,q={};if(typeof T=="function"?(z=T.name,typeof T.signature=="string"?q[T.signature]=T:r(T)&&(q=T.signatures)):A(T)&&(q=T,N||(z=KA(T))),Object.keys(q).length===0){const $=new TypeError("Argument to 'typed' at index "+K+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw $.data={index:K,argument:T},$}N||(L=LA(L,z)),ig(x,q)}return lA(L||"",x)},a.create=B,a.createCount=vA.createCount,a.onMismatch=eA,a.throwMismatchError=eA,a.createError=J,a.clear=e,a.clearConversions=function(){let M;for(M of C)Q.get(M).conversionsTo=[];E=0},a.addTypes=t,a._findType=i,a.referTo=function(){const M=pA(arguments).map(L=>s(h(L))),N=hA(arguments);if(typeof N!="function")throw new TypeError("Callback function expected as last argument");return fA(M,N)},a.referToSelf=GA,a.convert=function(M,N){const L=i(N);if(L.test(M))return M;const x=L.conversionsTo;if(x.length===0)throw new Error("There are no conversions to "+N+" defined.");for(let K=0;K<x.length;K++)if(i(x[K].from).test(M))return x[K].convert(M);throw new Error("Cannot convert "+M+" to "+N)},a.findSignature=n,a.find=function(M,N,L){return n(M,N,L).implementation},a.isTypedFunction=r,a.warnAgainstDeprecatedThis=!0,a.addType=function(M,N){let L="any";N!==!1&&Q.has("Object")&&(L="Object"),a.addTypes([M],L)},a.addConversion=function(M){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};sA(M);const L=i(M.to),x=L.conversionsTo.find(K=>K.from===M.from);if(x){if(!N||!N.override)throw new Error('There is already a conversion from "'+M.from+'" to "'+L.name+'"');a.removeConversion({from:x.from,to:M.to,convert:x.convert})}L.conversionsTo.push({from:M.from,convert:M.convert,index:E++})},a.addConversions=function(M,N){M.forEach(L=>a.addConversion(L,N))},a.removeConversion=function(M){sA(M);const N=i(M.to),L=function(K,T){for(let z=0;z<K.length;z++)if(T(K[z]))return K[z]}(N.conversionsTo,K=>K.from===M.from);if(!L)throw new Error("Attempt to remove nonexistent conversion from "+M.from+" to "+M.to);if(L.convert!==M.convert)throw new Error("Conversion to remove does not match existing conversion");const x=N.conversionsTo.indexOf(L);N.conversionsTo.splice(x,1)},a.resolve=function(M,N){if(!r(M))throw new TypeError(aC);const L=M._typedFunctionData.signatures;for(let x=0;x<L.length;++x)if(L[x].test(N))return L[x];return null},a}();function wA(B,A,g,I){function Q(C){var E=function(a,i){for(var t={},e=0;e<i.length;e++){var o=i[e],r=a[o];r!==void 0&&(t[o]=r)}return t}(C,A.map(ii));return function(a,i,t){var e=i.filter(r=>!function(n){return n&&n[0]==="?"}(r)).every(r=>t[r]!==void 0);if(!e){var o=i.filter(r=>t[r]===void 0);throw new Error('Cannot create function "'.concat(a,'", ')+"some dependencies are missing: ".concat(o.map(r=>'"'.concat(r,'"')).join(", "),"."))}}(B,A,C),g(E)}return Q.isFactory=!0,Q.fn=B,Q.dependencies=A.slice().sort(),I&&(Q.meta=I),Q}function ii(B){return B&&B[0]==="?"?B.slice(1):B}function YA(B){return typeof B=="boolean"||!!isFinite(B)&&B===Math.round(B)}function gQ(B,A,g){var I={2:"0b",8:"0o",16:"0x"}[A],Q="";if(g){if(g<1)throw new Error("size must be in greater than 0");if(!YA(g))throw new Error("size must be an integer");if(B>2**(g-1)-1||B<-(2**(g-1)))throw new Error("Value must be in range [-2^".concat(g-1,", 2^").concat(g-1,"-1]"));if(!YA(B))throw new Error("Value must be an integer");B<0&&(B+=2**g),Q="i".concat(g)}var C="";return B<0&&(B=-B,C="-"),"".concat(C).concat(I).concat(B.toString(A)).concat(Q)}function cQ(B,A){if(typeof A=="function")return A(B);if(B===1/0)return"Infinity";if(B===-1/0)return"-Infinity";if(isNaN(B))return"NaN";var{notation:g,precision:I,wordSize:Q}=WE(A);switch(g){case"fixed":return function(C,E){if(isNaN(C)||!isFinite(C))return String(C);var a=rB(C),i=typeof E=="number"?sB(a,a.exponent+1+E):a,t=i.coefficients,e=i.exponent+1,o=e+(E||0);return t.length<o&&(t=t.concat(fI(o-t.length))),e<0&&(t=fI(1-e).concat(t),e=1),e<t.length&&t.splice(e,0,e===0?"0.":"."),i.sign+t.join("")}(B,I);case"exponential":return eC(B,I);case"engineering":return function(C,E){if(isNaN(C)||!isFinite(C))return String(C);var a=rB(C),i=sB(a,E),t=i.exponent,e=i.coefficients,o=t%3==0?t:t<0?t-3-t%3:t-t%3;if(UA(E))for(;E>e.length||t-o+1>e.length;)e.push(0);else for(var r=Math.abs(t-o)-(e.length-1),n=0;n<r;n++)e.push(0);for(var s=Math.abs(t-o),c=1;s>0;)c++,s--;var D=e.slice(c).join(""),b=UA(E)&&D.length||D.match(/[1-9]/)?"."+D:"",h=e.slice(0,c).join("")+b+"e"+(t>=0?"+":"")+o.toString();return i.sign+h}(B,I);case"bin":return gQ(B,2,Q);case"oct":return gQ(B,8,Q);case"hex":return gQ(B,16,Q);case"auto":return function(C,E,a){if(isNaN(C)||!isFinite(C))return String(C);var i=tC(a?.lowerExp,-3),t=tC(a?.upperExp,5),e=rB(C),o=E?sB(e,E):e;if(o.exponent<i||o.exponent>=t)return eC(C,E);var r=o.coefficients,n=o.exponent;r.length<E&&(r=r.concat(fI(E-r.length))),r=r.concat(fI(n-r.length+1+(r.length<E?E-r.length:0)));var s=n>0?n:0;return s<(r=fI(-n).concat(r)).length-1&&r.splice(s+1,0,"."),o.sign+r.join("")}(B,I,A).replace(/((\.\d*?)(0+))($|e)/,function(){var C=arguments[2],E=arguments[4];return C!=="."?C+E:E});default:throw new Error('Unknown notation "'+g+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function WE(B){var A,g,I="auto";if(B!==void 0)if(UA(B))A=B;else if(WA(B))A=B.toNumber();else{if(!pQ(B))throw new Error("Unsupported type of options, number, BigNumber, or object expected");B.precision!==void 0&&(A=iC(B.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),B.wordSize!==void 0&&(g=iC(B.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),B.notation&&(I=B.notation)}return{notation:I,precision:A,wordSize:g}}function rB(B){var A=String(B).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!A)throw new SyntaxError("Invalid number "+B);var g=A[1],I=A[2],Q=parseFloat(A[4]||"0"),C=I.indexOf(".");Q+=C!==-1?C-1:I.length-1;var E=I.replace(".","").replace(/^0*/,function(a){return Q-=a.length,""}).replace(/0*$/,"").split("").map(function(a){return parseInt(a)});return E.length===0&&(E.push(0),Q++),{sign:g,coefficients:E,exponent:Q}}function eC(B,A){if(isNaN(B)||!isFinite(B))return String(B);var g=rB(B),I=A?sB(g,A):g,Q=I.coefficients,C=I.exponent;Q.length<A&&(Q=Q.concat(fI(A-Q.length)));var E=Q.shift();return I.sign+E+(Q.length>0?"."+Q.join(""):"")+"e"+(C>=0?"+":"")+C}function sB(B,A){for(var g={sign:B.sign,coefficients:B.coefficients,exponent:B.exponent},I=g.coefficients;A<=0;)I.unshift(0),g.exponent++,A++;if(I.length>A&&I.splice(A,I.length-A)[0]>=5){var Q=A-1;for(I[Q]++;I[Q]===10;)I.pop(),Q===0&&(I.unshift(0),g.exponent++,Q++),I[--Q]++}return g}function fI(B){for(var A=[],g=0;g<B;g++)A.push(0);return A}function cB(B,A){var g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(g<=0)throw new Error("Relative tolerance must be greater than 0");if(I<0)throw new Error("Absolute tolerance must be at least 0");return!isNaN(B)&&!isNaN(A)&&(isFinite(B)&&isFinite(A)?B===A||Math.abs(B-A)<=Math.max(g*Math.max(Math.abs(B),Math.abs(A)),I):B===A)}function iC(B,A){return UA(B)?B:WA(B)?B.toNumber():void A()}function tC(B,A){return UA(B)?B:WA(B)?B.toNumber():A}var PE=function(){return PE=lB.create,lB},ti=wA("typed",["?BigNumber","?Complex","?DenseMatrix","?Fraction"],function(B){var{BigNumber:A,Complex:g,DenseMatrix:I,Fraction:Q}=B,C=PE();return C.clear(),C.addTypes([{name:"number",test:UA},{name:"Complex",test:vE},{name:"BigNumber",test:WA},{name:"bigint",test:me},{name:"Fraction",test:TE},{name:"Unit",test:OE},{name:"identifier",test:E=>pg&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(E)},{name:"string",test:pg},{name:"Chain",test:ei},{name:"Array",test:VA},{name:"Matrix",test:qA},{name:"DenseMatrix",test:Se},{name:"SparseMatrix",test:Le},{name:"Range",test:Je},{name:"Index",test:RQ},{name:"boolean",test:Ye},{name:"ResultSet",test:xe},{name:"Help",test:He},{name:"function",test:Ke},{name:"Date",test:je},{name:"RegExp",test:qe},{name:"null",test:Te},{name:"undefined",test:Oe},{name:"AccessorNode",test:We},{name:"ArrayNode",test:Pe},{name:"AssignmentNode",test:Ve},{name:"BlockNode",test:ze},{name:"ConditionalNode",test:Xe},{name:"ConstantNode",test:Ze},{name:"FunctionNode",test:$e},{name:"FunctionAssignmentNode",test:_e},{name:"IndexNode",test:Ai},{name:"Node",test:gi},{name:"ObjectNode",test:Ii},{name:"OperatorNode",test:Bi},{name:"ParenthesisNode",test:Qi},{name:"RangeNode",test:Ci},{name:"RelationalNode",test:Ei},{name:"SymbolNode",test:ai},{name:"Map",test:ve},{name:"Object",test:pQ}]),C.addConversions([{from:"number",to:"BigNumber",convert:function(E){if(A||BB(E),E.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+E+"). Use function bignumber(x) to convert to BigNumber.");return new A(E)}},{from:"number",to:"Complex",convert:function(E){return g||QB(E),new g(E,0)}},{from:"BigNumber",to:"Complex",convert:function(E){return g||QB(E),new g(E.toNumber(),0)}},{from:"bigint",to:"number",convert:function(E){if(E>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+E+")");return Number(E)}},{from:"bigint",to:"BigNumber",convert:function(E){return A||BB(E),new A(E.toString())}},{from:"bigint",to:"Fraction",convert:function(E){return Q||CB(E),new Q(E)}},{from:"Fraction",to:"BigNumber",convert:function(E){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(E){return g||QB(E),new g(E.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(E){Q||CB(E);var a=new Q(E);if(a.valueOf()!==E)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+E+"). Use function fraction(x) to convert to Fraction.");return a}},{from:"string",to:"number",convert:function(E){var a=Number(E);if(isNaN(a))throw new Error('Cannot convert "'+E+'" to a number');return a}},{from:"string",to:"BigNumber",convert:function(E){A||BB(E);try{return new A(E)}catch{throw new Error('Cannot convert "'+E+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(E){try{return BigInt(E)}catch{throw new Error('Cannot convert "'+E+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(E){Q||CB(E);try{return new Q(E)}catch{throw new Error('Cannot convert "'+E+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(E){g||QB(E);try{return new g(E)}catch{throw new Error('Cannot convert "'+E+'" to Complex')}}},{from:"boolean",to:"number",convert:function(E){return+E}},{from:"boolean",to:"BigNumber",convert:function(E){return A||BB(E),new A(+E)}},{from:"boolean",to:"bigint",convert:function(E){return BigInt(+E)}},{from:"boolean",to:"Fraction",convert:function(E){return Q||CB(E),new Q(+E)}},{from:"boolean",to:"string",convert:function(E){return String(E)}},{from:"Array",to:"Matrix",convert:function(E){return I||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new I(E)}},{from:"Matrix",to:"Array",convert:function(E){return E.valueOf()}}]),C.onMismatch=(E,a,i)=>{var t=C.createError(E,a,i);if(["wrongType","mismatch"].includes(t.data.category)&&a.length===1&&wB(a[0])&&i.some(o=>!o.params.includes(","))){var e=new TypeError("Function '".concat(E,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(E,")'."));throw e.data=t.data,e}throw t},C.onMismatch=(E,a,i)=>{var t=C.createError(E,a,i);if(["wrongType","mismatch"].includes(t.data.category)&&a.length===1&&wB(a[0])&&i.some(o=>!o.params.includes(","))){var e=new TypeError("Function '".concat(E,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(E,")'."));throw e.data=t.data,e}throw t},C});function BB(B){throw new Error("Cannot convert value ".concat(B," into a BigNumber: no class 'BigNumber' provided"))}function QB(B){throw new Error("Cannot convert value ".concat(B," into a Complex number: no class 'Complex' provided"))}function CB(B){throw new Error("Cannot convert value ".concat(B," into a Fraction, no class 'Fraction' provided."))}/*!
|
|
906
906
|
* decimal.js v10.5.0
|
|
907
907
|
* An arbitrary-precision Decimal type for JavaScript.
|
|
908
908
|
* https://github.com/MikeMcl/decimal.js
|
|
909
909
|
* Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
|
|
910
910
|
* MIT Licence
|
|
911
|
-
*/var VE,Jg,FI=9e15,Zg=1e9,hQ="0123456789abcdef",fB="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",FB="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",DQ={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-FI,maxE:FI,crypto:!1},iA=!0,pB="[DecimalError] ",AI=pB+"Invalid argument: ",zE=pB+"Precision limit exceeded",XE=pB+"crypto unavailable",ZE="[object Decimal]",Ag=Math.floor,zA=Math.pow,oi=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ni=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ri=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,_E=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Fg=1e7,si=fB.length-1,dQ=FB.length-1,j={toStringTag:ZE};function _A(B){var A,g,I,Q=B.length-1,C="",E=B[0];if(Q>0){for(C+=E,A=1;A<Q;A++)(g=7-(I=B[A]+"").length)&&(C+=Xg(g)),C+=I;(g=7-(I=(E=B[A])+"").length)&&(C+=Xg(g))}else if(E===0)return"0";for(;E%10==0;)E/=10;return C+E}function ag(B,A,g){if(B!==~~B||B<A||B>g)throw Error(AI+B)}function qI(B,A,g,I){var Q,C,E,a;for(C=B[0];C>=10;C/=10)--A;return--A<0?(A+=7,Q=0):(Q=Math.ceil((A+1)/7),A%=7),C=zA(10,7-A),a=B[Q]%C|0,I==null?A<3?(A==0?a=a/100|0:A==1&&(a=a/10|0),E=g<4&&a==99999||g>3&&a==49999||a==5e4||a==0):E=(g<4&&a+1==C||g>3&&a+1==C/2)&&(B[Q+1]/C/100|0)==zA(10,A-2)-1||(a==C/2||a==0)&&!(B[Q+1]/C/100|0):A<4?(A==0?a=a/1e3|0:A==1?a=a/100|0:A==2&&(a=a/10|0),E=(I||g<4)&&a==9999||!I&&g>3&&a==4999):E=((I||g<4)&&a+1==C||!I&&g>3&&a+1==C/2)&&(B[Q+1]/C/1e3|0)==zA(10,A-3)-1,E}function hB(B,A,g){for(var I,Q,C=[0],E=0,a=B.length;E<a;){for(Q=C.length;Q--;)C[Q]*=A;for(C[0]+=hQ.indexOf(B.charAt(E++)),I=0;I<C.length;I++)C[I]>g-1&&(C[I+1]===void 0&&(C[I+1]=0),C[I+1]+=C[I]/g|0,C[I]%=g)}return C.reverse()}j.absoluteValue=j.abs=function(){var B=new this.constructor(this);return B.s<0&&(B.s=1),CA(B)},j.ceil=function(){return CA(new this.constructor(this),this.e+1,2)},j.clampedTo=j.clamp=function(B,A){var g=this,I=g.constructor;if(B=new I(B),A=new I(A),!B.s||!A.s)return new I(NaN);if(B.gt(A))throw Error(AI+A);return g.cmp(B)<0?B:g.cmp(A)>0?A:new I(g)},j.comparedTo=j.cmp=function(B){var A,g,I,Q,C=this,E=C.d,a=(B=new C.constructor(B)).d,i=C.s,t=B.s;if(!E||!a)return i&&t?i!==t?i:E===a?0:!E^i<0?1:-1:NaN;if(!E[0]||!a[0])return E[0]?i:a[0]?-t:0;if(i!==t)return i;if(C.e!==B.e)return C.e>B.e^i<0?1:-1;for(A=0,g=(I=E.length)<(Q=a.length)?I:Q;A<g;++A)if(E[A]!==a[A])return E[A]>a[A]^i<0?1:-1;return I===Q?0:I>Q^i<0?1:-1},j.cosine=j.cos=function(){var B,A,g=this,I=g.constructor;return g.d?g.d[0]?(B=I.precision,A=I.rounding,I.precision=B+Math.max(g.e,g.sd())+7,I.rounding=1,g=function(Q,C){var E,a,i;if(C.isZero())return C;a=C.d.length,a<32?i=(1/EB(4,E=Math.ceil(a/3))).toString():(E=16,i="2.3283064365386962890625e-10"),Q.precision+=E,C=bI(Q,1,C.times(i),new Q(1));for(var t=E;t--;){var e=C.times(C);C=e.times(e).minus(e).times(8).plus(1)}return Q.precision-=E,C}(I,rC(I,g)),I.precision=B,I.rounding=A,CA(Jg==2||Jg==3?g.neg():g,B,A,!0)):new I(1):new I(NaN)},j.cubeRoot=j.cbrt=function(){var B,A,g,I,Q,C,E,a,i,t,e=this,o=e.constructor;if(!e.isFinite()||e.isZero())return new o(e);for(iA=!1,(C=e.s*zA(e.s*e,1/3))&&Math.abs(C)!=1/0?I=new o(C.toString()):(g=_A(e.d),(C=((B=e.e)-g.length+1)%3)&&(g+=C==1||C==-2?"0":"00"),C=zA(g,1/3),B=Ag((B+1)/3)-(B%3==(B<0?-1:2)),(I=new o(g=C==1/0?"5e"+B:(g=C.toExponential()).slice(0,g.indexOf("e")+1)+B)).s=e.s),E=(B=o.precision)+3;;)if(t=(i=(a=I).times(a).times(a)).plus(e),I=NA(t.plus(e).times(a),t.plus(i),E+2,1),_A(a.d).slice(0,E)===(g=_A(I.d)).slice(0,E)){if((g=g.slice(E-3,E+1))!="9999"&&(Q||g!="4999")){+g&&(+g.slice(1)||g.charAt(0)!="5")||(CA(I,B+1,1),A=!I.times(I).times(I).eq(e));break}if(!Q&&(CA(a,B+1,0),a.times(a).times(a).eq(e))){I=a;break}E+=4,Q=1}return iA=!0,CA(I,B,o.rounding,A)},j.decimalPlaces=j.dp=function(){var B,A=this.d,g=NaN;if(A){if(g=7*((B=A.length-1)-Ag(this.e/7)),B=A[B])for(;B%10==0;B/=10)g--;g<0&&(g=0)}return g},j.dividedBy=j.div=function(B){return NA(this,new this.constructor(B))},j.dividedToIntegerBy=j.divToInt=function(B){var A=this.constructor;return CA(NA(this,new A(B),0,1,1),A.precision,A.rounding)},j.equals=j.eq=function(B){return this.cmp(B)===0},j.floor=function(){return CA(new this.constructor(this),this.e+1,3)},j.greaterThan=j.gt=function(B){return this.cmp(B)>0},j.greaterThanOrEqualTo=j.gte=function(B){var A=this.cmp(B);return A==1||A===0},j.hyperbolicCosine=j.cosh=function(){var B,A,g,I,Q,C=this,E=C.constructor,a=new E(1);if(!C.isFinite())return new E(C.s?1/0:NaN);if(C.isZero())return a;g=E.precision,I=E.rounding,E.precision=g+Math.max(C.e,C.sd())+4,E.rounding=1,(Q=C.d.length)<32?A=(1/EB(4,B=Math.ceil(Q/3))).toString():(B=16,A="2.3283064365386962890625e-10"),C=bI(E,1,C.times(A),new E(1),!0);for(var i,t=B,e=new E(8);t--;)i=C.times(C),C=a.minus(i.times(e.minus(i.times(e))));return CA(C,E.precision=g,E.rounding=I,!0)},j.hyperbolicSine=j.sinh=function(){var B,A,g,I,Q=this,C=Q.constructor;if(!Q.isFinite()||Q.isZero())return new C(Q);if(A=C.precision,g=C.rounding,C.precision=A+Math.max(Q.e,Q.sd())+4,C.rounding=1,(I=Q.d.length)<3)Q=bI(C,2,Q,Q,!0);else{B=(B=1.4*Math.sqrt(I))>16?16:0|B,Q=bI(C,2,Q=Q.times(1/EB(5,B)),Q,!0);for(var E,a=new C(5),i=new C(16),t=new C(20);B--;)E=Q.times(Q),Q=Q.times(a.plus(E.times(i.times(E).plus(t))))}return C.precision=A,C.rounding=g,CA(Q,A,g,!0)},j.hyperbolicTangent=j.tanh=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+7,I.rounding=1,NA(g.sinh(),g.cosh(),I.precision=B,I.rounding=A)):new I(g.s)},j.inverseCosine=j.acos=function(){var B=this,A=B.constructor,g=B.abs().cmp(1),I=A.precision,Q=A.rounding;return g!==-1?g===0?B.isNeg()?Ng(A,I,Q):new A(0):new A(NaN):B.isZero()?Ng(A,I+4,Q).times(.5):(A.precision=I+6,A.rounding=1,B=new A(1).minus(B).div(B.plus(1)).sqrt().atan(),A.precision=I,A.rounding=Q,B.times(2))},j.inverseHyperbolicCosine=j.acosh=function(){var B,A,g=this,I=g.constructor;return g.lte(1)?new I(g.eq(1)?0:NaN):g.isFinite()?(B=I.precision,A=I.rounding,I.precision=B+Math.max(Math.abs(g.e),g.sd())+4,I.rounding=1,iA=!1,g=g.times(g).minus(1).sqrt().plus(g),iA=!0,I.precision=B,I.rounding=A,g.ln()):new I(g)},j.inverseHyperbolicSine=j.asinh=function(){var B,A,g=this,I=g.constructor;return!g.isFinite()||g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+2*Math.max(Math.abs(g.e),g.sd())+6,I.rounding=1,iA=!1,g=g.times(g).plus(1).sqrt().plus(g),iA=!0,I.precision=B,I.rounding=A,g.ln())},j.inverseHyperbolicTangent=j.atanh=function(){var B,A,g,I,Q=this,C=Q.constructor;return Q.isFinite()?Q.e>=0?new C(Q.abs().eq(1)?Q.s/0:Q.isZero()?Q:NaN):(B=C.precision,A=C.rounding,I=Q.sd(),Math.max(I,B)<2*-Q.e-1?CA(new C(Q),B,A,!0):(C.precision=g=I-Q.e,Q=NA(Q.plus(1),new C(1).minus(Q),g+B,1),C.precision=B+4,C.rounding=1,Q=Q.ln(),C.precision=B,C.rounding=A,Q.times(.5))):new C(NaN)},j.inverseSine=j.asin=function(){var B,A,g,I,Q=this,C=Q.constructor;return Q.isZero()?new C(Q):(A=Q.abs().cmp(1),g=C.precision,I=C.rounding,A!==-1?A===0?((B=Ng(C,g+4,I).times(.5)).s=Q.s,B):new C(NaN):(C.precision=g+6,C.rounding=1,Q=Q.div(new C(1).minus(Q.times(Q)).sqrt().plus(1)).atan(),C.precision=g,C.rounding=I,Q.times(2)))},j.inverseTangent=j.atan=function(){var B,A,g,I,Q,C,E,a,i,t=this,e=t.constructor,o=e.precision,r=e.rounding;if(t.isFinite()){if(t.isZero())return new e(t);if(t.abs().eq(1)&&o+4<=dQ)return(E=Ng(e,o+4,r).times(.25)).s=t.s,E}else{if(!t.s)return new e(NaN);if(o+4<=dQ)return(E=Ng(e,o+4,r).times(.5)).s=t.s,E}for(e.precision=a=o+10,e.rounding=1,B=g=Math.min(28,a/7+2|0);B;--B)t=t.div(t.times(t).plus(1).sqrt().plus(1));for(iA=!1,A=Math.ceil(a/7),I=1,i=t.times(t),E=new e(t),Q=t;B!==-1;)if(Q=Q.times(i),C=E.minus(Q.div(I+=2)),Q=Q.times(i),(E=C.plus(Q.div(I+=2))).d[A]!==void 0)for(B=A;E.d[B]===C.d[B]&&B--;);return g&&(E=E.times(2<<g-1)),iA=!0,CA(E,e.precision=o,e.rounding=r,!0)},j.isFinite=function(){return!!this.d},j.isInteger=j.isInt=function(){return!!this.d&&Ag(this.e/7)>this.d.length-2},j.isNaN=function(){return!this.s},j.isNegative=j.isNeg=function(){return this.s<0},j.isPositive=j.isPos=function(){return this.s>0},j.isZero=function(){return!!this.d&&this.d[0]===0},j.lessThan=j.lt=function(B){return this.cmp(B)<0},j.lessThanOrEqualTo=j.lte=function(B){return this.cmp(B)<1},j.logarithm=j.log=function(B){var A,g,I,Q,C,E,a,i,t=this,e=t.constructor,o=e.precision,r=e.rounding;if(B==null)B=new e(10),A=!0;else{if(g=(B=new e(B)).d,B.s<0||!g||!g[0]||B.eq(1))return new e(NaN);A=B.eq(10)}if(g=t.d,t.s<0||!g||!g[0]||t.eq(1))return new e(g&&!g[0]?-1/0:t.s!=1?NaN:g?0:1/0);if(A)if(g.length>1)C=!0;else{for(Q=g[0];Q%10==0;)Q/=10;C=Q!==1}if(iA=!1,E=Vg(t,a=o+5),I=A?yB(e,a+10):Vg(B,a),qI((i=NA(E,I,a,1)).d,Q=o,r))do if(E=Vg(t,a+=10),I=A?yB(e,a+10):Vg(B,a),i=NA(E,I,a,1),!C){+_A(i.d).slice(Q+1,Q+15)+1==1e14&&(i=CA(i,o+1,0));break}while(qI(i.d,Q+=10,r));return iA=!0,CA(i,o,r)},j.minus=j.sub=function(B){var A,g,I,Q,C,E,a,i,t,e,o,r,n=this,s=n.constructor;if(B=new s(B),!n.d||!B.d)return n.s&&B.s?n.d?B.s=-B.s:B=new s(B.d||n.s!==B.s?n:NaN):B=new s(NaN),B;if(n.s!=B.s)return B.s=-B.s,n.plus(B);if(t=n.d,r=B.d,a=s.precision,i=s.rounding,!t[0]||!r[0]){if(r[0])B.s=-B.s;else{if(!t[0])return new s(i===3?-0:0);B=new s(n)}return iA?CA(B,a,i):B}if(g=Ag(B.e/7),e=Ag(n.e/7),t=t.slice(),C=e-g){for((o=C<0)?(A=t,C=-C,E=r.length):(A=r,g=e,E=t.length),C>(I=Math.max(Math.ceil(a/7),E)+2)&&(C=I,A.length=1),A.reverse(),I=C;I--;)A.push(0);A.reverse()}else{for((o=(I=t.length)<(E=r.length))&&(E=I),I=0;I<E;I++)if(t[I]!=r[I]){o=t[I]<r[I];break}C=0}for(o&&(A=t,t=r,r=A,B.s=-B.s),E=t.length,I=r.length-E;I>0;--I)t[E++]=0;for(I=r.length;I>C;){if(t[--I]<r[I]){for(Q=I;Q&&t[--Q]===0;)t[Q]=Fg-1;--t[Q],t[I]+=Fg}t[I]-=r[I]}for(;t[--E]===0;)t.pop();for(;t[0]===0;t.shift())--g;return t[0]?(B.d=t,B.e=DB(t,g),iA?CA(B,a,i):B):new s(i===3?-0:0)},j.modulo=j.mod=function(B){var A,g=this,I=g.constructor;return B=new I(B),!g.d||!B.s||B.d&&!B.d[0]?new I(NaN):!B.d||g.d&&!g.d[0]?CA(new I(g),I.precision,I.rounding):(iA=!1,I.modulo==9?(A=NA(g,B.abs(),0,3,1)).s*=B.s:A=NA(g,B,0,I.modulo,1),A=A.times(B),iA=!0,g.minus(A))},j.naturalExponential=j.exp=function(){return IQ(this)},j.naturalLogarithm=j.ln=function(){return Vg(this)},j.negated=j.neg=function(){var B=new this.constructor(this);return B.s=-B.s,CA(B)},j.plus=j.add=function(B){var A,g,I,Q,C,E,a,i,t,e,o=this,r=o.constructor;if(B=new r(B),!o.d||!B.d)return o.s&&B.s?o.d||(B=new r(B.d||o.s===B.s?o:NaN)):B=new r(NaN),B;if(o.s!=B.s)return B.s=-B.s,o.minus(B);if(t=o.d,e=B.d,a=r.precision,i=r.rounding,!t[0]||!e[0])return e[0]||(B=new r(o)),iA?CA(B,a,i):B;if(C=Ag(o.e/7),I=Ag(B.e/7),t=t.slice(),Q=C-I){for(Q<0?(g=t,Q=-Q,E=e.length):(g=e,I=C,E=t.length),Q>(E=(C=Math.ceil(a/7))>E?C+1:E+1)&&(Q=E,g.length=1),g.reverse();Q--;)g.push(0);g.reverse()}for((E=t.length)-(Q=e.length)<0&&(Q=E,g=e,e=t,t=g),A=0;Q;)A=(t[--Q]=t[Q]+e[Q]+A)/Fg|0,t[Q]%=Fg;for(A&&(t.unshift(A),++I),E=t.length;t[--E]==0;)t.pop();return B.d=t,B.e=DB(t,I),iA?CA(B,a,i):B},j.precision=j.sd=function(B){var A,g=this;if(B!==void 0&&B!==!!B&&B!==1&&B!==0)throw Error(AI+B);return g.d?(A=oC(g.d),B&&g.e+1>A&&(A=g.e+1)):A=NaN,A},j.round=function(){var B=this,A=B.constructor;return CA(new A(B),B.e+1,A.rounding)},j.sine=j.sin=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+Math.max(g.e,g.sd())+7,I.rounding=1,g=function(Q,C){var E,a=C.d.length;if(a<3)return C.isZero()?C:bI(Q,2,C,C);E=(E=1.4*Math.sqrt(a))>16?16:0|E,C=C.times(1/EB(5,E)),C=bI(Q,2,C,C);for(var i,t=new Q(5),e=new Q(16),o=new Q(20);E--;)i=C.times(C),C=C.times(t.plus(i.times(e.times(i).minus(o))));return C}(I,rC(I,g)),I.precision=B,I.rounding=A,CA(Jg>2?g.neg():g,B,A,!0)):new I(NaN)},j.squareRoot=j.sqrt=function(){var B,A,g,I,Q,C,E=this,a=E.d,i=E.e,t=E.s,e=E.constructor;if(t!==1||!a||!a[0])return new e(!t||t<0&&(!a||a[0])?NaN:a?E:1/0);for(iA=!1,(t=Math.sqrt(+E))==0||t==1/0?(((A=_A(a)).length+i)%2==0&&(A+="0"),t=Math.sqrt(A),i=Ag((i+1)/2)-(i<0||i%2),I=new e(A=t==1/0?"5e"+i:(A=t.toExponential()).slice(0,A.indexOf("e")+1)+i)):I=new e(t.toString()),g=(i=e.precision)+3;;)if(I=(C=I).plus(NA(E,C,g+2,1)).times(.5),_A(C.d).slice(0,g)===(A=_A(I.d)).slice(0,g)){if((A=A.slice(g-3,g+1))!="9999"&&(Q||A!="4999")){+A&&(+A.slice(1)||A.charAt(0)!="5")||(CA(I,i+1,1),B=!I.times(I).eq(E));break}if(!Q&&(CA(C,i+1,0),C.times(C).eq(E))){I=C;break}g+=4,Q=1}return iA=!0,CA(I,i,e.rounding,B)},j.tangent=j.tan=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+10,I.rounding=1,(g=g.sin()).s=1,g=NA(g,new I(1).minus(g.times(g)).sqrt(),B+10,0),I.precision=B,I.rounding=A,CA(Jg==2||Jg==4?g.neg():g,B,A,!0)):new I(NaN)},j.times=j.mul=function(B){var A,g,I,Q,C,E,a,i,t,e=this,o=e.constructor,r=e.d,n=(B=new o(B)).d;if(B.s*=e.s,!(r&&r[0]&&n&&n[0]))return new o(!B.s||r&&!r[0]&&!n||n&&!n[0]&&!r?NaN:r&&n?0*B.s:B.s/0);for(g=Ag(e.e/7)+Ag(B.e/7),(i=r.length)<(t=n.length)&&(C=r,r=n,n=C,E=i,i=t,t=E),C=[],I=E=i+t;I--;)C.push(0);for(I=t;--I>=0;){for(A=0,Q=i+I;Q>I;)a=C[Q]+n[I]*r[Q-I-1]+A,C[Q--]=a%Fg|0,A=a/Fg|0;C[Q]=(C[Q]+A)%Fg|0}for(;!C[--E];)C.pop();return A?++g:C.shift(),B.d=C,B.e=DB(C,g),iA?CA(B,o.precision,o.rounding):B},j.toBinary=function(B,A){return BQ(this,2,B,A)},j.toDecimalPlaces=j.toDP=function(B,A){var g=this,I=g.constructor;return g=new I(g),B===void 0?g:(ag(B,0,Zg),A===void 0?A=I.rounding:ag(A,0,8),CA(g,B+g.e+1,A))},j.toExponential=function(B,A){var g,I=this,Q=I.constructor;return B===void 0?g=Gg(I,!0):(ag(B,0,Zg),A===void 0?A=Q.rounding:ag(A,0,8),g=Gg(I=CA(new Q(I),B+1,A),!0,B+1)),I.isNeg()&&!I.isZero()?"-"+g:g},j.toFixed=function(B,A){var g,I,Q=this,C=Q.constructor;return B===void 0?g=Gg(Q):(ag(B,0,Zg),A===void 0?A=C.rounding:ag(A,0,8),g=Gg(I=CA(new C(Q),B+Q.e+1,A),!1,B+I.e+1)),Q.isNeg()&&!Q.isZero()?"-"+g:g},j.toFraction=function(B){var A,g,I,Q,C,E,a,i,t,e,o,r,n=this,s=n.d,c=n.constructor;if(!s)return new c(n);if(t=g=new c(1),I=i=new c(0),E=(C=(A=new c(I)).e=oC(s)-n.e-1)%7,A.d[0]=zA(10,E<0?7+E:E),B==null)B=C>0?A:t;else{if(!(a=new c(B)).isInt()||a.lt(t))throw Error(AI+a);B=a.gt(A)?C>0?A:t:a}for(iA=!1,a=new c(_A(s)),e=c.precision,c.precision=C=7*s.length*2;o=NA(a,A,0,1,1),(Q=g.plus(o.times(I))).cmp(B)!=1;)g=I,I=Q,Q=t,t=i.plus(o.times(Q)),i=Q,Q=A,A=a.minus(o.times(Q)),a=Q;return Q=NA(B.minus(g),I,0,1,1),i=i.plus(Q.times(t)),g=g.plus(Q.times(I)),i.s=t.s=n.s,r=NA(t,I,C,1).minus(n).abs().cmp(NA(i,g,C,1).minus(n).abs())<1?[t,I]:[i,g],c.precision=e,iA=!0,r},j.toHexadecimal=j.toHex=function(B,A){return BQ(this,16,B,A)},j.toNearest=function(B,A){var g=this,I=g.constructor;if(g=new I(g),B==null){if(!g.d)return g;B=new I(1),A=I.rounding}else{if(B=new I(B),A===void 0?A=I.rounding:ag(A,0,8),!g.d)return B.s?g:B;if(!B.d)return B.s&&(B.s=g.s),B}return B.d[0]?(iA=!1,g=NA(g,B,0,A,1).times(B),iA=!0,CA(g)):(B.s=g.s,g=B),g},j.toNumber=function(){return+this},j.toOctal=function(B,A){return BQ(this,8,B,A)},j.toPower=j.pow=function(B){var A,g,I,Q,C,E,a=this,i=a.constructor,t=+(B=new i(B));if(!(a.d&&B.d&&a.d[0]&&B.d[0]))return new i(zA(+a,t));if((a=new i(a)).eq(1))return a;if(I=i.precision,C=i.rounding,B.eq(1))return CA(a,I,C);if((A=Ag(B.e/7))>=B.d.length-1&&(g=t<0?-t:t)<=9007199254740991)return Q=$E(i,a,g,I),B.s<0?new i(1).div(Q):CA(Q,I,C);if((E=a.s)<0){if(A<B.d.length-1)return new i(NaN);if(1&B.d[A]||(E=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=E,a}return(A=(g=zA(+a,t))!=0&&isFinite(g)?new i(g+"").e:Ag(t*(Math.log("0."+_A(a.d))/Math.LN10+a.e+1)))>i.maxE+1||A<i.minE-1?new i(A>0?E/0:0):(iA=!1,i.rounding=a.s=1,g=Math.min(12,(A+"").length),(Q=IQ(B.times(Vg(a,I+g)),I)).d&&qI((Q=CA(Q,I+5,1)).d,I,C)&&(A=I+10,+_A((Q=CA(IQ(B.times(Vg(a,A+g)),A),A+5,1)).d).slice(I+1,I+15)+1==1e14&&(Q=CA(Q,I+1,0))),Q.s=E,iA=!0,i.rounding=C,CA(Q,I,C))},j.toPrecision=function(B,A){var g,I=this,Q=I.constructor;return B===void 0?g=Gg(I,I.e<=Q.toExpNeg||I.e>=Q.toExpPos):(ag(B,1,Zg),A===void 0?A=Q.rounding:ag(A,0,8),g=Gg(I=CA(new Q(I),B,A),B<=I.e||I.e<=Q.toExpNeg,B)),I.isNeg()&&!I.isZero()?"-"+g:g},j.toSignificantDigits=j.toSD=function(B,A){var g=this.constructor;return B===void 0?(B=g.precision,A=g.rounding):(ag(B,1,Zg),A===void 0?A=g.rounding:ag(A,0,8)),CA(new g(this),B,A)},j.toString=function(){var B=this,A=B.constructor,g=Gg(B,B.e<=A.toExpNeg||B.e>=A.toExpPos);return B.isNeg()&&!B.isZero()?"-"+g:g},j.truncated=j.trunc=function(){return CA(new this.constructor(this),this.e+1,1)},j.valueOf=j.toJSON=function(){var B=this,A=B.constructor,g=Gg(B,B.e<=A.toExpNeg||B.e>=A.toExpPos);return B.isNeg()?"-"+g:g};var NA=function(){function B(I,Q,C){var E,a=0,i=I.length;for(I=I.slice();i--;)E=I[i]*Q+a,I[i]=E%C|0,a=E/C|0;return a&&I.unshift(a),I}function A(I,Q,C,E){var a,i;if(C!=E)i=C>E?1:-1;else for(a=i=0;a<C;a++)if(I[a]!=Q[a]){i=I[a]>Q[a]?1:-1;break}return i}function g(I,Q,C,E){for(var a=0;C--;)I[C]-=a,a=I[C]<Q[C]?1:0,I[C]=a*E+I[C]-Q[C];for(;!I[0]&&I.length>1;)I.shift()}return function(I,Q,C,E,a,i){var t,e,o,r,n,s,c,D,b,h,w,f,p,R,U,G,k,J,m,O,X=I.constructor,IA=I.s==Q.s?1:-1,AA=I.d,Z=Q.d;if(!(AA&&AA[0]&&Z&&Z[0]))return new X(I.s&&Q.s&&(AA?!Z||AA[0]!=Z[0]:Z)?AA&&AA[0]==0||!Z?0*IA:IA/0:NaN);for(i?(n=1,e=I.e-Q.e):(i=Fg,n=7,e=Ag(I.e/n)-Ag(Q.e/n)),m=Z.length,k=AA.length,h=(b=new X(IA)).d=[],o=0;Z[o]==(AA[o]||0);o++);if(Z[o]>(AA[o]||0)&&e--,C==null?(R=C=X.precision,E=X.rounding):R=a?C+(I.e-Q.e)+1:C,R<0)h.push(1),s=!0;else{if(R=R/n+2|0,o=0,m==1){for(r=0,Z=Z[0],R++;(o<k||r)&&R--;o++)U=r*i+(AA[o]||0),h[o]=U/Z|0,r=U%Z|0;s=r||o<k}else{for((r=i/(Z[0]+1)|0)>1&&(Z=B(Z,r,i),AA=B(AA,r,i),m=Z.length,k=AA.length),G=m,f=(w=AA.slice(0,m)).length;f<m;)w[f++]=0;(O=Z.slice()).unshift(0),J=Z[0],Z[1]>=i/2&&++J;do r=0,(t=A(Z,w,m,f))<0?(p=w[0],m!=f&&(p=p*i+(w[1]||0)),(r=p/J|0)>1?(r>=i&&(r=i-1),(t=A(c=B(Z,r,i),w,D=c.length,f=w.length))==1&&(r--,g(c,m<D?O:Z,D,i))):(r==0&&(t=r=1),c=Z.slice()),(D=c.length)<f&&c.unshift(0),g(w,c,f,i),t==-1&&(t=A(Z,w,m,f=w.length))<1&&(r++,g(w,m<f?O:Z,f,i)),f=w.length):t===0&&(r++,w=[0]),h[o++]=r,t&&w[0]?w[f++]=AA[G]||0:(w=[AA[G]],f=1);while((G++<k||w[0]!==void 0)&&R--);s=w[0]!==void 0}h[0]||h.shift()}if(n==1)b.e=e,VE=s;else{for(o=1,r=h[0];r>=10;r/=10)o++;b.e=o+e*n-1,CA(b,a?C+b.e+1:C,E,s)}return b}}();function CA(B,A,g,I){var Q,C,E,a,i,t,e,o,r,n=B.constructor;A:if(A!=null){if(!(o=B.d))return B;for(Q=1,a=o[0];a>=10;a/=10)Q++;if((C=A-Q)<0)C+=7,E=A,i=(e=o[r=0])/zA(10,Q-E-1)%10|0;else if((r=Math.ceil((C+1)/7))>=(a=o.length)){if(!I)break A;for(;a++<=r;)o.push(0);e=i=0,Q=1,E=(C%=7)-7+1}else{for(e=a=o[r],Q=1;a>=10;a/=10)Q++;i=(E=(C%=7)-7+Q)<0?0:e/zA(10,Q-E-1)%10|0}if(I=I||A<0||o[r+1]!==void 0||(E<0?e:e%zA(10,Q-E-1)),t=g<4?(i||I)&&(g==0||g==(B.s<0?3:2)):i>5||i==5&&(g==4||I||g==6&&(C>0?E>0?e/zA(10,Q-E):0:o[r-1])%10&1||g==(B.s<0?8:7)),A<1||!o[0])return o.length=0,t?(A-=B.e+1,o[0]=zA(10,(7-A%7)%7),B.e=-A||0):o[0]=B.e=0,B;if(C==0?(o.length=r,a=1,r--):(o.length=r+1,a=zA(10,7-C),o[r]=E>0?(e/zA(10,Q-E)%zA(10,E)|0)*a:0),t)for(;;){if(r==0){for(C=1,E=o[0];E>=10;E/=10)C++;for(E=o[0]+=a,a=1;E>=10;E/=10)a++;C!=a&&(B.e++,o[0]==Fg&&(o[0]=1));break}if(o[r]+=a,o[r]!=Fg)break;o[r--]=0,a=1}for(C=o.length;o[--C]===0;)o.pop()}return iA&&(B.e>n.maxE?(B.d=null,B.e=NaN):B.e<n.minE&&(B.e=0,B.d=[0])),B}function Gg(B,A,g){if(!B.isFinite())return ga(B);var I,Q=B.e,C=_A(B.d),E=C.length;return A?(g&&(I=g-E)>0?C=C.charAt(0)+"."+C.slice(1)+Xg(I):E>1&&(C=C.charAt(0)+"."+C.slice(1)),C=C+(B.e<0?"e":"e+")+B.e):Q<0?(C="0."+Xg(-Q-1)+C,g&&(I=g-E)>0&&(C+=Xg(I))):Q>=E?(C+=Xg(Q+1-E),g&&(I=g-Q-1)>0&&(C=C+"."+Xg(I))):((I=Q+1)<E&&(C=C.slice(0,I)+"."+C.slice(I)),g&&(I=g-E)>0&&(Q+1===E&&(C+="."),C+=Xg(I))),C}function DB(B,A){var g=B[0];for(A*=7;g>=10;g/=10)A++;return A}function yB(B,A,g){if(A>si)throw iA=!0,g&&(B.precision=g),Error(zE);return CA(new B(fB),A,1,!0)}function Ng(B,A,g){if(A>dQ)throw Error(zE);return CA(new B(FB),A,g,!0)}function oC(B){var A=B.length-1,g=7*A+1;if(A=B[A]){for(;A%10==0;A/=10)g--;for(A=B[0];A>=10;A/=10)g++}return g}function Xg(B){for(var A="";B--;)A+="0";return A}function $E(B,A,g,I){var Q,C=new B(1),E=Math.ceil(I/7+4);for(iA=!1;;){if(g%2&&sC((C=C.times(A)).d,E)&&(Q=!0),(g=Ag(g/2))===0){g=C.d.length-1,Q&&C.d[g]===0&&++C.d[g];break}sC((A=A.times(A)).d,E)}return iA=!0,C}function nC(B){return 1&B.d[B.d.length-1]}function Aa(B,A,g){for(var I,Q,C=new B(A[0]),E=0;++E<A.length;){if(!(Q=new B(A[E])).s){C=Q;break}((I=C.cmp(Q))===g||I===0&&C.s===g)&&(C=Q)}return C}function IQ(B,A){var g,I,Q,C,E,a,i,t=0,e=0,o=0,r=B.constructor,n=r.rounding,s=r.precision;if(!B.d||!B.d[0]||B.e>17)return new r(B.d?B.d[0]?B.s<0?0:1/0:1:B.s?B.s<0?0:B:NaN);for(A==null?(iA=!1,i=s):i=A,a=new r(.03125);B.e>-2;)B=B.times(a),o+=5;for(i+=I=Math.log(zA(2,o))/Math.LN10*2+5|0,g=C=E=new r(1),r.precision=i;;){if(C=CA(C.times(B),i,1),g=g.times(++e),_A((a=E.plus(NA(C,g,i,1))).d).slice(0,i)===_A(E.d).slice(0,i)){for(Q=o;Q--;)E=CA(E.times(E),i,1);if(A!=null)return r.precision=s,E;if(!(t<3&&qI(E.d,i-I,n,t)))return CA(E,r.precision=s,n,iA=!0);r.precision=i+=10,g=C=a=new r(1),e=0,t++}E=a}}function Vg(B,A){var g,I,Q,C,E,a,i,t,e,o,r,n=1,s=B,c=s.d,D=s.constructor,b=D.rounding,h=D.precision;if(s.s<0||!c||!c[0]||!s.e&&c[0]==1&&c.length==1)return new D(c&&!c[0]?-1/0:s.s!=1?NaN:c?0:s);if(A==null?(iA=!1,e=h):e=A,D.precision=e+=10,I=(g=_A(c)).charAt(0),!(Math.abs(C=s.e)<15e14))return t=yB(D,e+2,h).times(C+""),s=Vg(new D(I+"."+g.slice(1)),e-10).plus(t),D.precision=h,A==null?CA(s,h,b,iA=!0):s;for(;I<7&&I!=1||I==1&&g.charAt(1)>3;)I=(g=_A((s=s.times(B)).d)).charAt(0),n++;for(C=s.e,I>1?(s=new D("0."+g),C++):s=new D(I+"."+g.slice(1)),o=s,i=E=s=NA(s.minus(1),s.plus(1),e,1),r=CA(s.times(s),e,1),Q=3;;){if(E=CA(E.times(r),e,1),_A((t=i.plus(NA(E,new D(Q),e,1))).d).slice(0,e)===_A(i.d).slice(0,e)){if(i=i.times(2),C!==0&&(i=i.plus(yB(D,e+2,h).times(C+""))),i=NA(i,new D(n),e,1),A!=null)return D.precision=h,i;if(!qI(i.d,e-10,b,a))return CA(i,D.precision=h,b,iA=!0);D.precision=e+=10,t=E=s=NA(o.minus(1),o.plus(1),e,1),r=CA(s.times(s),e,1),Q=a=1}i=t,Q+=2}}function ga(B){return String(B.s*B.s/0)}function dB(B,A){var g,I,Q;for((g=A.indexOf("."))>-1&&(A=A.replace(".","")),(I=A.search(/e/i))>0?(g<0&&(g=I),g+=+A.slice(I+1),A=A.substring(0,I)):g<0&&(g=A.length),I=0;A.charCodeAt(I)===48;I++);for(Q=A.length;A.charCodeAt(Q-1)===48;--Q);if(A=A.slice(I,Q)){if(Q-=I,B.e=g=g-I-1,B.d=[],I=(g+1)%7,g<0&&(I+=7),I<Q){for(I&&B.d.push(+A.slice(0,I)),Q-=7;I<Q;)B.d.push(+A.slice(I,I+=7));I=7-(A=A.slice(I)).length}else I-=Q;for(;I--;)A+="0";B.d.push(+A),iA&&(B.e>B.constructor.maxE?(B.d=null,B.e=NaN):B.e<B.constructor.minE&&(B.e=0,B.d=[0]))}else B.e=0,B.d=[0];return B}function ci(B,A){var g,I,Q,C,E,a,i,t,e;if(A.indexOf("_")>-1){if(A=A.replace(/(\d)_(?=\d)/g,"$1"),_E.test(A))return dB(B,A)}else if(A==="Infinity"||A==="NaN")return+A||(B.s=NaN),B.e=NaN,B.d=null,B;if(ni.test(A))g=16,A=A.toLowerCase();else if(oi.test(A))g=2;else{if(!ri.test(A))throw Error(AI+A);g=8}for((C=A.search(/p/i))>0?(i=+A.slice(C+1),A=A.substring(2,C)):A=A.slice(2),E=(C=A.indexOf("."))>=0,I=B.constructor,E&&(C=(a=(A=A.replace(".","")).length)-C,Q=$E(I,new I(g),C,2*C)),C=e=(t=hB(A,g,Fg)).length-1;t[C]===0;--C)t.pop();return C<0?new I(0*B.s):(B.e=DB(t,e),B.d=t,iA=!1,E&&(B=NA(B,Q,4*a)),i&&(B=B.times(Math.abs(i)<54?zA(2,i):NI.pow(2,i))),iA=!0,B)}function bI(B,A,g,I,Q){var C,E,a,i,t=B.precision,e=Math.ceil(t/7);for(iA=!1,i=g.times(g),a=new B(I);;){if(E=NA(a.times(i),new B(A++*A++),t,1),a=Q?I.plus(E):I.minus(E),I=NA(E.times(i),new B(A++*A++),t,1),(E=a.plus(I)).d[e]!==void 0){for(C=e;E.d[C]===a.d[C]&&C--;);if(C==-1)break}C=a,a=I,I=E,E=C}return iA=!0,E.d.length=e+1,E}function EB(B,A){for(var g=B;--A;)g*=B;return g}function rC(B,A){var g,I=A.s<0,Q=Ng(B,B.precision,1),C=Q.times(.5);if((A=A.abs()).lte(C))return Jg=I?4:1,A;if((g=A.divToInt(Q)).isZero())Jg=I?3:2;else{if((A=A.minus(g.times(Q))).lte(C))return Jg=nC(g)?I?2:3:I?4:1,A;Jg=nC(g)?I?1:4:I?3:2}return A.minus(Q).abs()}function BQ(B,A,g,I){var Q,C,E,a,i,t,e,o,r,n=B.constructor,s=g!==void 0;if(s?(ag(g,1,Zg),I===void 0?I=n.rounding:ag(I,0,8)):(g=n.precision,I=n.rounding),B.isFinite()){for(s?(Q=2,A==16?g=4*g-3:A==8&&(g=3*g-2)):Q=A,(E=(e=Gg(B)).indexOf("."))>=0&&(e=e.replace(".",""),(r=new n(1)).e=e.length-E,r.d=hB(Gg(r),10,Q),r.e=r.d.length),C=i=(o=hB(e,10,Q)).length;o[--i]==0;)o.pop();if(o[0]){if(E<0?C--:((B=new n(B)).d=o,B.e=C,o=(B=NA(B,r,g,I,0,Q)).d,C=B.e,t=VE),E=o[g],a=Q/2,t=t||o[g+1]!==void 0,t=I<4?(E!==void 0||t)&&(I===0||I===(B.s<0?3:2)):E>a||E===a&&(I===4||t||I===6&&1&o[g-1]||I===(B.s<0?8:7)),o.length=g,t)for(;++o[--g]>Q-1;)o[g]=0,g||(++C,o.unshift(1));for(i=o.length;!o[i-1];--i);for(E=0,e="";E<i;E++)e+=hQ.charAt(o[E]);if(s){if(i>1)if(A==16||A==8){for(E=A==16?4:3,--i;i%E;i++)e+="0";for(i=(o=hB(e,Q,A)).length;!o[i-1];--i);for(E=1,e="1.";E<i;E++)e+=hQ.charAt(o[E])}else e=e.charAt(0)+"."+e.slice(1);e=e+(C<0?"p":"p+")+C}else if(C<0){for(;++C;)e="0"+e;e="0."+e}else if(++C>i)for(C-=i;C--;)e+="0";else C<i&&(e=e.slice(0,C)+"."+e.slice(C))}else e=s?"0p+0":"0";e=(A==16?"0x":A==2?"0b":A==8?"0o":"")+e}else e=ga(B);return B.s<0?"-"+e:e}function sC(B,A){if(B.length>A)return B.length=A,!0}function hi(B){return new this(B).abs()}function Di(B){return new this(B).acos()}function di(B){return new this(B).acosh()}function bi(B,A){return new this(B).plus(A)}function wi(B){return new this(B).asin()}function ui(B){return new this(B).asinh()}function li(B){return new this(B).atan()}function fi(B){return new this(B).atanh()}function Fi(B,A){B=new this(B),A=new this(A);var g,I=this.precision,Q=this.rounding,C=I+4;return B.s&&A.s?B.d||A.d?!A.d||B.isZero()?(g=A.s<0?Ng(this,I,Q):new this(0)).s=B.s:!B.d||A.isZero()?(g=Ng(this,C,1).times(.5)).s=B.s:A.s<0?(this.precision=C,this.rounding=1,g=this.atan(NA(B,A,C,1)),A=Ng(this,C,1),this.precision=I,this.rounding=Q,g=B.s<0?g.minus(A):g.plus(A)):g=this.atan(NA(B,A,C,1)):(g=Ng(this,C,1).times(A.s>0?.25:.75)).s=B.s:g=new this(NaN),g}function yi(B){return new this(B).cbrt()}function Mi(B){return CA(B=new this(B),B.e+1,2)}function Gi(B,A,g){return new this(B).clamp(A,g)}function Ri(B){if(!B||typeof B!="object")throw Error(pB+"Object expected");var A,g,I,Q=B.defaults===!0,C=["precision",1,Zg,"rounding",0,8,"toExpNeg",-FI,0,"toExpPos",0,FI,"maxE",0,FI,"minE",-FI,0,"modulo",0,9];for(A=0;A<C.length;A+=3)if(g=C[A],Q&&(this[g]=DQ[g]),(I=B[g])!==void 0){if(!(Ag(I)===I&&I>=C[A+1]&&I<=C[A+2]))throw Error(AI+g+": "+I);this[g]=I}if(g="crypto",Q&&(this[g]=DQ[g]),(I=B[g])!==void 0){if(I!==!0&&I!==!1&&I!==0&&I!==1)throw Error(AI+g+": "+I);if(I){if(typeof crypto>"u"||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(XE);this[g]=!0}else this[g]=!1}return this}function pi(B){return new this(B).cos()}function Ni(B){return new this(B).cosh()}function ki(B,A){return new this(B).div(A)}function Ui(B){return new this(B).exp()}function mi(B){return CA(B=new this(B),B.e+1,3)}function Si(){var B,A,g=new this(0);for(iA=!1,B=0;B<arguments.length;)if((A=new this(arguments[B++])).d)g.d&&(g=g.plus(A.times(A)));else{if(A.s)return iA=!0,new this(1/0);g=A}return iA=!0,g.sqrt()}function cC(B){return B instanceof NI||B&&B.toStringTag===ZE||!1}function Li(B){return new this(B).ln()}function Ji(B,A){return new this(B).log(A)}function Yi(B){return new this(B).log(2)}function xi(B){return new this(B).log(10)}function Hi(){return Aa(this,arguments,-1)}function Ki(){return Aa(this,arguments,1)}function ji(B,A){return new this(B).mod(A)}function qi(B,A){return new this(B).mul(A)}function vi(B,A){return new this(B).pow(A)}function Ti(B){var A,g,I,Q,C=0,E=new this(1),a=[];if(B===void 0?B=this.precision:ag(B,1,Zg),I=Math.ceil(B/7),this.crypto)if(crypto.getRandomValues)for(A=crypto.getRandomValues(new Uint32Array(I));C<I;)(Q=A[C])>=429e7?A[C]=crypto.getRandomValues(new Uint32Array(1))[0]:a[C++]=Q%1e7;else{if(!crypto.randomBytes)throw Error(XE);for(A=crypto.randomBytes(I*=4);C<I;)(Q=A[C]+(A[C+1]<<8)+(A[C+2]<<16)+((127&A[C+3])<<24))>=214e7?crypto.randomBytes(4).copy(A,C):(a.push(Q%1e7),C+=4);C=I/4}else for(;C<I;)a[C++]=1e7*Math.random()|0;for(B%=7,(I=a[--C])&&B&&(Q=zA(10,7-B),a[C]=(I/Q|0)*Q);a[C]===0;C--)a.pop();if(C<0)g=0,a=[0];else{for(g=-1;a[0]===0;g-=7)a.shift();for(I=1,Q=a[0];Q>=10;Q/=10)I++;I<7&&(g-=7-I)}return E.e=g,E.d=a,E}function Oi(B){return CA(B=new this(B),B.e+1,this.rounding)}function Wi(B){return(B=new this(B)).d?B.d[0]?B.s:0*B.s:B.s||NaN}function Pi(B){return new this(B).sin()}function Vi(B){return new this(B).sinh()}function zi(B){return new this(B).sqrt()}function Xi(B,A){return new this(B).sub(A)}function Zi(){var B=0,A=arguments,g=new this(A[B]);for(iA=!1;g.s&&++B<A.length;)g=g.plus(A[B]);return iA=!0,CA(g,this.precision,this.rounding)}function _i(B){return new this(B).tan()}function $i(B){return new this(B).tanh()}function At(B){return CA(B=new this(B),B.e+1,1)}j[Symbol.for("nodejs.util.inspect.custom")]=j.toString,j[Symbol.toStringTag]="Decimal";var NI=j.constructor=function B(A){var g,I,Q;function C(E){var a,i,t,e=this;if(!(e instanceof C))return new C(E);if(e.constructor=C,cC(E))return e.s=E.s,void(iA?!E.d||E.e>C.maxE?(e.e=NaN,e.d=null):E.e<C.minE?(e.e=0,e.d=[0]):(e.e=E.e,e.d=E.d.slice()):(e.e=E.e,e.d=E.d?E.d.slice():E.d));if((t=typeof E)=="number"){if(E===0)return e.s=1/E<0?-1:1,e.e=0,void(e.d=[0]);if(E<0?(E=-E,e.s=-1):e.s=1,E===~~E&&E<1e7){for(a=0,i=E;i>=10;i/=10)a++;return void(iA?a>C.maxE?(e.e=NaN,e.d=null):a<C.minE?(e.e=0,e.d=[0]):(e.e=a,e.d=[E]):(e.e=a,e.d=[E]))}return 0*E!=0?(E||(e.s=NaN),e.e=NaN,void(e.d=null)):dB(e,E.toString())}if(t==="string")return(i=E.charCodeAt(0))===45?(E=E.slice(1),e.s=-1):(i===43&&(E=E.slice(1)),e.s=1),_E.test(E)?dB(e,E):ci(e,E);if(t==="bigint")return E<0?(E=-E,e.s=-1):e.s=1,dB(e,E.toString());throw Error(AI+E)}if(C.prototype=j,C.ROUND_UP=0,C.ROUND_DOWN=1,C.ROUND_CEIL=2,C.ROUND_FLOOR=3,C.ROUND_HALF_UP=4,C.ROUND_HALF_DOWN=5,C.ROUND_HALF_EVEN=6,C.ROUND_HALF_CEIL=7,C.ROUND_HALF_FLOOR=8,C.EUCLID=9,C.config=C.set=Ri,C.clone=B,C.isDecimal=cC,C.abs=hi,C.acos=Di,C.acosh=di,C.add=bi,C.asin=wi,C.asinh=ui,C.atan=li,C.atanh=fi,C.atan2=Fi,C.cbrt=yi,C.ceil=Mi,C.clamp=Gi,C.cos=pi,C.cosh=Ni,C.div=ki,C.exp=Ui,C.floor=mi,C.hypot=Si,C.ln=Li,C.log=Ji,C.log10=xi,C.log2=Yi,C.max=Hi,C.min=Ki,C.mod=ji,C.mul=qi,C.pow=vi,C.random=Ti,C.round=Oi,C.sign=Wi,C.sin=Pi,C.sinh=Vi,C.sqrt=zi,C.sub=Xi,C.sum=Zi,C.tan=_i,C.tanh=$i,C.trunc=At,A===void 0&&(A={}),A&&A.defaults!==!0)for(Q=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],g=0;g<Q.length;)A.hasOwnProperty(I=Q[g++])||(A[I]=this[I]);return C.config(A),C}(DQ);fB=new NI(fB),FB=new NI(FB);var gt=wA("BigNumber",["?on","config"],B=>{var{on:A,config:g}=B,I=NI.clone({precision:g.precision,modulo:NI.EUCLID});return I.prototype=Object.create(I.prototype),I.prototype.type="BigNumber",I.prototype.isBigNumber=!0,I.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},I.fromJSON=function(Q){return new I(Q.value)},A&&A("config",function(Q,C){Q.precision!==C.precision&&I.config({precision:Q.precision})}),I},{isClass:!0});const $A=Math.cosh||function(B){return Math.abs(B)<1e-9?1-B:.5*(Math.exp(B)+Math.exp(-B))},dg=Math.sinh||function(B){return Math.abs(B)<1e-9?B:.5*(Math.exp(B)-Math.exp(-B))},QQ=function(B,A){return(B=Math.abs(B))<(A=Math.abs(A))&&([B,A]=[A,B]),B<1e8?Math.sqrt(B*B+A*A):(A/=B,B*Math.sqrt(1+A*A))},wI=function(){throw SyntaxError("Invalid Param")};function CQ(B,A){const g=Math.abs(B),I=Math.abs(A);return B===0?Math.log(I):A===0?Math.log(g):g<3e3&&I<3e3?.5*Math.log(B*B+A*A):(B*=.5,A*=.5,.5*Math.log(B*B+A*A)+Math.LN2)}const It={re:0,im:0},EI=function(B,A){const g=It;if(B==null)g.re=g.im=0;else if(A!==void 0)g.re=B,g.im=A;else switch(typeof B){case"object":if("im"in B&&"re"in B)g.re=B.re,g.im=B.im;else if("abs"in B&&"arg"in B){if(!isFinite(B.abs)&&isFinite(B.arg))return Y.INFINITY;g.re=B.abs*Math.cos(B.arg),g.im=B.abs*Math.sin(B.arg)}else if("r"in B&&"phi"in B){if(!isFinite(B.r)&&isFinite(B.phi))return Y.INFINITY;g.re=B.r*Math.cos(B.phi),g.im=B.r*Math.sin(B.phi)}else B.length===2?(g.re=B[0],g.im=B[1]):wI();break;case"string":g.im=g.re=0;const I=B.replace(/_/g,"").match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g);let Q=1,C=0;I===null&&wI();for(let E=0;E<I.length;E++){const a=I[E];a===" "||a===" "||a===`
|
|
912
|
-
`||(a==="+"?Q++:a==="-"?C++:a==="i"||a==="I"?(Q+C===0&&wI(),I[E+1]===" "||isNaN(I[E+1])?g.im+=parseFloat((C%2?"-":"")+"1"):(g.im+=parseFloat((C%2?"-":"")+I[E+1]),E++),Q=C=0):((Q+C===0||isNaN(a))&&wI(),I[E+1]==="i"||I[E+1]==="I"?(g.im+=parseFloat((C%2?"-":"")+a),E++):g.re+=parseFloat((C%2?"-":"")+a),Q=C=0))}Q+C>0&&wI();break;case"number":g.im=0,g.re=B;break;default:wI()}return isNaN(g.re)||isNaN(g.im),g};function Y(B,A){if(!(this instanceof Y))return new Y(B,A);const g=EI(B,A);this.re=g.re,this.im=g.im}Y.prototype={re:0,im:0,sign:function(){const B=QQ(this.re,this.im);return new Y(this.re/B,this.im/B)},add:function(B,A){const g=EI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im));return I||Q?I&&Q?Y.NAN:Y.INFINITY:new Y(this.re+g.re,this.im+g.im)},sub:function(B,A){const g=EI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im));return I||Q?I&&Q?Y.NAN:Y.INFINITY:new Y(this.re-g.re,this.im-g.im)},mul:function(B,A){const g=EI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im)),C=this.re===0&&this.im===0,E=g.re===0&&g.im===0;return I&&E||Q&&C?Y.NAN:I||Q?Y.INFINITY:g.im===0&&this.im===0?new Y(this.re*g.re,0):new Y(this.re*g.re-this.im*g.im,this.re*g.im+this.im*g.re)},div:function(B,A){const g=EI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im)),C=this.re===0&&this.im===0,E=g.re===0&&g.im===0;if(C&&E||I&&Q)return Y.NAN;if(E||I)return Y.INFINITY;if(C||Q)return Y.ZERO;if(g.im===0)return new Y(this.re/g.re,this.im/g.re);if(Math.abs(g.re)<Math.abs(g.im)){const a=g.re/g.im,i=g.re*a+g.im;return new Y((this.re*a+this.im)/i,(this.im*a-this.re)/i)}{const a=g.im/g.re,i=g.im*a+g.re;return new Y((this.re+this.im*a)/i,(this.im-this.re*a)/i)}},pow:function(B,A){const g=EI(B,A),I=this.re===0&&this.im===0;if(g.re===0&&g.im===0)return Y.ONE;if(g.im===0){if(this.im===0&&this.re>0)return new Y(Math.pow(this.re,g.re),0);if(this.re===0)switch((g.re%4+4)%4){case 0:return new Y(Math.pow(this.im,g.re),0);case 1:return new Y(0,Math.pow(this.im,g.re));case 2:return new Y(-Math.pow(this.im,g.re),0);case 3:return new Y(0,-Math.pow(this.im,g.re))}}if(I&&g.re>0)return Y.ZERO;const Q=Math.atan2(this.im,this.re),C=CQ(this.re,this.im);let E=Math.exp(g.re*C-g.im*Q),a=g.im*C+g.re*Q;return new Y(E*Math.cos(a),E*Math.sin(a))},sqrt:function(){const B=this.re,A=this.im;if(A===0)return B>=0?new Y(Math.sqrt(B),0):new Y(0,Math.sqrt(-B));const g=QQ(B,A);let I=Math.sqrt(.5*(g+Math.abs(B))),Q=Math.abs(A)/(2*I);return B>=0?new Y(I,A<0?-Q:Q):new Y(Q,A<0?-I:I)},exp:function(){const B=Math.exp(this.re);return this.im===0?new Y(B,0):new Y(B*Math.cos(this.im),B*Math.sin(this.im))},expm1:function(){const B=this.re,A=this.im;return new Y(Math.expm1(B)*Math.cos(A)+function(g){const I=Math.PI/4;if(-I>g||g>I)return Math.cos(g)-1;const Q=g*g;return Q*(Q*(Q*(Q*(Q*(Q*(Q*(Q/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(A),Math.exp(B)*Math.sin(A))},log:function(){const B=this.re,A=this.im;return A===0&&B>0?new Y(Math.log(B),0):new Y(CQ(B,A),Math.atan2(A,B))},abs:function(){return QQ(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){const B=this.re,A=this.im;return new Y(Math.sin(B)*$A(A),Math.cos(B)*dg(A))},cos:function(){const B=this.re,A=this.im;return new Y(Math.cos(B)*$A(A),-Math.sin(B)*dg(A))},tan:function(){const B=2*this.re,A=2*this.im,g=Math.cos(B)+$A(A);return new Y(Math.sin(B)/g,dg(A)/g)},cot:function(){const B=2*this.re,A=2*this.im,g=Math.cos(B)-$A(A);return new Y(-Math.sin(B)/g,dg(A)/g)},sec:function(){const B=this.re,A=this.im,g=.5*$A(2*A)+.5*Math.cos(2*B);return new Y(Math.cos(B)*$A(A)/g,Math.sin(B)*dg(A)/g)},csc:function(){const B=this.re,A=this.im,g=.5*$A(2*A)-.5*Math.cos(2*B);return new Y(Math.sin(B)*$A(A)/g,-Math.cos(B)*dg(A)/g)},asin:function(){const B=this.re,A=this.im,g=new Y(A*A-B*B+1,-2*B*A).sqrt(),I=new Y(g.re-A,g.im+B).log();return new Y(I.im,-I.re)},acos:function(){const B=this.re,A=this.im,g=new Y(A*A-B*B+1,-2*B*A).sqrt(),I=new Y(g.re-A,g.im+B).log();return new Y(Math.PI/2-I.im,I.re)},atan:function(){const B=this.re,A=this.im;if(B===0){if(A===1)return new Y(0,1/0);if(A===-1)return new Y(0,-1/0)}const g=B*B+(1-A)*(1-A),I=new Y((1-A*A-B*B)/g,-2*B/g).log();return new Y(-.5*I.im,.5*I.re)},acot:function(){const B=this.re,A=this.im;if(A===0)return new Y(Math.atan2(1,B),0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).atan():new Y(B!==0?B/0:0,A!==0?-A/0:0).atan()},asec:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(0,1/0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).acos():new Y(B!==0?B/0:0,A!==0?-A/0:0).acos()},acsc:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(Math.PI/2,1/0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).asin():new Y(B!==0?B/0:0,A!==0?-A/0:0).asin()},sinh:function(){const B=this.re,A=this.im;return new Y(dg(B)*Math.cos(A),$A(B)*Math.sin(A))},cosh:function(){const B=this.re,A=this.im;return new Y($A(B)*Math.cos(A),dg(B)*Math.sin(A))},tanh:function(){const B=2*this.re,A=2*this.im,g=$A(B)+Math.cos(A);return new Y(dg(B)/g,Math.sin(A)/g)},coth:function(){const B=2*this.re,A=2*this.im,g=$A(B)-Math.cos(A);return new Y(dg(B)/g,-Math.sin(A)/g)},csch:function(){const B=this.re,A=this.im,g=Math.cos(2*A)-$A(2*B);return new Y(-2*dg(B)*Math.cos(A)/g,2*$A(B)*Math.sin(A)/g)},sech:function(){const B=this.re,A=this.im,g=Math.cos(2*A)+$A(2*B);return new Y(2*$A(B)*Math.cos(A)/g,-2*dg(B)*Math.sin(A)/g)},asinh:function(){let B=this.im;this.im=-this.re,this.re=B;const A=this.asin();return this.re=-this.im,this.im=B,B=A.re,A.re=-A.im,A.im=B,A},acosh:function(){const B=this.acos();if(B.im<=0){const A=B.re;B.re=-B.im,B.im=A}else{const A=B.im;B.im=-B.re,B.re=A}return B},atanh:function(){const B=this.re,A=this.im,g=B>1&&A===0,I=1-B,Q=1+B,C=I*I+A*A,E=C!==0?new Y((Q*I-A*A)/C,(A*I+Q*A)/C):new Y(B!==-1?B/0:0,A!==0?A/0:0),a=E.re;return E.re=CQ(E.re,E.im)/2,E.im=Math.atan2(E.im,a)/2,g&&(E.im=-E.im),E},acoth:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(0,Math.PI/2);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).atanh():new Y(B!==0?B/0:0,A!==0?-A/0:0).atanh()},acsch:function(){const B=this.re,A=this.im;if(A===0)return new Y(B!==0?Math.log(B+Math.sqrt(B*B+1)):1/0,0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).asinh():new Y(B!==0?B/0:0,A!==0?-A/0:0).asinh()},asech:function(){const B=this.re,A=this.im;if(this.isZero())return Y.INFINITY;const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).acosh():new Y(B!==0?B/0:0,A!==0?-A/0:0).acosh()},inverse:function(){if(this.isZero())return Y.INFINITY;if(this.isInfinite())return Y.ZERO;const B=this.re,A=this.im,g=B*B+A*A;return new Y(B/g,-A/g)},conjugate:function(){return new Y(this.re,-this.im)},neg:function(){return new Y(-this.re,-this.im)},ceil:function(B){return B=Math.pow(10,B||0),new Y(Math.ceil(this.re*B)/B,Math.ceil(this.im*B)/B)},floor:function(B){return B=Math.pow(10,B||0),new Y(Math.floor(this.re*B)/B,Math.floor(this.im*B)/B)},round:function(B){return B=Math.pow(10,B||0),new Y(Math.round(this.re*B)/B,Math.round(this.im*B)/B)},equals:function(B,A){const g=EI(B,A);return Math.abs(g.re-this.re)<=Y.EPSILON&&Math.abs(g.im-this.im)<=Y.EPSILON},clone:function(){return new Y(this.re,this.im)},toString:function(){let B=this.re,A=this.im,g="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(B)<Y.EPSILON&&(B=0),Math.abs(A)<Y.EPSILON&&(A=0),A===0?g+B:(B!==0?(g+=B,g+=" ",A<0?(A=-A,g+="-"):g+="+",g+=" "):A<0&&(A=-A,g+="-"),A!==1&&(g+=A),g+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!this.isFinite()}},Y.ZERO=new Y(0,0),Y.ONE=new Y(1,0),Y.I=new Y(0,1),Y.PI=new Y(Math.PI,0),Y.E=new Y(Math.E,0),Y.INFINITY=new Y(1/0,1/0),Y.NAN=new Y(NaN,NaN),Y.EPSILON=1e-15;var Bt=wA("Complex",[],()=>(Object.defineProperty(Y,"name",{value:"Complex"}),Y.prototype.constructor=Y,Y.prototype.type="Complex",Y.prototype.isComplex=!0,Y.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},Y.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},Y.prototype.format=function(B){var A=this.im,g=this.re,I=cQ(this.re,B),Q=cQ(this.im,B),C=UA(B)?B:B?B.precision:null;if(C!==null){var E=Math.pow(10,-C);Math.abs(g/A)<E&&(g=0),Math.abs(A/g)<E&&(A=0)}return A===0?I:g===0?A===1?"i":A===-1?"-i":Q+"i":A<0?A===-1?I+" - i":I+" - "+Q.substring(1)+"i":A===1?I+" + i":I+" + "+Q+"i"},Y.fromPolar=function(B){switch(arguments.length){case 1:var A=arguments[0];if(typeof A=="object")return Y(A);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var g=arguments[0],I=arguments[1];if(UA(g)){if(OE(I)&&I.hasBase("ANGLE")&&(I=I.toNumber("rad")),UA(I))return new Y({r:g,phi:I});throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},Y.prototype.valueOf=Y.prototype.toString,Y.fromJSON=function(B){return new Y(B)},Y.compare=function(B,A){return B.re>A.re?1:B.re<A.re?-1:B.im>A.im?1:B.im<A.im?-1:0},Y),{isClass:!0});typeof BigInt>"u"&&(BigInt=function(B){if(isNaN(B))throw new Error("");return B});const EA=BigInt(0),oA=BigInt(1),vI=BigInt(2),bQ=BigInt(5),eg=BigInt(10),_={s:oA,n:EA,d:oA};function mg(B,A){try{B=BigInt(B)}catch{throw zg()}return B*A}function lg(B){return typeof B=="bigint"?B:Math.floor(B)}function mA(B,A){if(A===EA)throw NQ();const g=Object.create(wg.prototype);g.s=B<EA?-oA:oA;const I=aI(B=B<EA?-B:B,A);return g.n=B/I,g.d=A/I,g}function uI(B){const A={};let g=B,I=vI,Q=bQ-oA;for(;Q<=g;){for(;g%I===EA;)g/=I,A[I]=(A[I]||EA)+oA;Q+=oA+vI*I++}return g!==B?g>1&&(A[g]=(A[g]||EA)+oA):A[B]=(A[B]||EA)+oA,A}const XA=function(B,A){let g=EA,I=oA,Q=oA;if(B!=null)if(A!==void 0){if(typeof B=="bigint")g=B;else{if(isNaN(B))throw zg();if(B%1!=0)throw hC();g=BigInt(B)}if(typeof A=="bigint")I=A;else{if(isNaN(A))throw zg();if(A%1!=0)throw hC();I=BigInt(A)}Q=g*I}else if(typeof B=="object"){if("d"in B&&"n"in B)g=BigInt(B.n),I=BigInt(B.d),"s"in B&&(g*=BigInt(B.s));else if(0 in B)g=BigInt(B[0]),1 in B&&(I=BigInt(B[1]));else{if(typeof B!="bigint")throw zg();g=B}Q=g*I}else if(typeof B=="number"){if(isNaN(B))throw zg();if(B<0&&(Q=-oA,B=-B),B%1==0)g=BigInt(B);else{let C=1,E=0,a=1,i=1,t=1,e=1e7;for(B>=1&&(C=10**Math.floor(1+Math.log10(B)),B/=C);a<=e&&t<=e;){let o=(E+i)/(a+t);if(B===o){a+t<=e?(g=E+i,I=a+t):t>a?(g=i,I=t):(g=E,I=a);break}B>o?(E+=i,a+=t):(i+=E,t+=a),a>e?(g=i,I=t):(g=E,I=a)}g=BigInt(g)*BigInt(C),I=BigInt(I)}}else if(typeof B=="string"){let C=0,E=EA,a=EA,i=EA,t=oA,e=oA,o=B.replace(/_/g,"").match(/\d+|./g);if(o===null||(o[C]==="-"?(Q=-oA,C++):o[C]==="+"&&C++,o.length===C+1?a=mg(o[C++],Q):o[C+1]==="."||o[C]==="."?(o[C]!=="."&&(E=mg(o[C++],Q)),C++,(C+1===o.length||o[C+1]==="("&&o[C+3]===")"||o[C+1]==="'"&&o[C+3]==="'")&&(a=mg(o[C],Q),t=eg**BigInt(o[C].length),C++),(o[C]==="("&&o[C+2]===")"||o[C]==="'"&&o[C+2]==="'")&&(i=mg(o[C+1],Q),e=eg**BigInt(o[C+1].length)-oA,C+=3)):o[C+1]==="/"||o[C+1]===":"?(a=mg(o[C],Q),t=mg(o[C+2],oA),C+=3):o[C+3]==="/"&&o[C+1]===" "&&(E=mg(o[C],Q),a=mg(o[C+2],Q),t=mg(o[C+4],oA),C+=5),!(o.length<=C)))throw zg();I=t*e,Q=g=i+I*E+e*a}else{if(typeof B!="bigint")throw zg();g=B,Q=B,I=oA}if(I===EA)throw NQ();_.s=Q<EA?-oA:oA,_.n=g<EA?-g:g,_.d=I<EA?-I:I};function Qt(B,A,g){let I=oA,Q=function(C,E,a){let i=oA;for(;E>EA;C=C*C%a,E>>=oA)E&oA&&(i=i*C%a);return i}(eg,g,A);for(let C=0;C<300;C++){if(I===Q)return BigInt(C);I=I*eg%A,Q=Q*eg%A}return 0}function aI(B,A){if(!B)return A;if(!A)return B;for(;;){if(!(B%=A))return A;if(!(A%=B))return B}}function wg(B,A){if(XA(B,A),!(this instanceof wg))return mA(_.s*_.n,_.d);B=aI(_.d,_.n),this.s=_.s,this.n=_.n/B,this.d=_.d/B}var NQ=function(){return new Error("Division by Zero")},zg=function(){return new Error("Invalid argument")},hC=function(){return new Error("Parameters must be integer")};wg.prototype={s:oA,n:EA,d:oA,abs:function(){return mA(this.n,this.d)},neg:function(){return mA(-this.s*this.n,this.d)},add:function(B,A){return XA(B,A),mA(this.s*this.n*_.d+_.s*this.d*_.n,this.d*_.d)},sub:function(B,A){return XA(B,A),mA(this.s*this.n*_.d-_.s*this.d*_.n,this.d*_.d)},mul:function(B,A){return XA(B,A),mA(this.s*_.s*this.n*_.n,this.d*_.d)},div:function(B,A){return XA(B,A),mA(this.s*_.s*this.n*_.d,this.d*_.n)},clone:function(){return mA(this.s*this.n,this.d)},mod:function(B,A){if(B===void 0)return mA(this.s*this.n%this.d,oA);if(XA(B,A),EA===_.n*this.d)throw NQ();return mA(this.s*(_.d*this.n)%(_.n*this.d),_.d*this.d)},gcd:function(B,A){return XA(B,A),mA(aI(_.n,this.n)*aI(_.d,this.d),_.d*this.d)},lcm:function(B,A){return XA(B,A),_.n===EA&&this.n===EA?mA(EA,oA):mA(_.n*this.n,aI(_.n,this.n)*aI(_.d,this.d))},inverse:function(){return mA(this.s*this.d,this.n)},pow:function(B,A){if(XA(B,A),_.d===oA)return _.s<EA?mA((this.s*this.d)**_.n,this.n**_.n):mA((this.s*this.n)**_.n,this.d**_.n);if(this.s<EA)return null;let g=uI(this.n),I=uI(this.d),Q=oA,C=oA;for(let E in g)if(E!=="1"){if(E==="0"){Q=EA;break}if(g[E]*=_.n,g[E]%_.d!==EA)return null;g[E]/=_.d,Q*=BigInt(E)**g[E]}for(let E in I)if(E!=="1"){if(I[E]*=_.n,I[E]%_.d!==EA)return null;I[E]/=_.d,C*=BigInt(E)**I[E]}return _.s<EA?mA(C,Q):mA(Q,C)},log:function(B,A){if(XA(B,A),this.s<=EA||_.s<=EA)return null;const g={},I=uI(_.n),Q=uI(_.d),C=uI(this.n),E=uI(this.d);for(const t in Q)I[t]=(I[t]||EA)-Q[t];for(const t in E)C[t]=(C[t]||EA)-E[t];for(const t in I)t!=="1"&&(g[t]=!0);for(const t in C)t!=="1"&&(g[t]=!0);let a=null,i=null;for(const t in g){const e=I[t]||EA,o=C[t]||EA;if(e===EA){if(o!==EA)return null;continue}let r=o,n=e;const s=aI(r,n);if(r/=s,n/=s,a===null&&i===null)a=r,i=n;else if(r*i!=a*n)return null}return a!==null&&i!==null?mA(a,i):null},equals:function(B,A){return XA(B,A),this.s*this.n*_.d==_.s*_.n*this.d},lt:function(B,A){return XA(B,A),this.s*this.n*_.d<_.s*_.n*this.d},lte:function(B,A){return XA(B,A),this.s*this.n*_.d<=_.s*_.n*this.d},gt:function(B,A){return XA(B,A),this.s*this.n*_.d>_.s*_.n*this.d},gte:function(B,A){return XA(B,A),this.s*this.n*_.d>=_.s*_.n*this.d},compare:function(B,A){XA(B,A);let g=this.s*this.n*_.d-_.s*_.n*this.d;return(EA<g)-(g<EA)},ceil:function(B){return B=eg**BigInt(B||0),mA(lg(this.s*B*this.n/this.d)+(B*this.n%this.d>EA&&this.s>=EA?oA:EA),B)},floor:function(B){return B=eg**BigInt(B||0),mA(lg(this.s*B*this.n/this.d)-(B*this.n%this.d>EA&&this.s<EA?oA:EA),B)},round:function(B){return B=eg**BigInt(B||0),mA(lg(this.s*B*this.n/this.d)+this.s*((this.s>=EA?oA:EA)+vI*(B*this.n%this.d)>this.d?oA:EA),B)},roundTo:function(B,A){XA(B,A);const g=this.n*_.d,I=this.d*_.n,Q=g%I;let C=lg(g/I);return Q+Q>=I&&C++,mA(this.s*C*_.n,_.d)},divisible:function(B,A){return XA(B,A),!(!(_.n*this.d)||this.n*_.d%(_.n*this.d))},valueOf:function(){return Number(this.s*this.n)/Number(this.d)},toString:function(B){let A=this.n,g=this.d;B=B||15;let I=function(E,a){for(;a%vI===EA;a/=vI);for(;a%bQ===EA;a/=bQ);if(a===oA)return EA;let i=eg%a,t=1;for(;i!==oA;t++)if(i=i*eg%a,t>2e3)return EA;return BigInt(t)}(0,g),Q=Qt(0,g,I),C=this.s<EA?"-":"";if(C+=lg(A/g),A%=g,A*=eg,A&&(C+="."),I){for(let E=Q;E--;)C+=lg(A/g),A%=g,A*=eg;C+="(";for(let E=I;E--;)C+=lg(A/g),A%=g,A*=eg;C+=")"}else for(let E=B;A&&E--;)C+=lg(A/g),A%=g,A*=eg;return C},toFraction:function(B){let A=this.n,g=this.d,I=this.s<EA?"-":"";if(g===oA)I+=A;else{let Q=lg(A/g);B&&Q>EA&&(I+=Q,I+=" ",A%=g),I+=A,I+="/",I+=g}return I},toLatex:function(B){let A=this.n,g=this.d,I=this.s<EA?"-":"";if(g===oA)I+=A;else{let Q=lg(A/g);B&&Q>EA&&(I+=Q,A%=g),I+="\\frac{",I+=A,I+="}{",I+=g,I+="}"}return I},toContinued:function(){let B=this.n,A=this.d,g=[];do{g.push(lg(B/A));let I=B%A;B=A,A=I}while(B!==oA);return g},simplify:function(B){const A=BigInt(1/(B||.001)|0),g=this.abs(),I=g.toContinued();for(let Q=1;Q<I.length;Q++){let C=mA(I[Q-1],oA);for(let a=Q-2;a>=0;a--)C=C.inverse().add(I[a]);let E=C.sub(g);if(E.n*A<E.d)return C.mul(this.s)}return this}};var Ct=wA("Fraction",[],()=>(Object.defineProperty(wg,"name",{value:"Fraction"}),wg.prototype.constructor=wg,wg.prototype.type="Fraction",wg.prototype.isFraction=!0,wg.prototype.toJSON=function(){return{mathjs:"Fraction",n:String(this.s*this.n),d:String(this.d)}},wg.fromJSON=function(B){return new wg(B)},wg),{isClass:!0}),Et=wA("Matrix",[],()=>{function B(){if(!(this instanceof B))throw new SyntaxError("Constructor must be called with the new operator")}return B.prototype.type="Matrix",B.prototype.isMatrix=!0,B.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},B.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},B.prototype.create=function(A,g){throw new Error("Cannot invoke create on a Matrix interface")},B.prototype.subset=function(A,g,I){throw new Error("Cannot invoke subset on a Matrix interface")},B.prototype.get=function(A){throw new Error("Cannot invoke get on a Matrix interface")},B.prototype.set=function(A,g,I){throw new Error("Cannot invoke set on a Matrix interface")},B.prototype.resize=function(A,g){throw new Error("Cannot invoke resize on a Matrix interface")},B.prototype.reshape=function(A,g){throw new Error("Cannot invoke reshape on a Matrix interface")},B.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},B.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},B.prototype.map=function(A,g){throw new Error("Cannot invoke map on a Matrix interface")},B.prototype.forEach=function(A){throw new Error("Cannot invoke forEach on a Matrix interface")},B.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},B.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},B.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},B.prototype.format=function(A){throw new Error("Cannot invoke format on a Matrix interface")},B.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},B},{isClass:!0});function EQ(B,A,g){var I=new B.constructor(2),Q="";if(g){if(g<1)throw new Error("size must be in greater than 0");if(!YA(g))throw new Error("size must be an integer");if(B.greaterThan(I.pow(g-1).sub(1))||B.lessThan(I.pow(g-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(g-1,", 2^").concat(g-1,"-1]"));if(!B.isInteger())throw new Error("Value must be an integer");B.lessThan(0)&&(B=B.add(I.pow(g))),Q="i".concat(g)}switch(A){case 2:return"".concat(B.toBinary()).concat(Q);case 8:return"".concat(B.toOctal()).concat(Q);case 16:return"".concat(B.toHexadecimal()).concat(Q);default:throw new Error("Base ".concat(A," not supported "))}}function at(B,A){if(typeof A=="function")return A(B);if(!B.isFinite())return B.isNaN()?"NaN":B.gt(0)?"Infinity":"-Infinity";var{notation:g,precision:I,wordSize:Q}=WE(A);switch(g){case"fixed":return function(t,e){return t.toFixed(e)}(B,I);case"exponential":return DC(B,I);case"engineering":return function(t,e){var o=t.e,r=o%3==0?o:o<0?o-3-o%3:o-o%3,n=t.mul(Math.pow(10,-r)),s=n.toPrecision(e);return s.includes("e")&&(s=new t.constructor(s).toFixed()),s+"e"+(o>=0?"+":"")+r.toString()}(B,I);case"bin":return EQ(B,2,Q);case"oct":return EQ(B,8,Q);case"hex":return EQ(B,16,Q);case"auto":var C=dC(A?.lowerExp,-3),E=dC(A?.upperExp,5);if(B.isZero())return"0";var a=B.toSignificantDigits(I),i=a.e;return(i>=C&&i<E?a.toFixed():DC(B,I)).replace(/((\.\d*?)(0+))($|e)/,function(){var t=arguments[2],e=arguments[4];return t!=="."?t+e:e});default:throw new Error('Unknown notation "'+g+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function DC(B,A){return A!==void 0?B.toExponential(A-1):B.toExponential()}function dC(B,A){return UA(B)?B:WA(B)?B.toNumber():A}function OA(B,A){var g=function(I,Q){return typeof I=="number"?cQ(I,Q):WA(I)?at(I,Q):function(C){return C&&typeof C=="object"&&typeof C.s=="bigint"&&typeof C.n=="bigint"&&typeof C.d=="bigint"||!1}(I)?Q&&Q.fraction==="decimal"?I.toString():"".concat(I.s*I.n,"/").concat(I.d):Array.isArray(I)?Ia(I,Q):pg(I)?bC(I):typeof I=="function"?I.syntax?String(I.syntax):"function":I&&typeof I=="object"?typeof I.format=="function"?I.format(Q):I&&I.toString(Q)!=={}.toString()?I.toString(Q):"{"+Object.keys(I).map(C=>bC(C)+": "+OA(I[C],Q)).join(", ")+"}":String(I)}(B,A);return A&&typeof A=="object"&&"truncate"in A&&g.length>A.truncate?g.substring(0,A.truncate-3)+"...":g}function bC(B){for(var A=String(B),g="",I=0;I<A.length;){var Q=A.charAt(I);g+=Q in wC?wC[Q]:Q,I++}return'"'+g+'"'}var wC={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function Ia(B,A){if(Array.isArray(B)){for(var g="[",I=B.length,Q=0;Q<I;Q++)Q!==0&&(g+=", "),g+=Ia(B[Q],A);return g+="]"}return OA(B,A)}function SA(B,A,g){if(!(this instanceof SA))throw new SyntaxError("Constructor must be called with the new operator");this.actual=B,this.expected=A,this.relation=g,this.message="Dimension mismatch ("+(Array.isArray(B)?"["+B.join(", ")+"]":B)+" "+(this.relation||"!=")+" "+(Array.isArray(A)?"["+A.join(", ")+"]":A)+")",this.stack=new Error().stack}function yI(B,A,g){if(!(this instanceof yI))throw new SyntaxError("Constructor must be called with the new operator");this.index=B,arguments.length<3?(this.min=0,this.max=A):(this.min=A,this.max=g),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}function Qg(B){for(var A=[];Array.isArray(B);)A.push(B.length),B=B[0];return A}function Ba(B,A,g){var I,Q=B.length;if(Q!==A[g])throw new SA(Q,A[g]);if(g<A.length-1){var C=g+1;for(I=0;I<Q;I++){var E=B[I];if(!Array.isArray(E))throw new SA(A.length-1,A.length,"<");Ba(B[I],A,C)}}else for(I=0;I<Q;I++)if(Array.isArray(B[I]))throw new SA(A.length+1,A.length,">")}function uC(B,A){if(A.length===0){if(Array.isArray(B))throw new SA(B.length,0)}else Ba(B,A,0)}function xA(B,A){if(B!==void 0){if(!UA(B)||!YA(B))throw new TypeError("Index must be an integer (value: "+B+")");if(B<0||typeof A=="number"&&B>=A)throw new yI(B,A)}}function wQ(B,A,g){if(!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new Error("Resizing to scalar is not supported");return A.forEach(function(I){if(!UA(I)||!YA(I)||I<0)throw new TypeError("Invalid size, must contain positive integers (size: "+OA(A)+")")}),(UA(B)||WA(B))&&(B=[B]),uQ(B,A,0,g!==void 0?g:0),B}function uQ(B,A,g,I){var Q,C,E=B.length,a=A[g],i=Math.min(E,a);if(B.length=a,g<A.length-1){var t=g+1;for(Q=0;Q<i;Q++)C=B[Q],Array.isArray(C)||(C=[C],B[Q]=C),uQ(C,A,t,I);for(Q=i;Q<a;Q++)C=[],B[Q]=C,uQ(C,A,t,I)}else{for(Q=0;Q<i;Q++)for(;Array.isArray(B[Q]);)B[Q]=B[Q][0];for(Q=i;Q<a;Q++)B[Q]=I}}function Qa(B,A){var g=function(C){var E=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!Array.isArray(C))return C;if(typeof E!="boolean")throw new TypeError("Boolean expected for second argument of flatten");var a=[];return E?t(C):i(C),a;function i(e){for(var o=0;o<e.length;o++){var r=e[o];Array.isArray(r)?i(r):a.push(r)}}function t(e){if(Array.isArray(e[0]))for(var o=0;o<e.length;o++)t(e[o]);else for(var r=0;r<e.length;r++)a.push(e[r])}}(B,!0),I=g.length;if(!Array.isArray(B)||!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new SA(0,I,"!=");var Q=Ca(A=kQ(A,I));if(I!==Q)throw new SA(Q,I,"!=");try{return function(C,E){for(var a,i=C,t=E.length-1;t>0;t--){var e=E[t];a=[];for(var o=i.length/e,r=0;r<o;r++)a.push(i.slice(r*e,(r+1)*e));i=a}return i}(g,A)}catch(C){throw C instanceof SA?new SA(Q,I,"!="):C}}function kQ(B,A){var g=Ca(B),I=B.slice(),Q=B.indexOf(-1);if(B.indexOf(-1,Q+1)>=0)throw new Error("More than one wildcard in sizes");if(Q>=0){if(A%g!=0)throw new Error("Could not replace wildcard, since "+A+" is no multiple of "+-g);I[Q]=-A/g}return I}function Ca(B){return B.reduce((A,g)=>A*g,1)}function Ea(B,A,g,I){var Q=I||Qg(B);if(g)for(var C=0;C<g;C++)B=[B],Q.unshift(1);for(B=aa(B,A,0);Q.length<A;)Q.push(1);return B}function aa(B,A,g){var I,Q;if(Array.isArray(B)){var C=g+1;for(I=0,Q=B.length;I<Q;I++)B[I]=aa(B[I],A,C)}else for(var E=g;E<A;E++)B=[B];return B}function UQ(B,A){for(var g,I=0,Q=0;Q<B.length;Q++){var C=B[Q],E=Array.isArray(C);if(Q===0&&E&&(I=C.length),E&&C.length!==I)return;var a=E?UQ(C,A):A(C);if(g===void 0)g=a;else if(g!==a)return"mixed"}return g}function ea(B,A,g,I){if(I<g){if(B.length!==A.length)throw new SA(B.length,A.length);for(var Q=[],C=0;C<B.length;C++)Q[C]=ea(B[C],A[C],g,I+1);return Q}return B.concat(A)}function et(){var B=Array.prototype.slice.call(arguments,0,-1),A=Array.prototype.slice.call(arguments,-1);if(B.length===1)return B[0];if(B.length>1)return B.slice(1).reduce(function(g,I){return ea(g,I,A,0)},B[0]);throw new Error("Wrong number of arguments in function concat")}function lC(B,A){for(var g=A.length,I=B.length,Q=0;Q<I;Q++){var C=g-I+Q;if(B[Q]<A[C]&&B[Q]>1||B[Q]>A[C])throw new Error("shape mismatch: mismatch is found in arg with shape (".concat(B,") not possible to broadcast dimension ").concat(I," with size ").concat(B[Q]," to size ").concat(A[C]))}}function fC(B,A){var g=Qg(B);if(pI(g,A))return B;lC(g,A);var I,Q,C,E=function(){for(var o=arguments.length,r=new Array(o),n=0;n<o;n++)r[n]=arguments[n];for(var s=r.map(U=>U.length),c=Math.max(...s),D=new Array(c).fill(null),b=0;b<r.length;b++)for(var h=r[b],w=s[b],f=0;f<w;f++){var p=c-w+f;h[f]>D[p]&&(D[p]=h[f])}for(var R=0;R<r.length;R++)lC(r[R],D);return D}(g,A),a=E.length,i=[...Array(a-g.length).fill(1),...g],t=function(o){return bB([],o)}(B);g.length<a&&(g=Qg(t=Qa(t,i)));for(var e=0;e<a;e++)g[e]<E[e]&&(I=t,Q=E[e],C=e,g=Qg(t=et(...Array(Q).fill(I),C)));return t}function ia(B,A){if(!Array.isArray(B))throw new Error("Array expected");var g=Qg(B);if(A.length!==g.length)throw new SA(A.length,g.length);for(var I=0;I<A.length;I++)xA(A[I],g[I]);return A.reduce((Q,C)=>Q[C],B)}function FC(B,A){var g=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(B.length===0)return[];if(g)return function Q(C){if(Array.isArray(C)){for(var E=C.length,a=Array(E),i=0;i<E;i++)a[i]=Q(C[i]);return a}return A(C)}(B);var I=[];return function Q(C,E){if(Array.isArray(C)){for(var a=C.length,i=Array(a),t=0;t<a;t++)I[E]=t,i[t]=Q(C[t],E+1);return i}return A(C,I.slice(0,E),B)}(B,0)}function MB(B,A,g){var I=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(lB.isTypedFunction(B)){var Q,C;if(I)Q=1;else{var E=(A.isMatrix?A.size():Qg(A)).map(()=>0),a=A.isMatrix?A.get(E):ia(A,E);Q=function(t,e,o,r){for(var n=[e,o,r],s=3;s>0;s--){var c=n.slice(0,s);if(lB.resolve(t,c)!==null)return s}}(B,a,E,A)}if(A.isMatrix&&A.dataType!=="mixed"&&A.dataType!==void 0){var i=function(t,e){var o=[];if(Object.entries(t.signatures).forEach(r=>{var[n,s]=r;n.split(",").length===e&&o.push(s)}),o.length===1)return o[0]}(B,Q);C=i!==void 0?i:B}else C=B;return Q>=1&&Q<=3?{isUnary:Q===1,fn:function(){for(var t=arguments.length,e=new Array(t),o=0;o<t;o++)e[o]=arguments[o];return yC(C,e.slice(0,Q),g,B.name)}}:{isUnary:!1,fn:function(){for(var t=arguments.length,e=new Array(t),o=0;o<t;o++)e[o]=arguments[o];return yC(C,e,g,B.name)}}}return I===void 0?{isUnary:it(B),fn:B}:{isUnary:I,fn:B}}function it(B){if(B.length!==1)return!1;var A=B.toString();if(/arguments/.test(A))return!1;var g=A.match(/\(.*?\)/);return!/\.\.\./.test(g)}function yC(B,A,g,I){try{return B(...A)}catch(Q){(function(C,E,a,i){var t;if(C instanceof TypeError&&((t=C.data)===null||t===void 0?void 0:t.category)==="wrongType"){var e=[];throw e.push("value: ".concat($g(E[0]))),E.length>=2&&e.push("index: ".concat($g(E[1]))),E.length>=3&&e.push("array: ".concat($g(E[2]))),new TypeError("Function ".concat(a," cannot apply callback arguments ")+"".concat(i,"(").concat(e.join(", "),") at index ").concat(JSON.stringify(E[1])))}throw new TypeError("Function ".concat(a," cannot apply callback arguments ")+"to function ".concat(i,": ").concat(C.message))})(Q,A,g,I)}}SA.prototype=new RangeError,SA.prototype.constructor=RangeError,SA.prototype.name="DimensionError",SA.prototype.isDimensionError=!0,yI.prototype=new RangeError,yI.prototype.constructor=RangeError,yI.prototype.name="IndexError",yI.prototype.isIndexError=!0;var tt=wA("DenseMatrix",["Matrix"],B=>{var{Matrix:A}=B;function g(E,a){if(!(this instanceof g))throw new SyntaxError("Constructor must be called with the new operator");if(a&&!pg(a))throw new Error("Invalid datatype: "+a);if(qA(E))E.type==="DenseMatrix"?(this._data=jA(E._data),this._size=jA(E._size),this._datatype=a||E._datatype):(this._data=E.toArray(),this._size=E.size(),this._datatype=a||E._datatype);else if(E&&VA(E.data)&&VA(E.size))this._data=E.data,this._size=E.size,uC(this._data,this._size),this._datatype=a||E.datatype;else if(VA(E))this._data=C(E),this._size=Qg(this._data),uC(this._data,this._size),this._datatype=a;else{if(E)throw new TypeError("Unsupported type of data ("+$g(E)+")");this._data=[],this._size=[0],this._datatype=a}}function I(E,a,i){if(a.length===0){for(var t=E._data;VA(t);)t=t[0];return t}return E._size=a.slice(0),E._data=wQ(E._data,E._size,i),E}function Q(E,a,i){for(var t=E._size.slice(0),e=!1;t.length<a.length;)t.push(0),e=!0;for(var o=0,r=a.length;o<r;o++)a[o]>t[o]&&(t[o]=a[o],e=!0);e&&I(E,t,i)}function C(E){return qA(E)?C(E.valueOf()):VA(E)?E.map(C):E}return g.prototype=new A,g.prototype.createDenseMatrix=function(E,a){return new g(E,a)},Object.defineProperty(g,"name",{value:"DenseMatrix"}),g.prototype.constructor=g,g.prototype.type="DenseMatrix",g.prototype.isDenseMatrix=!0,g.prototype.getDataType=function(){return UQ(this._data,$g)},g.prototype.storage=function(){return"dense"},g.prototype.datatype=function(){return this._datatype},g.prototype.create=function(E,a){return new g(E,a)},g.prototype.subset=function(E,a,i){switch(arguments.length){case 1:return function(t,e){if(!RQ(e))throw new TypeError("Invalid index");var o=e.isScalar();if(o)return t.get(e.min());var r=e.size();if(r.length!==t._size.length)throw new SA(r.length,t._size.length);for(var n=e.min(),s=e.max(),c=0,D=t._size.length;c<D;c++)xA(n[c],t._size[c]),xA(s[c],t._size[c]);var b=new g([]),h=function(w,f){var p=f.size().length-1,R=Array(p);return{data:U(w),size:R};function U(G){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,J=f.dimension(k);return R[k]=J.size()[0],k<p?J.map(m=>(xA(m,G.length),U(G[m],k+1))).valueOf():J.map(m=>(xA(m,G.length),G[m])).valueOf()}}(t._data,e);return b._size=h.size,b._datatype=t._datatype,b._data=h.data,b}(this,E);case 2:case 3:return function(t,e,o,r){if(!e||e.isIndex!==!0)throw new TypeError("Invalid index");var n,s=e.size(),c=e.isScalar();if(qA(o)?(n=o.size(),o=o.valueOf()):n=Qg(o),c){if(n.length!==0)throw new TypeError("Scalar expected");t.set(e.min(),o,r)}else{if(!pI(n,s))try{n=Qg(o=n.length===0?fC([o],s):fC(o,s))}catch{}if(s.length<t._size.length)throw new SA(s.length,t._size.length,"<");if(n.length<s.length){for(var D=0,b=0;s[D]===1&&n[D]===1;)D++;for(;s[D]===1;)b++,D++;o=Ea(o,s.length,b,n)}if(!pI(s,n))throw new SA(s,n,">");var h=e.max().map(function(w){return w+1});Q(t,h,r),function(w,f,p){var R=f.size().length-1;function U(G,k){var J=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,m=f.dimension(J);J<R?m.forEach((O,X)=>{xA(O,G.length),U(G[O],k[X[0]],J+1)}):m.forEach((O,X)=>{xA(O,G.length),G[O]=k[X[0]]})}U(w,p)}(t._data,e,o)}return t}(this,E,a,i);default:throw new SyntaxError("Wrong number of arguments")}},g.prototype.get=function(E){return ia(this._data,E)},g.prototype.set=function(E,a,i){if(!VA(E))throw new TypeError("Array expected");if(E.length<this._size.length)throw new SA(E.length,this._size.length,"<");var t,e,o,r=E.map(function(s){return s+1});Q(this,r,i);var n=this._data;for(t=0,e=E.length-1;t<e;t++)xA(o=E[t],n.length),n=n[o];return xA(o=E[E.length-1],n.length),n[o]=a,this},g.prototype.resize=function(E,a,i){if(!wB(E))throw new TypeError("Array or Matrix expected");var t=E.valueOf().map(e=>Array.isArray(e)&&e.length===1?e[0]:e);return I(i?this.clone():this,t,a)},g.prototype.reshape=function(E,a){var i=a?this.clone():this;i._data=Qa(i._data,E);var t=i._size.reduce((e,o)=>e*o);return i._size=kQ(E,t),i},g.prototype.clone=function(){return new g({data:jA(this._data),size:jA(this._size),datatype:this._datatype})},g.prototype.size=function(){return this._size.slice(0)},g.prototype.map=function(E){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=this,t=i._size.length-1;if(t<0)return i.clone();var e=MB(E,i,"map",a),o=e.fn,r=i.create(void 0,i._datatype);if(r._size=i._size,a||e.isUnary)return r._data=function b(h){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,f=Array(h.length);if(w<t)for(var p=0;p<h.length;p++)f[p]=b(h[p],w+1);else for(var R=0;R<h.length;R++)f[R]=o(h[R]);return f}(i._data),r;if(t===0){for(var n=i.valueOf(),s=Array(n.length),c=0;c<n.length;c++)s[c]=o(n[c],[c],i);return r._data=s,r}var D=[];return r._data=function b(h){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,f=Array(h.length);if(w<t)for(var p=0;p<h.length;p++)D[w]=p,f[p]=b(h[p],w+1);else for(var R=0;R<h.length;R++)D[w]=R,f[R]=o(h[R],D.slice(),i);return f}(i._data),r},g.prototype.forEach=function(E){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=this,t=i._size.length-1;if(!(t<0)){var e=MB(E,i,"map",a),o=e.fn;if(a||e.isUnary)(function s(c){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(D<t)for(var b=0;b<c.length;b++)s(c[b],D+1);else for(var h=0;h<c.length;h++)o(c[h])})(i._data);else if(t!==0){var r=[];(function s(c){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(D<t)for(var b=0;b<c.length;b++)r[D]=b,s(c[b],D+1);else for(var h=0;h<c.length;h++)r[D]=h,o(c[h],r.slice(),i)})(i._data)}else for(var n=0;n<i._data.length;n++)o(i._data[n],[n],i)}},g.prototype[Symbol.iterator]=function*(){var E=this._size.length-1;if(!(E<0))if(E!==0)for(var a=Array(E+1).fill(0),i=this._size.reduce((s,c)=>s*c,1),t=0;t<i;t++){for(var e=this._data,o=0;o<E;o++)e=e[a[o]];yield{value:e[a[E]],index:a.slice()};for(var r=E;r>=0&&(a[r]++,!(a[r]<this._size[r]));r--)a[r]=0}else for(var n=0;n<this._data.length;n++)yield{value:this._data[n],index:[n]}},g.prototype.rows=function(){var E=[];if(this.size().length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var a=this._data;for(var i of a)E.push(new g([i],this._datatype));return E},g.prototype.columns=function(){var E=this,a=[],i=this.size();if(i.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var t=this._data,e=function(r){var n=t.map(s=>[s[r]]);a.push(new g(n,E._datatype))},o=0;o<i[1];o++)e(o);return a},g.prototype.toArray=function(){return jA(this._data)},g.prototype.valueOf=function(){return this._data},g.prototype.format=function(E){return OA(this._data,E)},g.prototype.toString=function(){return OA(this._data)},g.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},g.prototype.diagonal=function(E){if(E){if(WA(E)&&(E=E.toNumber()),!UA(E)||!YA(E))throw new TypeError("The parameter k must be an integer number")}else E=0;for(var a=E>0?E:0,i=E<0?-E:0,t=this._size[0],e=this._size[1],o=Math.min(t-i,e-a),r=[],n=0;n<o;n++)r[n]=this._data[n+i][n+a];return new g({data:r,size:[o],datatype:this._datatype})},g.diagonal=function(E,a,i,t){if(!VA(E))throw new TypeError("Array expected, size parameter");if(E.length!==2)throw new Error("Only two dimensions matrix are supported");if(E=E.map(function(w){if(WA(w)&&(w=w.toNumber()),!UA(w)||!YA(w)||w<1)throw new Error("Size values must be positive integers");return w}),i){if(WA(i)&&(i=i.toNumber()),!UA(i)||!YA(i))throw new TypeError("The parameter k must be an integer number")}else i=0;var e,o=i>0?i:0,r=i<0?-i:0,n=E[0],s=E[1],c=Math.min(n-r,s-o);if(VA(a)){if(a.length!==c)throw new Error("Invalid value array length");e=function(w){return a[w]}}else if(qA(a)){var D=a.size();if(D.length!==1||D[0]!==c)throw new Error("Invalid matrix length");e=function(w){return a.get([w])}}else e=function(){return a};t||(t=WA(e(0))?e(0).mul(0):0);var b=[];if(E.length>0){b=wQ(b,E,t);for(var h=0;h<c;h++)b[h+r][h+o]=e(h)}return new g({data:b,size:[n,s]})},g.fromJSON=function(E){return new g(E)},g.prototype.swapRows=function(E,a){if(!(UA(E)&&YA(E)&&UA(a)&&YA(a)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return xA(E,this._size[0]),xA(a,this._size[0]),g._swapRows(E,a,this._data),this},g._swapRows=function(E,a,i){var t=i[E];i[E]=i[a],i[a]=t},g},{isClass:!0});function tI(B,A,g){if(!g)return qA(B)?B.map(Q=>A(Q),!1,!0):FC(B,A,!0);var I=Q=>Q===0?Q:A(Q);return qA(B)?B.map(Q=>I(Q),!1,!0):FC(B,I,!0)}var MC="number",aB="number, number";function ta(B){return Math.abs(B)}function oa(B,A){return B+A}function na(B,A){return B-A}function ra(B,A){return B*A}function sa(B){return-B}function ca(B,A){return B*B<1&&A===1/0||B*B>1&&A===-1/0?0:Math.pow(B,A)}function lQ(B,A){if(A<B)return 1;if(A===B)return A;var g=A+B>>1;return lQ(B,g)*lQ(g+1,A)}function GB(B){var A;if(YA(B))return B<=0?isFinite(B)?1/0:NaN:B>171?1/0:lQ(1,B-1);if(B<.5)return Math.PI/(Math.sin(Math.PI*B)*GB(1-B));if(B>=171.35)return 1/0;if(B>85){var g=B*B,I=g*B,Q=I*B,C=Q*B;return Math.sqrt(2*Math.PI/B)*Math.pow(B/Math.E,B)*(1+1/(12*B)+1/(288*g)-139/(51840*I)-571/(2488320*Q)+163879/(209018880*C)+5246819/(75246796800*C*B))}--B,A=GI[0];for(var E=1;E<GI.length;++E)A+=GI[E]/(B+E);var a=B+ha+.5;return Math.sqrt(2*Math.PI)*Math.pow(a,B+.5)*Math.exp(-a)*A}ta.signature=MC,oa.signature=aB,na.signature=aB,ra.signature=aB,sa.signature=MC,ca.signature=aB,GB.signature="number";var ha=4.7421875,GI=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],GC="isZero",ot=wA(GC,["typed","equalScalar"],B=>{var{typed:A,equalScalar:g}=B;return A(GC,{"number | BigNumber | Complex | Fraction":I=>g(I,0),bigint:I=>I===0n,Unit:A.referToSelf(I=>Q=>A.find(I,Q.valueType())(Q.value)),"Array | Matrix":A.referToSelf(I=>Q=>tI(Q,I))})}),nt=wA("compareUnits",["typed"],B=>{var{typed:A}=B;return{"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(!I.equalBase(Q))throw new Error("Cannot compare units with different base");return A.find(g,[I.valueType(),Q.valueType()])(I.value,Q.value)})}}),RB="equalScalar",rt=wA(RB,["typed","config"],B=>{var{typed:A,config:g}=B,I=nt({typed:A});return A(RB,{"boolean, boolean":function(Q,C){return Q===C},"number, number":function(Q,C){return cB(Q,C,g.relTol,g.absTol)},"BigNumber, BigNumber":function(Q,C){return Q.eq(C)||function(E,a){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(i<=0)throw new Error("Relative tolerance must be greater than 0");if(t<0)throw new Error("Absolute tolerance must be at least 0");return!E.isNaN()&&!a.isNaN()&&(E.isFinite()&&a.isFinite()?!!E.eq(a)||E.minus(a).abs().lte(E.constructor.max(E.constructor.max(E.abs(),a.abs()).mul(i),t)):E.eq(a))}(Q,C,g.relTol,g.absTol)},"bigint, bigint":function(Q,C){return Q===C},"Fraction, Fraction":function(Q,C){return Q.equals(C)},"Complex, Complex":function(Q,C){return function(E,a,i,t){return cB(E.re,a.re,i,t)&&cB(E.im,a.im,i,t)}(Q,C,g.relTol,g.absTol)}},I)});wA(RB,["typed","config"],B=>{var{typed:A,config:g}=B;return A(RB,{"number, number":function(I,Q){return cB(I,Q,g.relTol,g.absTol)}})});var st=wA("SparseMatrix",["typed","equalScalar","Matrix"],B=>{var{typed:A,equalScalar:g,Matrix:I}=B;function Q(e,o){if(!(this instanceof Q))throw new SyntaxError("Constructor must be called with the new operator");if(o&&!pg(o))throw new Error("Invalid datatype: "+o);if(qA(e))(function(r,n,s){n.type==="SparseMatrix"?(r._values=n._values?jA(n._values):void 0,r._index=jA(n._index),r._ptr=jA(n._ptr),r._size=jA(n._size),r._datatype=s||n._datatype):C(r,n.valueOf(),s||n._datatype)})(this,e,o);else if(e&&VA(e.index)&&VA(e.ptr)&&VA(e.size))this._values=e.values,this._index=e.index,this._ptr=e.ptr,this._size=e.size,this._datatype=o||e.datatype;else if(VA(e))C(this,e,o);else{if(e)throw new TypeError("Unsupported type of data ("+$g(e)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=o}}function C(e,o,r){e._values=[],e._index=[],e._ptr=[],e._datatype=r;var n=o.length,s=0,c=g,D=0;if(pg(r)&&(c=A.find(g,[r,r])||g,D=A.convert(0,r)),n>0){var b=0;do{e._ptr.push(e._index.length);for(var h=0;h<n;h++){var w=o[h];if(VA(w)){if(b===0&&s<w.length&&(s=w.length),b<w.length){var f=w[b];c(f,D)||(e._values.push(f),e._index.push(h))}}else b===0&&s<1&&(s=1),c(w,D)||(e._values.push(w),e._index.push(h))}b++}while(b<s)}e._ptr.push(e._index.length),e._size=[n,s]}function E(e,o,r,n){if(r-o==0)return r;for(var s=o;s<r;s++)if(n[s]===e)return s;return o}function a(e,o,r,n,s,c,D){s.splice(e,0,n),c.splice(e,0,o);for(var b=r+1;b<D.length;b++)D[b]++}function i(e,o,r,n){var s=n||0,c=g,D=0;pg(e._datatype)&&(c=A.find(g,[e._datatype,e._datatype])||g,D=A.convert(0,e._datatype),s=A.convert(s,e._datatype));var b,h,w,f=!c(s,D),p=e._size[0],R=e._size[1];if(r>R){for(h=R;h<r;h++)if(e._ptr[h]=e._values.length,f)for(b=0;b<p;b++)e._values.push(s),e._index.push(b);e._ptr[r]=e._values.length}else r<R&&(e._ptr.splice(r+1,R-r),e._values.splice(e._ptr[r],e._values.length),e._index.splice(e._ptr[r],e._index.length));if(R=r,o>p){if(f){var U=0;for(h=0;h<R;h++){e._ptr[h]=e._ptr[h]+U,w=e._ptr[h+1]+U;var G=0;for(b=p;b<o;b++,G++)e._values.splice(w+G,0,s),e._index.splice(w+G,0,b),U++}e._ptr[R]=e._values.length}}else if(o<p){var k=0;for(h=0;h<R;h++){e._ptr[h]=e._ptr[h]-k;var J=e._ptr[h],m=e._ptr[h+1]-k;for(w=J;w<m;w++)(b=e._index[w])>o-1&&(e._values.splice(w,1),e._index.splice(w,1),k++)}e._ptr[h]=e._values.length}return e._size[0]=o,e._size[1]=r,e}function t(e,o,r,n,s){var c,D,b=n[0],h=n[1],w=[];for(c=0;c<b;c++)for(w[c]=[],D=0;D<h;D++)w[c][D]=0;for(D=0;D<h;D++)for(var f=r[D],p=r[D+1],R=f;R<p;R++)w[c=o[R]][D]=e?s?jA(e[R]):e[R]:1;return w}return Q.prototype=new I,Q.prototype.createSparseMatrix=function(e,o){return new Q(e,o)},Object.defineProperty(Q,"name",{value:"SparseMatrix"}),Q.prototype.constructor=Q,Q.prototype.type="SparseMatrix",Q.prototype.isSparseMatrix=!0,Q.prototype.getDataType=function(){return UQ(this._values,$g)},Q.prototype.storage=function(){return"sparse"},Q.prototype.datatype=function(){return this._datatype},Q.prototype.create=function(e,o){return new Q(e,o)},Q.prototype.density=function(){var e=this._size[0],o=this._size[1];return e!==0&&o!==0?this._index.length/(e*o):0},Q.prototype.subset=function(e,o,r){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return function(n,s){if(!RQ(s))throw new TypeError("Invalid index");if(s.isScalar())return n.get(s.min());var c,D,b,h,w=s.size();if(w.length!==n._size.length)throw new SA(w.length,n._size.length);var f=s.min(),p=s.max();for(c=0,D=n._size.length;c<D;c++)xA(f[c],n._size[c]),xA(p[c],n._size[c]);var R=n._values,U=n._index,G=n._ptr,k=s.dimension(0),J=s.dimension(1),m=[],O=[];k.forEach(function(Z,aA){O[Z]=aA[0],m[Z]=!0});var X=R?[]:void 0,IA=[],AA=[];return J.forEach(function(Z){for(AA.push(IA.length),b=G[Z],h=G[Z+1];b<h;b++)c=U[b],m[c]===!0&&(IA.push(O[c]),X&&X.push(R[b]))}),AA.push(IA.length),new Q({values:X,index:IA,ptr:AA,size:w,datatype:n._datatype})}(this,e);case 2:case 3:return function(n,s,c,D){if(!s||s.isIndex!==!0)throw new TypeError("Invalid index");var b,h=s.size(),w=s.isScalar();if(qA(c)?(b=c.size(),c=c.toArray()):b=Qg(c),w){if(b.length!==0)throw new TypeError("Scalar expected");n.set(s.min(),c,D)}else{if(h.length!==1&&h.length!==2)throw new SA(h.length,n._size.length,"<");if(b.length<h.length){for(var f=0,p=0;h[f]===1&&b[f]===1;)f++;for(;h[f]===1;)p++,f++;c=Ea(c,h.length,p,b)}if(!pI(h,b))throw new SA(h,b,">");if(h.length===1)s.dimension(0).forEach(function(G,k){xA(G),n.set([G,0],c[k[0]],D)});else{var R=s.dimension(0),U=s.dimension(1);R.forEach(function(G,k){xA(G),U.forEach(function(J,m){xA(J),n.set([G,J],c[k[0]][m[0]],D)})})}}return n}(this,e,o,r);default:throw new SyntaxError("Wrong number of arguments")}},Q.prototype.get=function(e){if(!VA(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new SA(e.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var o=e[0],r=e[1];xA(o,this._size[0]),xA(r,this._size[1]);var n=E(o,this._ptr[r],this._ptr[r+1],this._index);return n<this._ptr[r+1]&&this._index[n]===o?this._values[n]:0},Q.prototype.set=function(e,o,r){if(!VA(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new SA(e.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var n=e[0],s=e[1],c=this._size[0],D=this._size[1],b=g,h=0;pg(this._datatype)&&(b=A.find(g,[this._datatype,this._datatype])||g,h=A.convert(0,this._datatype)),(n>c-1||s>D-1)&&(i(this,Math.max(n+1,c),Math.max(s+1,D),r),c=this._size[0],D=this._size[1]),xA(n,c),xA(s,D);var w=E(n,this._ptr[s],this._ptr[s+1],this._index);return w<this._ptr[s+1]&&this._index[w]===n?b(o,h)?function(f,p,R,U,G){R.splice(f,1),U.splice(f,1);for(var k=p+1;k<G.length;k++)G[k]--}(w,s,this._values,this._index,this._ptr):this._values[w]=o:b(o,h)||a(w,n,s,o,this._values,this._index,this._ptr),this},Q.prototype.resize=function(e,o,r){if(!wB(e))throw new TypeError("Array or Matrix expected");var n=e.valueOf().map(s=>Array.isArray(s)&&s.length===1?s[0]:s);if(n.length!==2)throw new Error("Only two dimensions matrix are supported");return n.forEach(function(s){if(!UA(s)||!YA(s)||s<0)throw new TypeError("Invalid size, must contain positive integers (size: "+OA(n)+")")}),i(r?this.clone():this,n[0],n[1],o)},Q.prototype.reshape=function(e,o){if(!VA(e))throw new TypeError("Array expected");if(e.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");e.forEach(function(O){if(!UA(O)||!YA(O)||O<=-2||O===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+OA(e)+")")});var r=this._size[0]*this._size[1];if(r!==(e=kQ(e,r))[0]*e[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var n=o?this.clone():this;if(this._size[0]===e[0]&&this._size[1]===e[1])return n;for(var s=[],c=0;c<n._ptr.length;c++)for(var D=0;D<n._ptr[c+1]-n._ptr[c];D++)s.push(c);for(var b=n._values.slice(),h=n._index.slice(),w=0;w<n._index.length;w++){var f=h[w],p=s[w],R=f*n._size[1]+p;s[w]=R%e[1],h[w]=Math.floor(R/e[1])}n._values.length=0,n._index.length=0,n._ptr.length=e[1]+1,n._size=e.slice();for(var U=0;U<n._ptr.length;U++)n._ptr[U]=0;for(var G=0;G<b.length;G++){var k=h[G],J=s[G],m=b[G];a(E(k,n._ptr[J],n._ptr[J+1],n._index),k,J,m,n._values,n._index,n._ptr)}return n},Q.prototype.clone=function(){return new Q({values:this._values?jA(this._values):void 0,index:jA(this._index),ptr:jA(this._ptr),size:jA(this._size),datatype:this._datatype})},Q.prototype.size=function(){return this._size.slice(0)},Q.prototype.map=function(e,o){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var r=this,n=this._size[0],s=this._size[1],c=MB(e,r,"map");return function(D,b,h,w,f,p,R){var U=[],G=[],k=[],J=g,m=0;pg(D._datatype)&&(J=A.find(g,[D._datatype,D._datatype])||g,m=A.convert(0,D._datatype));for(var O=function(lA,eA,pA){var hA=p(lA,eA,pA);J(hA,m)||(U.push(hA),G.push(eA))},X=w;X<=f;X++){k.push(U.length);var IA=D._ptr[X],AA=D._ptr[X+1];if(R)for(var Z=IA;Z<AA;Z++){var aA=D._index[Z];aA>=b&&aA<=h&&O(D._values[Z],aA-b,X-w)}else{for(var uA={},nA=IA;nA<AA;nA++)uA[D._index[nA]]=D._values[nA];for(var MA=b;MA<=h;MA++)O(MA in uA?uA[MA]:0,MA-b,X-w)}}return k.push(U.length),new Q({values:U,index:G,ptr:k,size:[h-b+1,f-w+1]})}(this,0,n-1,0,s-1,function(D,b,h){return c.fn(D,[b,h],r)},o)},Q.prototype.forEach=function(e,o){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var r=this,n=this._size[0],s=this._size[1],c=MB(e,r,"forEach"),D=0;D<s;D++){var b=this._ptr[D],h=this._ptr[D+1];if(o)for(var w=b;w<h;w++){var f=this._index[w];c.fn(this._values[w],[f,D],r)}else{for(var p={},R=b;R<h;R++)p[this._index[R]]=this._values[R];for(var U=0;U<n;U++){var G=U in p?p[U]:0;c.fn(G,[U,D],r)}}}},Q.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var e=this._size[1],o=0;o<e;o++)for(var r=this._ptr[o],n=this._ptr[o+1],s=r;s<n;s++){var c=this._index[s];yield{value:this._values[s],index:[c,o]}}},Q.prototype.toArray=function(){return t(this._values,this._index,this._ptr,this._size,!0)},Q.prototype.valueOf=function(){return t(this._values,this._index,this._ptr,this._size,!1)},Q.prototype.format=function(e){for(var o=this._size[0],r=this._size[1],n=this.density(),s="Sparse Matrix ["+OA(o,e)+" x "+OA(r,e)+"] density: "+OA(n,e)+`
|
|
911
|
+
*/var VE,Jg,FI=9e15,Zg=1e9,hQ="0123456789abcdef",fB="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",FB="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",DQ={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-FI,maxE:FI,crypto:!1},iA=!0,pB="[DecimalError] ",$g=pB+"Invalid argument: ",zE=pB+"Precision limit exceeded",XE=pB+"crypto unavailable",ZE="[object Decimal]",Ag=Math.floor,zA=Math.pow,oi=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ni=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ri=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,_E=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Fg=1e7,si=fB.length-1,dQ=FB.length-1,j={toStringTag:ZE};function _A(B){var A,g,I,Q=B.length-1,C="",E=B[0];if(Q>0){for(C+=E,A=1;A<Q;A++)(g=7-(I=B[A]+"").length)&&(C+=Xg(g)),C+=I;(g=7-(I=(E=B[A])+"").length)&&(C+=Xg(g))}else if(E===0)return"0";for(;E%10==0;)E/=10;return C+E}function ag(B,A,g){if(B!==~~B||B<A||B>g)throw Error($g+B)}function qI(B,A,g,I){var Q,C,E,a;for(C=B[0];C>=10;C/=10)--A;return--A<0?(A+=7,Q=0):(Q=Math.ceil((A+1)/7),A%=7),C=zA(10,7-A),a=B[Q]%C|0,I==null?A<3?(A==0?a=a/100|0:A==1&&(a=a/10|0),E=g<4&&a==99999||g>3&&a==49999||a==5e4||a==0):E=(g<4&&a+1==C||g>3&&a+1==C/2)&&(B[Q+1]/C/100|0)==zA(10,A-2)-1||(a==C/2||a==0)&&!(B[Q+1]/C/100|0):A<4?(A==0?a=a/1e3|0:A==1?a=a/100|0:A==2&&(a=a/10|0),E=(I||g<4)&&a==9999||!I&&g>3&&a==4999):E=((I||g<4)&&a+1==C||!I&&g>3&&a+1==C/2)&&(B[Q+1]/C/1e3|0)==zA(10,A-3)-1,E}function hB(B,A,g){for(var I,Q,C=[0],E=0,a=B.length;E<a;){for(Q=C.length;Q--;)C[Q]*=A;for(C[0]+=hQ.indexOf(B.charAt(E++)),I=0;I<C.length;I++)C[I]>g-1&&(C[I+1]===void 0&&(C[I+1]=0),C[I+1]+=C[I]/g|0,C[I]%=g)}return C.reverse()}j.absoluteValue=j.abs=function(){var B=new this.constructor(this);return B.s<0&&(B.s=1),CA(B)},j.ceil=function(){return CA(new this.constructor(this),this.e+1,2)},j.clampedTo=j.clamp=function(B,A){var g=this,I=g.constructor;if(B=new I(B),A=new I(A),!B.s||!A.s)return new I(NaN);if(B.gt(A))throw Error($g+A);return g.cmp(B)<0?B:g.cmp(A)>0?A:new I(g)},j.comparedTo=j.cmp=function(B){var A,g,I,Q,C=this,E=C.d,a=(B=new C.constructor(B)).d,i=C.s,t=B.s;if(!E||!a)return i&&t?i!==t?i:E===a?0:!E^i<0?1:-1:NaN;if(!E[0]||!a[0])return E[0]?i:a[0]?-t:0;if(i!==t)return i;if(C.e!==B.e)return C.e>B.e^i<0?1:-1;for(A=0,g=(I=E.length)<(Q=a.length)?I:Q;A<g;++A)if(E[A]!==a[A])return E[A]>a[A]^i<0?1:-1;return I===Q?0:I>Q^i<0?1:-1},j.cosine=j.cos=function(){var B,A,g=this,I=g.constructor;return g.d?g.d[0]?(B=I.precision,A=I.rounding,I.precision=B+Math.max(g.e,g.sd())+7,I.rounding=1,g=function(Q,C){var E,a,i;if(C.isZero())return C;a=C.d.length,a<32?i=(1/EB(4,E=Math.ceil(a/3))).toString():(E=16,i="2.3283064365386962890625e-10"),Q.precision+=E,C=bI(Q,1,C.times(i),new Q(1));for(var t=E;t--;){var e=C.times(C);C=e.times(e).minus(e).times(8).plus(1)}return Q.precision-=E,C}(I,rC(I,g)),I.precision=B,I.rounding=A,CA(Jg==2||Jg==3?g.neg():g,B,A,!0)):new I(1):new I(NaN)},j.cubeRoot=j.cbrt=function(){var B,A,g,I,Q,C,E,a,i,t,e=this,o=e.constructor;if(!e.isFinite()||e.isZero())return new o(e);for(iA=!1,(C=e.s*zA(e.s*e,1/3))&&Math.abs(C)!=1/0?I=new o(C.toString()):(g=_A(e.d),(C=((B=e.e)-g.length+1)%3)&&(g+=C==1||C==-2?"0":"00"),C=zA(g,1/3),B=Ag((B+1)/3)-(B%3==(B<0?-1:2)),(I=new o(g=C==1/0?"5e"+B:(g=C.toExponential()).slice(0,g.indexOf("e")+1)+B)).s=e.s),E=(B=o.precision)+3;;)if(t=(i=(a=I).times(a).times(a)).plus(e),I=NA(t.plus(e).times(a),t.plus(i),E+2,1),_A(a.d).slice(0,E)===(g=_A(I.d)).slice(0,E)){if((g=g.slice(E-3,E+1))!="9999"&&(Q||g!="4999")){+g&&(+g.slice(1)||g.charAt(0)!="5")||(CA(I,B+1,1),A=!I.times(I).times(I).eq(e));break}if(!Q&&(CA(a,B+1,0),a.times(a).times(a).eq(e))){I=a;break}E+=4,Q=1}return iA=!0,CA(I,B,o.rounding,A)},j.decimalPlaces=j.dp=function(){var B,A=this.d,g=NaN;if(A){if(g=7*((B=A.length-1)-Ag(this.e/7)),B=A[B])for(;B%10==0;B/=10)g--;g<0&&(g=0)}return g},j.dividedBy=j.div=function(B){return NA(this,new this.constructor(B))},j.dividedToIntegerBy=j.divToInt=function(B){var A=this.constructor;return CA(NA(this,new A(B),0,1,1),A.precision,A.rounding)},j.equals=j.eq=function(B){return this.cmp(B)===0},j.floor=function(){return CA(new this.constructor(this),this.e+1,3)},j.greaterThan=j.gt=function(B){return this.cmp(B)>0},j.greaterThanOrEqualTo=j.gte=function(B){var A=this.cmp(B);return A==1||A===0},j.hyperbolicCosine=j.cosh=function(){var B,A,g,I,Q,C=this,E=C.constructor,a=new E(1);if(!C.isFinite())return new E(C.s?1/0:NaN);if(C.isZero())return a;g=E.precision,I=E.rounding,E.precision=g+Math.max(C.e,C.sd())+4,E.rounding=1,(Q=C.d.length)<32?A=(1/EB(4,B=Math.ceil(Q/3))).toString():(B=16,A="2.3283064365386962890625e-10"),C=bI(E,1,C.times(A),new E(1),!0);for(var i,t=B,e=new E(8);t--;)i=C.times(C),C=a.minus(i.times(e.minus(i.times(e))));return CA(C,E.precision=g,E.rounding=I,!0)},j.hyperbolicSine=j.sinh=function(){var B,A,g,I,Q=this,C=Q.constructor;if(!Q.isFinite()||Q.isZero())return new C(Q);if(A=C.precision,g=C.rounding,C.precision=A+Math.max(Q.e,Q.sd())+4,C.rounding=1,(I=Q.d.length)<3)Q=bI(C,2,Q,Q,!0);else{B=(B=1.4*Math.sqrt(I))>16?16:0|B,Q=bI(C,2,Q=Q.times(1/EB(5,B)),Q,!0);for(var E,a=new C(5),i=new C(16),t=new C(20);B--;)E=Q.times(Q),Q=Q.times(a.plus(E.times(i.times(E).plus(t))))}return C.precision=A,C.rounding=g,CA(Q,A,g,!0)},j.hyperbolicTangent=j.tanh=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+7,I.rounding=1,NA(g.sinh(),g.cosh(),I.precision=B,I.rounding=A)):new I(g.s)},j.inverseCosine=j.acos=function(){var B=this,A=B.constructor,g=B.abs().cmp(1),I=A.precision,Q=A.rounding;return g!==-1?g===0?B.isNeg()?Ng(A,I,Q):new A(0):new A(NaN):B.isZero()?Ng(A,I+4,Q).times(.5):(A.precision=I+6,A.rounding=1,B=new A(1).minus(B).div(B.plus(1)).sqrt().atan(),A.precision=I,A.rounding=Q,B.times(2))},j.inverseHyperbolicCosine=j.acosh=function(){var B,A,g=this,I=g.constructor;return g.lte(1)?new I(g.eq(1)?0:NaN):g.isFinite()?(B=I.precision,A=I.rounding,I.precision=B+Math.max(Math.abs(g.e),g.sd())+4,I.rounding=1,iA=!1,g=g.times(g).minus(1).sqrt().plus(g),iA=!0,I.precision=B,I.rounding=A,g.ln()):new I(g)},j.inverseHyperbolicSine=j.asinh=function(){var B,A,g=this,I=g.constructor;return!g.isFinite()||g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+2*Math.max(Math.abs(g.e),g.sd())+6,I.rounding=1,iA=!1,g=g.times(g).plus(1).sqrt().plus(g),iA=!0,I.precision=B,I.rounding=A,g.ln())},j.inverseHyperbolicTangent=j.atanh=function(){var B,A,g,I,Q=this,C=Q.constructor;return Q.isFinite()?Q.e>=0?new C(Q.abs().eq(1)?Q.s/0:Q.isZero()?Q:NaN):(B=C.precision,A=C.rounding,I=Q.sd(),Math.max(I,B)<2*-Q.e-1?CA(new C(Q),B,A,!0):(C.precision=g=I-Q.e,Q=NA(Q.plus(1),new C(1).minus(Q),g+B,1),C.precision=B+4,C.rounding=1,Q=Q.ln(),C.precision=B,C.rounding=A,Q.times(.5))):new C(NaN)},j.inverseSine=j.asin=function(){var B,A,g,I,Q=this,C=Q.constructor;return Q.isZero()?new C(Q):(A=Q.abs().cmp(1),g=C.precision,I=C.rounding,A!==-1?A===0?((B=Ng(C,g+4,I).times(.5)).s=Q.s,B):new C(NaN):(C.precision=g+6,C.rounding=1,Q=Q.div(new C(1).minus(Q.times(Q)).sqrt().plus(1)).atan(),C.precision=g,C.rounding=I,Q.times(2)))},j.inverseTangent=j.atan=function(){var B,A,g,I,Q,C,E,a,i,t=this,e=t.constructor,o=e.precision,r=e.rounding;if(t.isFinite()){if(t.isZero())return new e(t);if(t.abs().eq(1)&&o+4<=dQ)return(E=Ng(e,o+4,r).times(.25)).s=t.s,E}else{if(!t.s)return new e(NaN);if(o+4<=dQ)return(E=Ng(e,o+4,r).times(.5)).s=t.s,E}for(e.precision=a=o+10,e.rounding=1,B=g=Math.min(28,a/7+2|0);B;--B)t=t.div(t.times(t).plus(1).sqrt().plus(1));for(iA=!1,A=Math.ceil(a/7),I=1,i=t.times(t),E=new e(t),Q=t;B!==-1;)if(Q=Q.times(i),C=E.minus(Q.div(I+=2)),Q=Q.times(i),(E=C.plus(Q.div(I+=2))).d[A]!==void 0)for(B=A;E.d[B]===C.d[B]&&B--;);return g&&(E=E.times(2<<g-1)),iA=!0,CA(E,e.precision=o,e.rounding=r,!0)},j.isFinite=function(){return!!this.d},j.isInteger=j.isInt=function(){return!!this.d&&Ag(this.e/7)>this.d.length-2},j.isNaN=function(){return!this.s},j.isNegative=j.isNeg=function(){return this.s<0},j.isPositive=j.isPos=function(){return this.s>0},j.isZero=function(){return!!this.d&&this.d[0]===0},j.lessThan=j.lt=function(B){return this.cmp(B)<0},j.lessThanOrEqualTo=j.lte=function(B){return this.cmp(B)<1},j.logarithm=j.log=function(B){var A,g,I,Q,C,E,a,i,t=this,e=t.constructor,o=e.precision,r=e.rounding;if(B==null)B=new e(10),A=!0;else{if(g=(B=new e(B)).d,B.s<0||!g||!g[0]||B.eq(1))return new e(NaN);A=B.eq(10)}if(g=t.d,t.s<0||!g||!g[0]||t.eq(1))return new e(g&&!g[0]?-1/0:t.s!=1?NaN:g?0:1/0);if(A)if(g.length>1)C=!0;else{for(Q=g[0];Q%10==0;)Q/=10;C=Q!==1}if(iA=!1,E=Vg(t,a=o+5),I=A?yB(e,a+10):Vg(B,a),qI((i=NA(E,I,a,1)).d,Q=o,r))do if(E=Vg(t,a+=10),I=A?yB(e,a+10):Vg(B,a),i=NA(E,I,a,1),!C){+_A(i.d).slice(Q+1,Q+15)+1==1e14&&(i=CA(i,o+1,0));break}while(qI(i.d,Q+=10,r));return iA=!0,CA(i,o,r)},j.minus=j.sub=function(B){var A,g,I,Q,C,E,a,i,t,e,o,r,n=this,s=n.constructor;if(B=new s(B),!n.d||!B.d)return n.s&&B.s?n.d?B.s=-B.s:B=new s(B.d||n.s!==B.s?n:NaN):B=new s(NaN),B;if(n.s!=B.s)return B.s=-B.s,n.plus(B);if(t=n.d,r=B.d,a=s.precision,i=s.rounding,!t[0]||!r[0]){if(r[0])B.s=-B.s;else{if(!t[0])return new s(i===3?-0:0);B=new s(n)}return iA?CA(B,a,i):B}if(g=Ag(B.e/7),e=Ag(n.e/7),t=t.slice(),C=e-g){for((o=C<0)?(A=t,C=-C,E=r.length):(A=r,g=e,E=t.length),C>(I=Math.max(Math.ceil(a/7),E)+2)&&(C=I,A.length=1),A.reverse(),I=C;I--;)A.push(0);A.reverse()}else{for((o=(I=t.length)<(E=r.length))&&(E=I),I=0;I<E;I++)if(t[I]!=r[I]){o=t[I]<r[I];break}C=0}for(o&&(A=t,t=r,r=A,B.s=-B.s),E=t.length,I=r.length-E;I>0;--I)t[E++]=0;for(I=r.length;I>C;){if(t[--I]<r[I]){for(Q=I;Q&&t[--Q]===0;)t[Q]=Fg-1;--t[Q],t[I]+=Fg}t[I]-=r[I]}for(;t[--E]===0;)t.pop();for(;t[0]===0;t.shift())--g;return t[0]?(B.d=t,B.e=DB(t,g),iA?CA(B,a,i):B):new s(i===3?-0:0)},j.modulo=j.mod=function(B){var A,g=this,I=g.constructor;return B=new I(B),!g.d||!B.s||B.d&&!B.d[0]?new I(NaN):!B.d||g.d&&!g.d[0]?CA(new I(g),I.precision,I.rounding):(iA=!1,I.modulo==9?(A=NA(g,B.abs(),0,3,1)).s*=B.s:A=NA(g,B,0,I.modulo,1),A=A.times(B),iA=!0,g.minus(A))},j.naturalExponential=j.exp=function(){return IQ(this)},j.naturalLogarithm=j.ln=function(){return Vg(this)},j.negated=j.neg=function(){var B=new this.constructor(this);return B.s=-B.s,CA(B)},j.plus=j.add=function(B){var A,g,I,Q,C,E,a,i,t,e,o=this,r=o.constructor;if(B=new r(B),!o.d||!B.d)return o.s&&B.s?o.d||(B=new r(B.d||o.s===B.s?o:NaN)):B=new r(NaN),B;if(o.s!=B.s)return B.s=-B.s,o.minus(B);if(t=o.d,e=B.d,a=r.precision,i=r.rounding,!t[0]||!e[0])return e[0]||(B=new r(o)),iA?CA(B,a,i):B;if(C=Ag(o.e/7),I=Ag(B.e/7),t=t.slice(),Q=C-I){for(Q<0?(g=t,Q=-Q,E=e.length):(g=e,I=C,E=t.length),Q>(E=(C=Math.ceil(a/7))>E?C+1:E+1)&&(Q=E,g.length=1),g.reverse();Q--;)g.push(0);g.reverse()}for((E=t.length)-(Q=e.length)<0&&(Q=E,g=e,e=t,t=g),A=0;Q;)A=(t[--Q]=t[Q]+e[Q]+A)/Fg|0,t[Q]%=Fg;for(A&&(t.unshift(A),++I),E=t.length;t[--E]==0;)t.pop();return B.d=t,B.e=DB(t,I),iA?CA(B,a,i):B},j.precision=j.sd=function(B){var A,g=this;if(B!==void 0&&B!==!!B&&B!==1&&B!==0)throw Error($g+B);return g.d?(A=oC(g.d),B&&g.e+1>A&&(A=g.e+1)):A=NaN,A},j.round=function(){var B=this,A=B.constructor;return CA(new A(B),B.e+1,A.rounding)},j.sine=j.sin=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+Math.max(g.e,g.sd())+7,I.rounding=1,g=function(Q,C){var E,a=C.d.length;if(a<3)return C.isZero()?C:bI(Q,2,C,C);E=(E=1.4*Math.sqrt(a))>16?16:0|E,C=C.times(1/EB(5,E)),C=bI(Q,2,C,C);for(var i,t=new Q(5),e=new Q(16),o=new Q(20);E--;)i=C.times(C),C=C.times(t.plus(i.times(e.times(i).minus(o))));return C}(I,rC(I,g)),I.precision=B,I.rounding=A,CA(Jg>2?g.neg():g,B,A,!0)):new I(NaN)},j.squareRoot=j.sqrt=function(){var B,A,g,I,Q,C,E=this,a=E.d,i=E.e,t=E.s,e=E.constructor;if(t!==1||!a||!a[0])return new e(!t||t<0&&(!a||a[0])?NaN:a?E:1/0);for(iA=!1,(t=Math.sqrt(+E))==0||t==1/0?(((A=_A(a)).length+i)%2==0&&(A+="0"),t=Math.sqrt(A),i=Ag((i+1)/2)-(i<0||i%2),I=new e(A=t==1/0?"5e"+i:(A=t.toExponential()).slice(0,A.indexOf("e")+1)+i)):I=new e(t.toString()),g=(i=e.precision)+3;;)if(I=(C=I).plus(NA(E,C,g+2,1)).times(.5),_A(C.d).slice(0,g)===(A=_A(I.d)).slice(0,g)){if((A=A.slice(g-3,g+1))!="9999"&&(Q||A!="4999")){+A&&(+A.slice(1)||A.charAt(0)!="5")||(CA(I,i+1,1),B=!I.times(I).eq(E));break}if(!Q&&(CA(C,i+1,0),C.times(C).eq(E))){I=C;break}g+=4,Q=1}return iA=!0,CA(I,i,e.rounding,B)},j.tangent=j.tan=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+10,I.rounding=1,(g=g.sin()).s=1,g=NA(g,new I(1).minus(g.times(g)).sqrt(),B+10,0),I.precision=B,I.rounding=A,CA(Jg==2||Jg==4?g.neg():g,B,A,!0)):new I(NaN)},j.times=j.mul=function(B){var A,g,I,Q,C,E,a,i,t,e=this,o=e.constructor,r=e.d,n=(B=new o(B)).d;if(B.s*=e.s,!(r&&r[0]&&n&&n[0]))return new o(!B.s||r&&!r[0]&&!n||n&&!n[0]&&!r?NaN:r&&n?0*B.s:B.s/0);for(g=Ag(e.e/7)+Ag(B.e/7),(i=r.length)<(t=n.length)&&(C=r,r=n,n=C,E=i,i=t,t=E),C=[],I=E=i+t;I--;)C.push(0);for(I=t;--I>=0;){for(A=0,Q=i+I;Q>I;)a=C[Q]+n[I]*r[Q-I-1]+A,C[Q--]=a%Fg|0,A=a/Fg|0;C[Q]=(C[Q]+A)%Fg|0}for(;!C[--E];)C.pop();return A?++g:C.shift(),B.d=C,B.e=DB(C,g),iA?CA(B,o.precision,o.rounding):B},j.toBinary=function(B,A){return BQ(this,2,B,A)},j.toDecimalPlaces=j.toDP=function(B,A){var g=this,I=g.constructor;return g=new I(g),B===void 0?g:(ag(B,0,Zg),A===void 0?A=I.rounding:ag(A,0,8),CA(g,B+g.e+1,A))},j.toExponential=function(B,A){var g,I=this,Q=I.constructor;return B===void 0?g=Gg(I,!0):(ag(B,0,Zg),A===void 0?A=Q.rounding:ag(A,0,8),g=Gg(I=CA(new Q(I),B+1,A),!0,B+1)),I.isNeg()&&!I.isZero()?"-"+g:g},j.toFixed=function(B,A){var g,I,Q=this,C=Q.constructor;return B===void 0?g=Gg(Q):(ag(B,0,Zg),A===void 0?A=C.rounding:ag(A,0,8),g=Gg(I=CA(new C(Q),B+Q.e+1,A),!1,B+I.e+1)),Q.isNeg()&&!Q.isZero()?"-"+g:g},j.toFraction=function(B){var A,g,I,Q,C,E,a,i,t,e,o,r,n=this,s=n.d,c=n.constructor;if(!s)return new c(n);if(t=g=new c(1),I=i=new c(0),E=(C=(A=new c(I)).e=oC(s)-n.e-1)%7,A.d[0]=zA(10,E<0?7+E:E),B==null)B=C>0?A:t;else{if(!(a=new c(B)).isInt()||a.lt(t))throw Error($g+a);B=a.gt(A)?C>0?A:t:a}for(iA=!1,a=new c(_A(s)),e=c.precision,c.precision=C=7*s.length*2;o=NA(a,A,0,1,1),(Q=g.plus(o.times(I))).cmp(B)!=1;)g=I,I=Q,Q=t,t=i.plus(o.times(Q)),i=Q,Q=A,A=a.minus(o.times(Q)),a=Q;return Q=NA(B.minus(g),I,0,1,1),i=i.plus(Q.times(t)),g=g.plus(Q.times(I)),i.s=t.s=n.s,r=NA(t,I,C,1).minus(n).abs().cmp(NA(i,g,C,1).minus(n).abs())<1?[t,I]:[i,g],c.precision=e,iA=!0,r},j.toHexadecimal=j.toHex=function(B,A){return BQ(this,16,B,A)},j.toNearest=function(B,A){var g=this,I=g.constructor;if(g=new I(g),B==null){if(!g.d)return g;B=new I(1),A=I.rounding}else{if(B=new I(B),A===void 0?A=I.rounding:ag(A,0,8),!g.d)return B.s?g:B;if(!B.d)return B.s&&(B.s=g.s),B}return B.d[0]?(iA=!1,g=NA(g,B,0,A,1).times(B),iA=!0,CA(g)):(B.s=g.s,g=B),g},j.toNumber=function(){return+this},j.toOctal=function(B,A){return BQ(this,8,B,A)},j.toPower=j.pow=function(B){var A,g,I,Q,C,E,a=this,i=a.constructor,t=+(B=new i(B));if(!(a.d&&B.d&&a.d[0]&&B.d[0]))return new i(zA(+a,t));if((a=new i(a)).eq(1))return a;if(I=i.precision,C=i.rounding,B.eq(1))return CA(a,I,C);if((A=Ag(B.e/7))>=B.d.length-1&&(g=t<0?-t:t)<=9007199254740991)return Q=$E(i,a,g,I),B.s<0?new i(1).div(Q):CA(Q,I,C);if((E=a.s)<0){if(A<B.d.length-1)return new i(NaN);if(1&B.d[A]||(E=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=E,a}return(A=(g=zA(+a,t))!=0&&isFinite(g)?new i(g+"").e:Ag(t*(Math.log("0."+_A(a.d))/Math.LN10+a.e+1)))>i.maxE+1||A<i.minE-1?new i(A>0?E/0:0):(iA=!1,i.rounding=a.s=1,g=Math.min(12,(A+"").length),(Q=IQ(B.times(Vg(a,I+g)),I)).d&&qI((Q=CA(Q,I+5,1)).d,I,C)&&(A=I+10,+_A((Q=CA(IQ(B.times(Vg(a,A+g)),A),A+5,1)).d).slice(I+1,I+15)+1==1e14&&(Q=CA(Q,I+1,0))),Q.s=E,iA=!0,i.rounding=C,CA(Q,I,C))},j.toPrecision=function(B,A){var g,I=this,Q=I.constructor;return B===void 0?g=Gg(I,I.e<=Q.toExpNeg||I.e>=Q.toExpPos):(ag(B,1,Zg),A===void 0?A=Q.rounding:ag(A,0,8),g=Gg(I=CA(new Q(I),B,A),B<=I.e||I.e<=Q.toExpNeg,B)),I.isNeg()&&!I.isZero()?"-"+g:g},j.toSignificantDigits=j.toSD=function(B,A){var g=this.constructor;return B===void 0?(B=g.precision,A=g.rounding):(ag(B,1,Zg),A===void 0?A=g.rounding:ag(A,0,8)),CA(new g(this),B,A)},j.toString=function(){var B=this,A=B.constructor,g=Gg(B,B.e<=A.toExpNeg||B.e>=A.toExpPos);return B.isNeg()&&!B.isZero()?"-"+g:g},j.truncated=j.trunc=function(){return CA(new this.constructor(this),this.e+1,1)},j.valueOf=j.toJSON=function(){var B=this,A=B.constructor,g=Gg(B,B.e<=A.toExpNeg||B.e>=A.toExpPos);return B.isNeg()?"-"+g:g};var NA=function(){function B(I,Q,C){var E,a=0,i=I.length;for(I=I.slice();i--;)E=I[i]*Q+a,I[i]=E%C|0,a=E/C|0;return a&&I.unshift(a),I}function A(I,Q,C,E){var a,i;if(C!=E)i=C>E?1:-1;else for(a=i=0;a<C;a++)if(I[a]!=Q[a]){i=I[a]>Q[a]?1:-1;break}return i}function g(I,Q,C,E){for(var a=0;C--;)I[C]-=a,a=I[C]<Q[C]?1:0,I[C]=a*E+I[C]-Q[C];for(;!I[0]&&I.length>1;)I.shift()}return function(I,Q,C,E,a,i){var t,e,o,r,n,s,c,D,b,h,w,f,p,R,U,G,k,J,m,O,X=I.constructor,IA=I.s==Q.s?1:-1,AA=I.d,Z=Q.d;if(!(AA&&AA[0]&&Z&&Z[0]))return new X(I.s&&Q.s&&(AA?!Z||AA[0]!=Z[0]:Z)?AA&&AA[0]==0||!Z?0*IA:IA/0:NaN);for(i?(n=1,e=I.e-Q.e):(i=Fg,n=7,e=Ag(I.e/n)-Ag(Q.e/n)),m=Z.length,k=AA.length,h=(b=new X(IA)).d=[],o=0;Z[o]==(AA[o]||0);o++);if(Z[o]>(AA[o]||0)&&e--,C==null?(R=C=X.precision,E=X.rounding):R=a?C+(I.e-Q.e)+1:C,R<0)h.push(1),s=!0;else{if(R=R/n+2|0,o=0,m==1){for(r=0,Z=Z[0],R++;(o<k||r)&&R--;o++)U=r*i+(AA[o]||0),h[o]=U/Z|0,r=U%Z|0;s=r||o<k}else{for((r=i/(Z[0]+1)|0)>1&&(Z=B(Z,r,i),AA=B(AA,r,i),m=Z.length,k=AA.length),G=m,f=(w=AA.slice(0,m)).length;f<m;)w[f++]=0;(O=Z.slice()).unshift(0),J=Z[0],Z[1]>=i/2&&++J;do r=0,(t=A(Z,w,m,f))<0?(p=w[0],m!=f&&(p=p*i+(w[1]||0)),(r=p/J|0)>1?(r>=i&&(r=i-1),(t=A(c=B(Z,r,i),w,D=c.length,f=w.length))==1&&(r--,g(c,m<D?O:Z,D,i))):(r==0&&(t=r=1),c=Z.slice()),(D=c.length)<f&&c.unshift(0),g(w,c,f,i),t==-1&&(t=A(Z,w,m,f=w.length))<1&&(r++,g(w,m<f?O:Z,f,i)),f=w.length):t===0&&(r++,w=[0]),h[o++]=r,t&&w[0]?w[f++]=AA[G]||0:(w=[AA[G]],f=1);while((G++<k||w[0]!==void 0)&&R--);s=w[0]!==void 0}h[0]||h.shift()}if(n==1)b.e=e,VE=s;else{for(o=1,r=h[0];r>=10;r/=10)o++;b.e=o+e*n-1,CA(b,a?C+b.e+1:C,E,s)}return b}}();function CA(B,A,g,I){var Q,C,E,a,i,t,e,o,r,n=B.constructor;A:if(A!=null){if(!(o=B.d))return B;for(Q=1,a=o[0];a>=10;a/=10)Q++;if((C=A-Q)<0)C+=7,E=A,i=(e=o[r=0])/zA(10,Q-E-1)%10|0;else if((r=Math.ceil((C+1)/7))>=(a=o.length)){if(!I)break A;for(;a++<=r;)o.push(0);e=i=0,Q=1,E=(C%=7)-7+1}else{for(e=a=o[r],Q=1;a>=10;a/=10)Q++;i=(E=(C%=7)-7+Q)<0?0:e/zA(10,Q-E-1)%10|0}if(I=I||A<0||o[r+1]!==void 0||(E<0?e:e%zA(10,Q-E-1)),t=g<4?(i||I)&&(g==0||g==(B.s<0?3:2)):i>5||i==5&&(g==4||I||g==6&&(C>0?E>0?e/zA(10,Q-E):0:o[r-1])%10&1||g==(B.s<0?8:7)),A<1||!o[0])return o.length=0,t?(A-=B.e+1,o[0]=zA(10,(7-A%7)%7),B.e=-A||0):o[0]=B.e=0,B;if(C==0?(o.length=r,a=1,r--):(o.length=r+1,a=zA(10,7-C),o[r]=E>0?(e/zA(10,Q-E)%zA(10,E)|0)*a:0),t)for(;;){if(r==0){for(C=1,E=o[0];E>=10;E/=10)C++;for(E=o[0]+=a,a=1;E>=10;E/=10)a++;C!=a&&(B.e++,o[0]==Fg&&(o[0]=1));break}if(o[r]+=a,o[r]!=Fg)break;o[r--]=0,a=1}for(C=o.length;o[--C]===0;)o.pop()}return iA&&(B.e>n.maxE?(B.d=null,B.e=NaN):B.e<n.minE&&(B.e=0,B.d=[0])),B}function Gg(B,A,g){if(!B.isFinite())return ga(B);var I,Q=B.e,C=_A(B.d),E=C.length;return A?(g&&(I=g-E)>0?C=C.charAt(0)+"."+C.slice(1)+Xg(I):E>1&&(C=C.charAt(0)+"."+C.slice(1)),C=C+(B.e<0?"e":"e+")+B.e):Q<0?(C="0."+Xg(-Q-1)+C,g&&(I=g-E)>0&&(C+=Xg(I))):Q>=E?(C+=Xg(Q+1-E),g&&(I=g-Q-1)>0&&(C=C+"."+Xg(I))):((I=Q+1)<E&&(C=C.slice(0,I)+"."+C.slice(I)),g&&(I=g-E)>0&&(Q+1===E&&(C+="."),C+=Xg(I))),C}function DB(B,A){var g=B[0];for(A*=7;g>=10;g/=10)A++;return A}function yB(B,A,g){if(A>si)throw iA=!0,g&&(B.precision=g),Error(zE);return CA(new B(fB),A,1,!0)}function Ng(B,A,g){if(A>dQ)throw Error(zE);return CA(new B(FB),A,g,!0)}function oC(B){var A=B.length-1,g=7*A+1;if(A=B[A]){for(;A%10==0;A/=10)g--;for(A=B[0];A>=10;A/=10)g++}return g}function Xg(B){for(var A="";B--;)A+="0";return A}function $E(B,A,g,I){var Q,C=new B(1),E=Math.ceil(I/7+4);for(iA=!1;;){if(g%2&&sC((C=C.times(A)).d,E)&&(Q=!0),(g=Ag(g/2))===0){g=C.d.length-1,Q&&C.d[g]===0&&++C.d[g];break}sC((A=A.times(A)).d,E)}return iA=!0,C}function nC(B){return 1&B.d[B.d.length-1]}function Aa(B,A,g){for(var I,Q,C=new B(A[0]),E=0;++E<A.length;){if(!(Q=new B(A[E])).s){C=Q;break}((I=C.cmp(Q))===g||I===0&&C.s===g)&&(C=Q)}return C}function IQ(B,A){var g,I,Q,C,E,a,i,t=0,e=0,o=0,r=B.constructor,n=r.rounding,s=r.precision;if(!B.d||!B.d[0]||B.e>17)return new r(B.d?B.d[0]?B.s<0?0:1/0:1:B.s?B.s<0?0:B:NaN);for(A==null?(iA=!1,i=s):i=A,a=new r(.03125);B.e>-2;)B=B.times(a),o+=5;for(i+=I=Math.log(zA(2,o))/Math.LN10*2+5|0,g=C=E=new r(1),r.precision=i;;){if(C=CA(C.times(B),i,1),g=g.times(++e),_A((a=E.plus(NA(C,g,i,1))).d).slice(0,i)===_A(E.d).slice(0,i)){for(Q=o;Q--;)E=CA(E.times(E),i,1);if(A!=null)return r.precision=s,E;if(!(t<3&&qI(E.d,i-I,n,t)))return CA(E,r.precision=s,n,iA=!0);r.precision=i+=10,g=C=a=new r(1),e=0,t++}E=a}}function Vg(B,A){var g,I,Q,C,E,a,i,t,e,o,r,n=1,s=B,c=s.d,D=s.constructor,b=D.rounding,h=D.precision;if(s.s<0||!c||!c[0]||!s.e&&c[0]==1&&c.length==1)return new D(c&&!c[0]?-1/0:s.s!=1?NaN:c?0:s);if(A==null?(iA=!1,e=h):e=A,D.precision=e+=10,I=(g=_A(c)).charAt(0),!(Math.abs(C=s.e)<15e14))return t=yB(D,e+2,h).times(C+""),s=Vg(new D(I+"."+g.slice(1)),e-10).plus(t),D.precision=h,A==null?CA(s,h,b,iA=!0):s;for(;I<7&&I!=1||I==1&&g.charAt(1)>3;)I=(g=_A((s=s.times(B)).d)).charAt(0),n++;for(C=s.e,I>1?(s=new D("0."+g),C++):s=new D(I+"."+g.slice(1)),o=s,i=E=s=NA(s.minus(1),s.plus(1),e,1),r=CA(s.times(s),e,1),Q=3;;){if(E=CA(E.times(r),e,1),_A((t=i.plus(NA(E,new D(Q),e,1))).d).slice(0,e)===_A(i.d).slice(0,e)){if(i=i.times(2),C!==0&&(i=i.plus(yB(D,e+2,h).times(C+""))),i=NA(i,new D(n),e,1),A!=null)return D.precision=h,i;if(!qI(i.d,e-10,b,a))return CA(i,D.precision=h,b,iA=!0);D.precision=e+=10,t=E=s=NA(o.minus(1),o.plus(1),e,1),r=CA(s.times(s),e,1),Q=a=1}i=t,Q+=2}}function ga(B){return String(B.s*B.s/0)}function dB(B,A){var g,I,Q;for((g=A.indexOf("."))>-1&&(A=A.replace(".","")),(I=A.search(/e/i))>0?(g<0&&(g=I),g+=+A.slice(I+1),A=A.substring(0,I)):g<0&&(g=A.length),I=0;A.charCodeAt(I)===48;I++);for(Q=A.length;A.charCodeAt(Q-1)===48;--Q);if(A=A.slice(I,Q)){if(Q-=I,B.e=g=g-I-1,B.d=[],I=(g+1)%7,g<0&&(I+=7),I<Q){for(I&&B.d.push(+A.slice(0,I)),Q-=7;I<Q;)B.d.push(+A.slice(I,I+=7));I=7-(A=A.slice(I)).length}else I-=Q;for(;I--;)A+="0";B.d.push(+A),iA&&(B.e>B.constructor.maxE?(B.d=null,B.e=NaN):B.e<B.constructor.minE&&(B.e=0,B.d=[0]))}else B.e=0,B.d=[0];return B}function ci(B,A){var g,I,Q,C,E,a,i,t,e;if(A.indexOf("_")>-1){if(A=A.replace(/(\d)_(?=\d)/g,"$1"),_E.test(A))return dB(B,A)}else if(A==="Infinity"||A==="NaN")return+A||(B.s=NaN),B.e=NaN,B.d=null,B;if(ni.test(A))g=16,A=A.toLowerCase();else if(oi.test(A))g=2;else{if(!ri.test(A))throw Error($g+A);g=8}for((C=A.search(/p/i))>0?(i=+A.slice(C+1),A=A.substring(2,C)):A=A.slice(2),E=(C=A.indexOf("."))>=0,I=B.constructor,E&&(C=(a=(A=A.replace(".","")).length)-C,Q=$E(I,new I(g),C,2*C)),C=e=(t=hB(A,g,Fg)).length-1;t[C]===0;--C)t.pop();return C<0?new I(0*B.s):(B.e=DB(t,e),B.d=t,iA=!1,E&&(B=NA(B,Q,4*a)),i&&(B=B.times(Math.abs(i)<54?zA(2,i):NI.pow(2,i))),iA=!0,B)}function bI(B,A,g,I,Q){var C,E,a,i,t=B.precision,e=Math.ceil(t/7);for(iA=!1,i=g.times(g),a=new B(I);;){if(E=NA(a.times(i),new B(A++*A++),t,1),a=Q?I.plus(E):I.minus(E),I=NA(E.times(i),new B(A++*A++),t,1),(E=a.plus(I)).d[e]!==void 0){for(C=e;E.d[C]===a.d[C]&&C--;);if(C==-1)break}C=a,a=I,I=E,E=C}return iA=!0,E.d.length=e+1,E}function EB(B,A){for(var g=B;--A;)g*=B;return g}function rC(B,A){var g,I=A.s<0,Q=Ng(B,B.precision,1),C=Q.times(.5);if((A=A.abs()).lte(C))return Jg=I?4:1,A;if((g=A.divToInt(Q)).isZero())Jg=I?3:2;else{if((A=A.minus(g.times(Q))).lte(C))return Jg=nC(g)?I?2:3:I?4:1,A;Jg=nC(g)?I?1:4:I?3:2}return A.minus(Q).abs()}function BQ(B,A,g,I){var Q,C,E,a,i,t,e,o,r,n=B.constructor,s=g!==void 0;if(s?(ag(g,1,Zg),I===void 0?I=n.rounding:ag(I,0,8)):(g=n.precision,I=n.rounding),B.isFinite()){for(s?(Q=2,A==16?g=4*g-3:A==8&&(g=3*g-2)):Q=A,(E=(e=Gg(B)).indexOf("."))>=0&&(e=e.replace(".",""),(r=new n(1)).e=e.length-E,r.d=hB(Gg(r),10,Q),r.e=r.d.length),C=i=(o=hB(e,10,Q)).length;o[--i]==0;)o.pop();if(o[0]){if(E<0?C--:((B=new n(B)).d=o,B.e=C,o=(B=NA(B,r,g,I,0,Q)).d,C=B.e,t=VE),E=o[g],a=Q/2,t=t||o[g+1]!==void 0,t=I<4?(E!==void 0||t)&&(I===0||I===(B.s<0?3:2)):E>a||E===a&&(I===4||t||I===6&&1&o[g-1]||I===(B.s<0?8:7)),o.length=g,t)for(;++o[--g]>Q-1;)o[g]=0,g||(++C,o.unshift(1));for(i=o.length;!o[i-1];--i);for(E=0,e="";E<i;E++)e+=hQ.charAt(o[E]);if(s){if(i>1)if(A==16||A==8){for(E=A==16?4:3,--i;i%E;i++)e+="0";for(i=(o=hB(e,Q,A)).length;!o[i-1];--i);for(E=1,e="1.";E<i;E++)e+=hQ.charAt(o[E])}else e=e.charAt(0)+"."+e.slice(1);e=e+(C<0?"p":"p+")+C}else if(C<0){for(;++C;)e="0"+e;e="0."+e}else if(++C>i)for(C-=i;C--;)e+="0";else C<i&&(e=e.slice(0,C)+"."+e.slice(C))}else e=s?"0p+0":"0";e=(A==16?"0x":A==2?"0b":A==8?"0o":"")+e}else e=ga(B);return B.s<0?"-"+e:e}function sC(B,A){if(B.length>A)return B.length=A,!0}function hi(B){return new this(B).abs()}function Di(B){return new this(B).acos()}function di(B){return new this(B).acosh()}function bi(B,A){return new this(B).plus(A)}function wi(B){return new this(B).asin()}function ui(B){return new this(B).asinh()}function li(B){return new this(B).atan()}function fi(B){return new this(B).atanh()}function Fi(B,A){B=new this(B),A=new this(A);var g,I=this.precision,Q=this.rounding,C=I+4;return B.s&&A.s?B.d||A.d?!A.d||B.isZero()?(g=A.s<0?Ng(this,I,Q):new this(0)).s=B.s:!B.d||A.isZero()?(g=Ng(this,C,1).times(.5)).s=B.s:A.s<0?(this.precision=C,this.rounding=1,g=this.atan(NA(B,A,C,1)),A=Ng(this,C,1),this.precision=I,this.rounding=Q,g=B.s<0?g.minus(A):g.plus(A)):g=this.atan(NA(B,A,C,1)):(g=Ng(this,C,1).times(A.s>0?.25:.75)).s=B.s:g=new this(NaN),g}function yi(B){return new this(B).cbrt()}function Mi(B){return CA(B=new this(B),B.e+1,2)}function Gi(B,A,g){return new this(B).clamp(A,g)}function Ri(B){if(!B||typeof B!="object")throw Error(pB+"Object expected");var A,g,I,Q=B.defaults===!0,C=["precision",1,Zg,"rounding",0,8,"toExpNeg",-FI,0,"toExpPos",0,FI,"maxE",0,FI,"minE",-FI,0,"modulo",0,9];for(A=0;A<C.length;A+=3)if(g=C[A],Q&&(this[g]=DQ[g]),(I=B[g])!==void 0){if(!(Ag(I)===I&&I>=C[A+1]&&I<=C[A+2]))throw Error($g+g+": "+I);this[g]=I}if(g="crypto",Q&&(this[g]=DQ[g]),(I=B[g])!==void 0){if(I!==!0&&I!==!1&&I!==0&&I!==1)throw Error($g+g+": "+I);if(I){if(typeof crypto>"u"||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(XE);this[g]=!0}else this[g]=!1}return this}function pi(B){return new this(B).cos()}function Ni(B){return new this(B).cosh()}function ki(B,A){return new this(B).div(A)}function Ui(B){return new this(B).exp()}function mi(B){return CA(B=new this(B),B.e+1,3)}function Si(){var B,A,g=new this(0);for(iA=!1,B=0;B<arguments.length;)if((A=new this(arguments[B++])).d)g.d&&(g=g.plus(A.times(A)));else{if(A.s)return iA=!0,new this(1/0);g=A}return iA=!0,g.sqrt()}function cC(B){return B instanceof NI||B&&B.toStringTag===ZE||!1}function Li(B){return new this(B).ln()}function Ji(B,A){return new this(B).log(A)}function Yi(B){return new this(B).log(2)}function xi(B){return new this(B).log(10)}function Hi(){return Aa(this,arguments,-1)}function Ki(){return Aa(this,arguments,1)}function ji(B,A){return new this(B).mod(A)}function qi(B,A){return new this(B).mul(A)}function vi(B,A){return new this(B).pow(A)}function Ti(B){var A,g,I,Q,C=0,E=new this(1),a=[];if(B===void 0?B=this.precision:ag(B,1,Zg),I=Math.ceil(B/7),this.crypto)if(crypto.getRandomValues)for(A=crypto.getRandomValues(new Uint32Array(I));C<I;)(Q=A[C])>=429e7?A[C]=crypto.getRandomValues(new Uint32Array(1))[0]:a[C++]=Q%1e7;else{if(!crypto.randomBytes)throw Error(XE);for(A=crypto.randomBytes(I*=4);C<I;)(Q=A[C]+(A[C+1]<<8)+(A[C+2]<<16)+((127&A[C+3])<<24))>=214e7?crypto.randomBytes(4).copy(A,C):(a.push(Q%1e7),C+=4);C=I/4}else for(;C<I;)a[C++]=1e7*Math.random()|0;for(B%=7,(I=a[--C])&&B&&(Q=zA(10,7-B),a[C]=(I/Q|0)*Q);a[C]===0;C--)a.pop();if(C<0)g=0,a=[0];else{for(g=-1;a[0]===0;g-=7)a.shift();for(I=1,Q=a[0];Q>=10;Q/=10)I++;I<7&&(g-=7-I)}return E.e=g,E.d=a,E}function Oi(B){return CA(B=new this(B),B.e+1,this.rounding)}function Wi(B){return(B=new this(B)).d?B.d[0]?B.s:0*B.s:B.s||NaN}function Pi(B){return new this(B).sin()}function Vi(B){return new this(B).sinh()}function zi(B){return new this(B).sqrt()}function Xi(B,A){return new this(B).sub(A)}function Zi(){var B=0,A=arguments,g=new this(A[B]);for(iA=!1;g.s&&++B<A.length;)g=g.plus(A[B]);return iA=!0,CA(g,this.precision,this.rounding)}function _i(B){return new this(B).tan()}function $i(B){return new this(B).tanh()}function At(B){return CA(B=new this(B),B.e+1,1)}j[Symbol.for("nodejs.util.inspect.custom")]=j.toString,j[Symbol.toStringTag]="Decimal";var NI=j.constructor=function B(A){var g,I,Q;function C(E){var a,i,t,e=this;if(!(e instanceof C))return new C(E);if(e.constructor=C,cC(E))return e.s=E.s,void(iA?!E.d||E.e>C.maxE?(e.e=NaN,e.d=null):E.e<C.minE?(e.e=0,e.d=[0]):(e.e=E.e,e.d=E.d.slice()):(e.e=E.e,e.d=E.d?E.d.slice():E.d));if((t=typeof E)=="number"){if(E===0)return e.s=1/E<0?-1:1,e.e=0,void(e.d=[0]);if(E<0?(E=-E,e.s=-1):e.s=1,E===~~E&&E<1e7){for(a=0,i=E;i>=10;i/=10)a++;return void(iA?a>C.maxE?(e.e=NaN,e.d=null):a<C.minE?(e.e=0,e.d=[0]):(e.e=a,e.d=[E]):(e.e=a,e.d=[E]))}return 0*E!=0?(E||(e.s=NaN),e.e=NaN,void(e.d=null)):dB(e,E.toString())}if(t==="string")return(i=E.charCodeAt(0))===45?(E=E.slice(1),e.s=-1):(i===43&&(E=E.slice(1)),e.s=1),_E.test(E)?dB(e,E):ci(e,E);if(t==="bigint")return E<0?(E=-E,e.s=-1):e.s=1,dB(e,E.toString());throw Error($g+E)}if(C.prototype=j,C.ROUND_UP=0,C.ROUND_DOWN=1,C.ROUND_CEIL=2,C.ROUND_FLOOR=3,C.ROUND_HALF_UP=4,C.ROUND_HALF_DOWN=5,C.ROUND_HALF_EVEN=6,C.ROUND_HALF_CEIL=7,C.ROUND_HALF_FLOOR=8,C.EUCLID=9,C.config=C.set=Ri,C.clone=B,C.isDecimal=cC,C.abs=hi,C.acos=Di,C.acosh=di,C.add=bi,C.asin=wi,C.asinh=ui,C.atan=li,C.atanh=fi,C.atan2=Fi,C.cbrt=yi,C.ceil=Mi,C.clamp=Gi,C.cos=pi,C.cosh=Ni,C.div=ki,C.exp=Ui,C.floor=mi,C.hypot=Si,C.ln=Li,C.log=Ji,C.log10=xi,C.log2=Yi,C.max=Hi,C.min=Ki,C.mod=ji,C.mul=qi,C.pow=vi,C.random=Ti,C.round=Oi,C.sign=Wi,C.sin=Pi,C.sinh=Vi,C.sqrt=zi,C.sub=Xi,C.sum=Zi,C.tan=_i,C.tanh=$i,C.trunc=At,A===void 0&&(A={}),A&&A.defaults!==!0)for(Q=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],g=0;g<Q.length;)A.hasOwnProperty(I=Q[g++])||(A[I]=this[I]);return C.config(A),C}(DQ);fB=new NI(fB),FB=new NI(FB);var gt=wA("BigNumber",["?on","config"],B=>{var{on:A,config:g}=B,I=NI.clone({precision:g.precision,modulo:NI.EUCLID});return I.prototype=Object.create(I.prototype),I.prototype.type="BigNumber",I.prototype.isBigNumber=!0,I.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},I.fromJSON=function(Q){return new I(Q.value)},A&&A("config",function(Q,C){Q.precision!==C.precision&&I.config({precision:Q.precision})}),I},{isClass:!0});const $A=Math.cosh||function(B){return Math.abs(B)<1e-9?1-B:.5*(Math.exp(B)+Math.exp(-B))},dg=Math.sinh||function(B){return Math.abs(B)<1e-9?B:.5*(Math.exp(B)-Math.exp(-B))},QQ=function(B,A){return(B=Math.abs(B))<(A=Math.abs(A))&&([B,A]=[A,B]),B<1e8?Math.sqrt(B*B+A*A):(A/=B,B*Math.sqrt(1+A*A))},wI=function(){throw SyntaxError("Invalid Param")};function CQ(B,A){const g=Math.abs(B),I=Math.abs(A);return B===0?Math.log(I):A===0?Math.log(g):g<3e3&&I<3e3?.5*Math.log(B*B+A*A):(B*=.5,A*=.5,.5*Math.log(B*B+A*A)+Math.LN2)}const It={re:0,im:0},CI=function(B,A){const g=It;if(B==null)g.re=g.im=0;else if(A!==void 0)g.re=B,g.im=A;else switch(typeof B){case"object":if("im"in B&&"re"in B)g.re=B.re,g.im=B.im;else if("abs"in B&&"arg"in B){if(!isFinite(B.abs)&&isFinite(B.arg))return Y.INFINITY;g.re=B.abs*Math.cos(B.arg),g.im=B.abs*Math.sin(B.arg)}else if("r"in B&&"phi"in B){if(!isFinite(B.r)&&isFinite(B.phi))return Y.INFINITY;g.re=B.r*Math.cos(B.phi),g.im=B.r*Math.sin(B.phi)}else B.length===2?(g.re=B[0],g.im=B[1]):wI();break;case"string":g.im=g.re=0;const I=B.replace(/_/g,"").match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g);let Q=1,C=0;I===null&&wI();for(let E=0;E<I.length;E++){const a=I[E];a===" "||a===" "||a===`
|
|
912
|
+
`||(a==="+"?Q++:a==="-"?C++:a==="i"||a==="I"?(Q+C===0&&wI(),I[E+1]===" "||isNaN(I[E+1])?g.im+=parseFloat((C%2?"-":"")+"1"):(g.im+=parseFloat((C%2?"-":"")+I[E+1]),E++),Q=C=0):((Q+C===0||isNaN(a))&&wI(),I[E+1]==="i"||I[E+1]==="I"?(g.im+=parseFloat((C%2?"-":"")+a),E++):g.re+=parseFloat((C%2?"-":"")+a),Q=C=0))}Q+C>0&&wI();break;case"number":g.im=0,g.re=B;break;default:wI()}return isNaN(g.re)||isNaN(g.im),g};function Y(B,A){if(!(this instanceof Y))return new Y(B,A);const g=CI(B,A);this.re=g.re,this.im=g.im}Y.prototype={re:0,im:0,sign:function(){const B=QQ(this.re,this.im);return new Y(this.re/B,this.im/B)},add:function(B,A){const g=CI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im));return I||Q?I&&Q?Y.NAN:Y.INFINITY:new Y(this.re+g.re,this.im+g.im)},sub:function(B,A){const g=CI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im));return I||Q?I&&Q?Y.NAN:Y.INFINITY:new Y(this.re-g.re,this.im-g.im)},mul:function(B,A){const g=CI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im)),C=this.re===0&&this.im===0,E=g.re===0&&g.im===0;return I&&E||Q&&C?Y.NAN:I||Q?Y.INFINITY:g.im===0&&this.im===0?new Y(this.re*g.re,0):new Y(this.re*g.re-this.im*g.im,this.re*g.im+this.im*g.re)},div:function(B,A){const g=CI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im)),C=this.re===0&&this.im===0,E=g.re===0&&g.im===0;if(C&&E||I&&Q)return Y.NAN;if(E||I)return Y.INFINITY;if(C||Q)return Y.ZERO;if(g.im===0)return new Y(this.re/g.re,this.im/g.re);if(Math.abs(g.re)<Math.abs(g.im)){const a=g.re/g.im,i=g.re*a+g.im;return new Y((this.re*a+this.im)/i,(this.im*a-this.re)/i)}{const a=g.im/g.re,i=g.im*a+g.re;return new Y((this.re+this.im*a)/i,(this.im-this.re*a)/i)}},pow:function(B,A){const g=CI(B,A),I=this.re===0&&this.im===0;if(g.re===0&&g.im===0)return Y.ONE;if(g.im===0){if(this.im===0&&this.re>0)return new Y(Math.pow(this.re,g.re),0);if(this.re===0)switch((g.re%4+4)%4){case 0:return new Y(Math.pow(this.im,g.re),0);case 1:return new Y(0,Math.pow(this.im,g.re));case 2:return new Y(-Math.pow(this.im,g.re),0);case 3:return new Y(0,-Math.pow(this.im,g.re))}}if(I&&g.re>0)return Y.ZERO;const Q=Math.atan2(this.im,this.re),C=CQ(this.re,this.im);let E=Math.exp(g.re*C-g.im*Q),a=g.im*C+g.re*Q;return new Y(E*Math.cos(a),E*Math.sin(a))},sqrt:function(){const B=this.re,A=this.im;if(A===0)return B>=0?new Y(Math.sqrt(B),0):new Y(0,Math.sqrt(-B));const g=QQ(B,A);let I=Math.sqrt(.5*(g+Math.abs(B))),Q=Math.abs(A)/(2*I);return B>=0?new Y(I,A<0?-Q:Q):new Y(Q,A<0?-I:I)},exp:function(){const B=Math.exp(this.re);return this.im===0?new Y(B,0):new Y(B*Math.cos(this.im),B*Math.sin(this.im))},expm1:function(){const B=this.re,A=this.im;return new Y(Math.expm1(B)*Math.cos(A)+function(g){const I=Math.PI/4;if(-I>g||g>I)return Math.cos(g)-1;const Q=g*g;return Q*(Q*(Q*(Q*(Q*(Q*(Q*(Q/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(A),Math.exp(B)*Math.sin(A))},log:function(){const B=this.re,A=this.im;return A===0&&B>0?new Y(Math.log(B),0):new Y(CQ(B,A),Math.atan2(A,B))},abs:function(){return QQ(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){const B=this.re,A=this.im;return new Y(Math.sin(B)*$A(A),Math.cos(B)*dg(A))},cos:function(){const B=this.re,A=this.im;return new Y(Math.cos(B)*$A(A),-Math.sin(B)*dg(A))},tan:function(){const B=2*this.re,A=2*this.im,g=Math.cos(B)+$A(A);return new Y(Math.sin(B)/g,dg(A)/g)},cot:function(){const B=2*this.re,A=2*this.im,g=Math.cos(B)-$A(A);return new Y(-Math.sin(B)/g,dg(A)/g)},sec:function(){const B=this.re,A=this.im,g=.5*$A(2*A)+.5*Math.cos(2*B);return new Y(Math.cos(B)*$A(A)/g,Math.sin(B)*dg(A)/g)},csc:function(){const B=this.re,A=this.im,g=.5*$A(2*A)-.5*Math.cos(2*B);return new Y(Math.sin(B)*$A(A)/g,-Math.cos(B)*dg(A)/g)},asin:function(){const B=this.re,A=this.im,g=new Y(A*A-B*B+1,-2*B*A).sqrt(),I=new Y(g.re-A,g.im+B).log();return new Y(I.im,-I.re)},acos:function(){const B=this.re,A=this.im,g=new Y(A*A-B*B+1,-2*B*A).sqrt(),I=new Y(g.re-A,g.im+B).log();return new Y(Math.PI/2-I.im,I.re)},atan:function(){const B=this.re,A=this.im;if(B===0){if(A===1)return new Y(0,1/0);if(A===-1)return new Y(0,-1/0)}const g=B*B+(1-A)*(1-A),I=new Y((1-A*A-B*B)/g,-2*B/g).log();return new Y(-.5*I.im,.5*I.re)},acot:function(){const B=this.re,A=this.im;if(A===0)return new Y(Math.atan2(1,B),0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).atan():new Y(B!==0?B/0:0,A!==0?-A/0:0).atan()},asec:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(0,1/0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).acos():new Y(B!==0?B/0:0,A!==0?-A/0:0).acos()},acsc:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(Math.PI/2,1/0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).asin():new Y(B!==0?B/0:0,A!==0?-A/0:0).asin()},sinh:function(){const B=this.re,A=this.im;return new Y(dg(B)*Math.cos(A),$A(B)*Math.sin(A))},cosh:function(){const B=this.re,A=this.im;return new Y($A(B)*Math.cos(A),dg(B)*Math.sin(A))},tanh:function(){const B=2*this.re,A=2*this.im,g=$A(B)+Math.cos(A);return new Y(dg(B)/g,Math.sin(A)/g)},coth:function(){const B=2*this.re,A=2*this.im,g=$A(B)-Math.cos(A);return new Y(dg(B)/g,-Math.sin(A)/g)},csch:function(){const B=this.re,A=this.im,g=Math.cos(2*A)-$A(2*B);return new Y(-2*dg(B)*Math.cos(A)/g,2*$A(B)*Math.sin(A)/g)},sech:function(){const B=this.re,A=this.im,g=Math.cos(2*A)+$A(2*B);return new Y(2*$A(B)*Math.cos(A)/g,-2*dg(B)*Math.sin(A)/g)},asinh:function(){let B=this.im;this.im=-this.re,this.re=B;const A=this.asin();return this.re=-this.im,this.im=B,B=A.re,A.re=-A.im,A.im=B,A},acosh:function(){const B=this.acos();if(B.im<=0){const A=B.re;B.re=-B.im,B.im=A}else{const A=B.im;B.im=-B.re,B.re=A}return B},atanh:function(){const B=this.re,A=this.im,g=B>1&&A===0,I=1-B,Q=1+B,C=I*I+A*A,E=C!==0?new Y((Q*I-A*A)/C,(A*I+Q*A)/C):new Y(B!==-1?B/0:0,A!==0?A/0:0),a=E.re;return E.re=CQ(E.re,E.im)/2,E.im=Math.atan2(E.im,a)/2,g&&(E.im=-E.im),E},acoth:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(0,Math.PI/2);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).atanh():new Y(B!==0?B/0:0,A!==0?-A/0:0).atanh()},acsch:function(){const B=this.re,A=this.im;if(A===0)return new Y(B!==0?Math.log(B+Math.sqrt(B*B+1)):1/0,0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).asinh():new Y(B!==0?B/0:0,A!==0?-A/0:0).asinh()},asech:function(){const B=this.re,A=this.im;if(this.isZero())return Y.INFINITY;const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).acosh():new Y(B!==0?B/0:0,A!==0?-A/0:0).acosh()},inverse:function(){if(this.isZero())return Y.INFINITY;if(this.isInfinite())return Y.ZERO;const B=this.re,A=this.im,g=B*B+A*A;return new Y(B/g,-A/g)},conjugate:function(){return new Y(this.re,-this.im)},neg:function(){return new Y(-this.re,-this.im)},ceil:function(B){return B=Math.pow(10,B||0),new Y(Math.ceil(this.re*B)/B,Math.ceil(this.im*B)/B)},floor:function(B){return B=Math.pow(10,B||0),new Y(Math.floor(this.re*B)/B,Math.floor(this.im*B)/B)},round:function(B){return B=Math.pow(10,B||0),new Y(Math.round(this.re*B)/B,Math.round(this.im*B)/B)},equals:function(B,A){const g=CI(B,A);return Math.abs(g.re-this.re)<=Y.EPSILON&&Math.abs(g.im-this.im)<=Y.EPSILON},clone:function(){return new Y(this.re,this.im)},toString:function(){let B=this.re,A=this.im,g="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(B)<Y.EPSILON&&(B=0),Math.abs(A)<Y.EPSILON&&(A=0),A===0?g+B:(B!==0?(g+=B,g+=" ",A<0?(A=-A,g+="-"):g+="+",g+=" "):A<0&&(A=-A,g+="-"),A!==1&&(g+=A),g+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!this.isFinite()}},Y.ZERO=new Y(0,0),Y.ONE=new Y(1,0),Y.I=new Y(0,1),Y.PI=new Y(Math.PI,0),Y.E=new Y(Math.E,0),Y.INFINITY=new Y(1/0,1/0),Y.NAN=new Y(NaN,NaN),Y.EPSILON=1e-15;var Bt=wA("Complex",[],()=>(Object.defineProperty(Y,"name",{value:"Complex"}),Y.prototype.constructor=Y,Y.prototype.type="Complex",Y.prototype.isComplex=!0,Y.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},Y.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},Y.prototype.format=function(B){var A=this.im,g=this.re,I=cQ(this.re,B),Q=cQ(this.im,B),C=UA(B)?B:B?B.precision:null;if(C!==null){var E=Math.pow(10,-C);Math.abs(g/A)<E&&(g=0),Math.abs(A/g)<E&&(A=0)}return A===0?I:g===0?A===1?"i":A===-1?"-i":Q+"i":A<0?A===-1?I+" - i":I+" - "+Q.substring(1)+"i":A===1?I+" + i":I+" + "+Q+"i"},Y.fromPolar=function(B){switch(arguments.length){case 1:var A=arguments[0];if(typeof A=="object")return Y(A);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var g=arguments[0],I=arguments[1];if(UA(g)){if(OE(I)&&I.hasBase("ANGLE")&&(I=I.toNumber("rad")),UA(I))return new Y({r:g,phi:I});throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},Y.prototype.valueOf=Y.prototype.toString,Y.fromJSON=function(B){return new Y(B)},Y.compare=function(B,A){return B.re>A.re?1:B.re<A.re?-1:B.im>A.im?1:B.im<A.im?-1:0},Y),{isClass:!0});typeof BigInt>"u"&&(BigInt=function(B){if(isNaN(B))throw new Error("");return B});const EA=BigInt(0),oA=BigInt(1),vI=BigInt(2),bQ=BigInt(5),eg=BigInt(10),_={s:oA,n:EA,d:oA};function mg(B,A){try{B=BigInt(B)}catch{throw zg()}return B*A}function lg(B){return typeof B=="bigint"?B:Math.floor(B)}function mA(B,A){if(A===EA)throw NQ();const g=Object.create(wg.prototype);g.s=B<EA?-oA:oA;const I=EI(B=B<EA?-B:B,A);return g.n=B/I,g.d=A/I,g}function uI(B){const A={};let g=B,I=vI,Q=bQ-oA;for(;Q<=g;){for(;g%I===EA;)g/=I,A[I]=(A[I]||EA)+oA;Q+=oA+vI*I++}return g!==B?g>1&&(A[g]=(A[g]||EA)+oA):A[B]=(A[B]||EA)+oA,A}const XA=function(B,A){let g=EA,I=oA,Q=oA;if(B!=null)if(A!==void 0){if(typeof B=="bigint")g=B;else{if(isNaN(B))throw zg();if(B%1!=0)throw hC();g=BigInt(B)}if(typeof A=="bigint")I=A;else{if(isNaN(A))throw zg();if(A%1!=0)throw hC();I=BigInt(A)}Q=g*I}else if(typeof B=="object"){if("d"in B&&"n"in B)g=BigInt(B.n),I=BigInt(B.d),"s"in B&&(g*=BigInt(B.s));else if(0 in B)g=BigInt(B[0]),1 in B&&(I=BigInt(B[1]));else{if(typeof B!="bigint")throw zg();g=B}Q=g*I}else if(typeof B=="number"){if(isNaN(B))throw zg();if(B<0&&(Q=-oA,B=-B),B%1==0)g=BigInt(B);else{let C=1,E=0,a=1,i=1,t=1,e=1e7;for(B>=1&&(C=10**Math.floor(1+Math.log10(B)),B/=C);a<=e&&t<=e;){let o=(E+i)/(a+t);if(B===o){a+t<=e?(g=E+i,I=a+t):t>a?(g=i,I=t):(g=E,I=a);break}B>o?(E+=i,a+=t):(i+=E,t+=a),a>e?(g=i,I=t):(g=E,I=a)}g=BigInt(g)*BigInt(C),I=BigInt(I)}}else if(typeof B=="string"){let C=0,E=EA,a=EA,i=EA,t=oA,e=oA,o=B.replace(/_/g,"").match(/\d+|./g);if(o===null||(o[C]==="-"?(Q=-oA,C++):o[C]==="+"&&C++,o.length===C+1?a=mg(o[C++],Q):o[C+1]==="."||o[C]==="."?(o[C]!=="."&&(E=mg(o[C++],Q)),C++,(C+1===o.length||o[C+1]==="("&&o[C+3]===")"||o[C+1]==="'"&&o[C+3]==="'")&&(a=mg(o[C],Q),t=eg**BigInt(o[C].length),C++),(o[C]==="("&&o[C+2]===")"||o[C]==="'"&&o[C+2]==="'")&&(i=mg(o[C+1],Q),e=eg**BigInt(o[C+1].length)-oA,C+=3)):o[C+1]==="/"||o[C+1]===":"?(a=mg(o[C],Q),t=mg(o[C+2],oA),C+=3):o[C+3]==="/"&&o[C+1]===" "&&(E=mg(o[C],Q),a=mg(o[C+2],Q),t=mg(o[C+4],oA),C+=5),!(o.length<=C)))throw zg();I=t*e,Q=g=i+I*E+e*a}else{if(typeof B!="bigint")throw zg();g=B,Q=B,I=oA}if(I===EA)throw NQ();_.s=Q<EA?-oA:oA,_.n=g<EA?-g:g,_.d=I<EA?-I:I};function Qt(B,A,g){let I=oA,Q=function(C,E,a){let i=oA;for(;E>EA;C=C*C%a,E>>=oA)E&oA&&(i=i*C%a);return i}(eg,g,A);for(let C=0;C<300;C++){if(I===Q)return BigInt(C);I=I*eg%A,Q=Q*eg%A}return 0}function EI(B,A){if(!B)return A;if(!A)return B;for(;;){if(!(B%=A))return A;if(!(A%=B))return B}}function wg(B,A){if(XA(B,A),!(this instanceof wg))return mA(_.s*_.n,_.d);B=EI(_.d,_.n),this.s=_.s,this.n=_.n/B,this.d=_.d/B}var NQ=function(){return new Error("Division by Zero")},zg=function(){return new Error("Invalid argument")},hC=function(){return new Error("Parameters must be integer")};wg.prototype={s:oA,n:EA,d:oA,abs:function(){return mA(this.n,this.d)},neg:function(){return mA(-this.s*this.n,this.d)},add:function(B,A){return XA(B,A),mA(this.s*this.n*_.d+_.s*this.d*_.n,this.d*_.d)},sub:function(B,A){return XA(B,A),mA(this.s*this.n*_.d-_.s*this.d*_.n,this.d*_.d)},mul:function(B,A){return XA(B,A),mA(this.s*_.s*this.n*_.n,this.d*_.d)},div:function(B,A){return XA(B,A),mA(this.s*_.s*this.n*_.d,this.d*_.n)},clone:function(){return mA(this.s*this.n,this.d)},mod:function(B,A){if(B===void 0)return mA(this.s*this.n%this.d,oA);if(XA(B,A),EA===_.n*this.d)throw NQ();return mA(this.s*(_.d*this.n)%(_.n*this.d),_.d*this.d)},gcd:function(B,A){return XA(B,A),mA(EI(_.n,this.n)*EI(_.d,this.d),_.d*this.d)},lcm:function(B,A){return XA(B,A),_.n===EA&&this.n===EA?mA(EA,oA):mA(_.n*this.n,EI(_.n,this.n)*EI(_.d,this.d))},inverse:function(){return mA(this.s*this.d,this.n)},pow:function(B,A){if(XA(B,A),_.d===oA)return _.s<EA?mA((this.s*this.d)**_.n,this.n**_.n):mA((this.s*this.n)**_.n,this.d**_.n);if(this.s<EA)return null;let g=uI(this.n),I=uI(this.d),Q=oA,C=oA;for(let E in g)if(E!=="1"){if(E==="0"){Q=EA;break}if(g[E]*=_.n,g[E]%_.d!==EA)return null;g[E]/=_.d,Q*=BigInt(E)**g[E]}for(let E in I)if(E!=="1"){if(I[E]*=_.n,I[E]%_.d!==EA)return null;I[E]/=_.d,C*=BigInt(E)**I[E]}return _.s<EA?mA(C,Q):mA(Q,C)},log:function(B,A){if(XA(B,A),this.s<=EA||_.s<=EA)return null;const g={},I=uI(_.n),Q=uI(_.d),C=uI(this.n),E=uI(this.d);for(const t in Q)I[t]=(I[t]||EA)-Q[t];for(const t in E)C[t]=(C[t]||EA)-E[t];for(const t in I)t!=="1"&&(g[t]=!0);for(const t in C)t!=="1"&&(g[t]=!0);let a=null,i=null;for(const t in g){const e=I[t]||EA,o=C[t]||EA;if(e===EA){if(o!==EA)return null;continue}let r=o,n=e;const s=EI(r,n);if(r/=s,n/=s,a===null&&i===null)a=r,i=n;else if(r*i!=a*n)return null}return a!==null&&i!==null?mA(a,i):null},equals:function(B,A){return XA(B,A),this.s*this.n*_.d==_.s*_.n*this.d},lt:function(B,A){return XA(B,A),this.s*this.n*_.d<_.s*_.n*this.d},lte:function(B,A){return XA(B,A),this.s*this.n*_.d<=_.s*_.n*this.d},gt:function(B,A){return XA(B,A),this.s*this.n*_.d>_.s*_.n*this.d},gte:function(B,A){return XA(B,A),this.s*this.n*_.d>=_.s*_.n*this.d},compare:function(B,A){XA(B,A);let g=this.s*this.n*_.d-_.s*_.n*this.d;return(EA<g)-(g<EA)},ceil:function(B){return B=eg**BigInt(B||0),mA(lg(this.s*B*this.n/this.d)+(B*this.n%this.d>EA&&this.s>=EA?oA:EA),B)},floor:function(B){return B=eg**BigInt(B||0),mA(lg(this.s*B*this.n/this.d)-(B*this.n%this.d>EA&&this.s<EA?oA:EA),B)},round:function(B){return B=eg**BigInt(B||0),mA(lg(this.s*B*this.n/this.d)+this.s*((this.s>=EA?oA:EA)+vI*(B*this.n%this.d)>this.d?oA:EA),B)},roundTo:function(B,A){XA(B,A);const g=this.n*_.d,I=this.d*_.n,Q=g%I;let C=lg(g/I);return Q+Q>=I&&C++,mA(this.s*C*_.n,_.d)},divisible:function(B,A){return XA(B,A),!(!(_.n*this.d)||this.n*_.d%(_.n*this.d))},valueOf:function(){return Number(this.s*this.n)/Number(this.d)},toString:function(B){let A=this.n,g=this.d;B=B||15;let I=function(E,a){for(;a%vI===EA;a/=vI);for(;a%bQ===EA;a/=bQ);if(a===oA)return EA;let i=eg%a,t=1;for(;i!==oA;t++)if(i=i*eg%a,t>2e3)return EA;return BigInt(t)}(0,g),Q=Qt(0,g,I),C=this.s<EA?"-":"";if(C+=lg(A/g),A%=g,A*=eg,A&&(C+="."),I){for(let E=Q;E--;)C+=lg(A/g),A%=g,A*=eg;C+="(";for(let E=I;E--;)C+=lg(A/g),A%=g,A*=eg;C+=")"}else for(let E=B;A&&E--;)C+=lg(A/g),A%=g,A*=eg;return C},toFraction:function(B){let A=this.n,g=this.d,I=this.s<EA?"-":"";if(g===oA)I+=A;else{let Q=lg(A/g);B&&Q>EA&&(I+=Q,I+=" ",A%=g),I+=A,I+="/",I+=g}return I},toLatex:function(B){let A=this.n,g=this.d,I=this.s<EA?"-":"";if(g===oA)I+=A;else{let Q=lg(A/g);B&&Q>EA&&(I+=Q,A%=g),I+="\\frac{",I+=A,I+="}{",I+=g,I+="}"}return I},toContinued:function(){let B=this.n,A=this.d,g=[];do{g.push(lg(B/A));let I=B%A;B=A,A=I}while(B!==oA);return g},simplify:function(B){const A=BigInt(1/(B||.001)|0),g=this.abs(),I=g.toContinued();for(let Q=1;Q<I.length;Q++){let C=mA(I[Q-1],oA);for(let a=Q-2;a>=0;a--)C=C.inverse().add(I[a]);let E=C.sub(g);if(E.n*A<E.d)return C.mul(this.s)}return this}};var Ct=wA("Fraction",[],()=>(Object.defineProperty(wg,"name",{value:"Fraction"}),wg.prototype.constructor=wg,wg.prototype.type="Fraction",wg.prototype.isFraction=!0,wg.prototype.toJSON=function(){return{mathjs:"Fraction",n:String(this.s*this.n),d:String(this.d)}},wg.fromJSON=function(B){return new wg(B)},wg),{isClass:!0}),Et=wA("Matrix",[],()=>{function B(){if(!(this instanceof B))throw new SyntaxError("Constructor must be called with the new operator")}return B.prototype.type="Matrix",B.prototype.isMatrix=!0,B.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},B.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},B.prototype.create=function(A,g){throw new Error("Cannot invoke create on a Matrix interface")},B.prototype.subset=function(A,g,I){throw new Error("Cannot invoke subset on a Matrix interface")},B.prototype.get=function(A){throw new Error("Cannot invoke get on a Matrix interface")},B.prototype.set=function(A,g,I){throw new Error("Cannot invoke set on a Matrix interface")},B.prototype.resize=function(A,g){throw new Error("Cannot invoke resize on a Matrix interface")},B.prototype.reshape=function(A,g){throw new Error("Cannot invoke reshape on a Matrix interface")},B.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},B.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},B.prototype.map=function(A,g){throw new Error("Cannot invoke map on a Matrix interface")},B.prototype.forEach=function(A){throw new Error("Cannot invoke forEach on a Matrix interface")},B.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},B.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},B.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},B.prototype.format=function(A){throw new Error("Cannot invoke format on a Matrix interface")},B.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},B},{isClass:!0});function EQ(B,A,g){var I=new B.constructor(2),Q="";if(g){if(g<1)throw new Error("size must be in greater than 0");if(!YA(g))throw new Error("size must be an integer");if(B.greaterThan(I.pow(g-1).sub(1))||B.lessThan(I.pow(g-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(g-1,", 2^").concat(g-1,"-1]"));if(!B.isInteger())throw new Error("Value must be an integer");B.lessThan(0)&&(B=B.add(I.pow(g))),Q="i".concat(g)}switch(A){case 2:return"".concat(B.toBinary()).concat(Q);case 8:return"".concat(B.toOctal()).concat(Q);case 16:return"".concat(B.toHexadecimal()).concat(Q);default:throw new Error("Base ".concat(A," not supported "))}}function at(B,A){if(typeof A=="function")return A(B);if(!B.isFinite())return B.isNaN()?"NaN":B.gt(0)?"Infinity":"-Infinity";var{notation:g,precision:I,wordSize:Q}=WE(A);switch(g){case"fixed":return function(t,e){return t.toFixed(e)}(B,I);case"exponential":return DC(B,I);case"engineering":return function(t,e){var o=t.e,r=o%3==0?o:o<0?o-3-o%3:o-o%3,n=t.mul(Math.pow(10,-r)),s=n.toPrecision(e);return s.includes("e")&&(s=new t.constructor(s).toFixed()),s+"e"+(o>=0?"+":"")+r.toString()}(B,I);case"bin":return EQ(B,2,Q);case"oct":return EQ(B,8,Q);case"hex":return EQ(B,16,Q);case"auto":var C=dC(A?.lowerExp,-3),E=dC(A?.upperExp,5);if(B.isZero())return"0";var a=B.toSignificantDigits(I),i=a.e;return(i>=C&&i<E?a.toFixed():DC(B,I)).replace(/((\.\d*?)(0+))($|e)/,function(){var t=arguments[2],e=arguments[4];return t!=="."?t+e:e});default:throw new Error('Unknown notation "'+g+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function DC(B,A){return A!==void 0?B.toExponential(A-1):B.toExponential()}function dC(B,A){return UA(B)?B:WA(B)?B.toNumber():A}function OA(B,A){var g=function(I,Q){return typeof I=="number"?cQ(I,Q):WA(I)?at(I,Q):function(C){return C&&typeof C=="object"&&typeof C.s=="bigint"&&typeof C.n=="bigint"&&typeof C.d=="bigint"||!1}(I)?Q&&Q.fraction==="decimal"?I.toString():"".concat(I.s*I.n,"/").concat(I.d):Array.isArray(I)?Ia(I,Q):pg(I)?bC(I):typeof I=="function"?I.syntax?String(I.syntax):"function":I&&typeof I=="object"?typeof I.format=="function"?I.format(Q):I&&I.toString(Q)!=={}.toString()?I.toString(Q):"{"+Object.keys(I).map(C=>bC(C)+": "+OA(I[C],Q)).join(", ")+"}":String(I)}(B,A);return A&&typeof A=="object"&&"truncate"in A&&g.length>A.truncate?g.substring(0,A.truncate-3)+"...":g}function bC(B){for(var A=String(B),g="",I=0;I<A.length;){var Q=A.charAt(I);g+=Q in wC?wC[Q]:Q,I++}return'"'+g+'"'}var wC={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function Ia(B,A){if(Array.isArray(B)){for(var g="[",I=B.length,Q=0;Q<I;Q++)Q!==0&&(g+=", "),g+=Ia(B[Q],A);return g+="]"}return OA(B,A)}function SA(B,A,g){if(!(this instanceof SA))throw new SyntaxError("Constructor must be called with the new operator");this.actual=B,this.expected=A,this.relation=g,this.message="Dimension mismatch ("+(Array.isArray(B)?"["+B.join(", ")+"]":B)+" "+(this.relation||"!=")+" "+(Array.isArray(A)?"["+A.join(", ")+"]":A)+")",this.stack=new Error().stack}function yI(B,A,g){if(!(this instanceof yI))throw new SyntaxError("Constructor must be called with the new operator");this.index=B,arguments.length<3?(this.min=0,this.max=A):(this.min=A,this.max=g),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}function Qg(B){for(var A=[];Array.isArray(B);)A.push(B.length),B=B[0];return A}function Ba(B,A,g){var I,Q=B.length;if(Q!==A[g])throw new SA(Q,A[g]);if(g<A.length-1){var C=g+1;for(I=0;I<Q;I++){var E=B[I];if(!Array.isArray(E))throw new SA(A.length-1,A.length,"<");Ba(B[I],A,C)}}else for(I=0;I<Q;I++)if(Array.isArray(B[I]))throw new SA(A.length+1,A.length,">")}function uC(B,A){if(A.length===0){if(Array.isArray(B))throw new SA(B.length,0)}else Ba(B,A,0)}function xA(B,A){if(B!==void 0){if(!UA(B)||!YA(B))throw new TypeError("Index must be an integer (value: "+B+")");if(B<0||typeof A=="number"&&B>=A)throw new yI(B,A)}}function wQ(B,A,g){if(!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new Error("Resizing to scalar is not supported");return A.forEach(function(I){if(!UA(I)||!YA(I)||I<0)throw new TypeError("Invalid size, must contain positive integers (size: "+OA(A)+")")}),(UA(B)||WA(B))&&(B=[B]),uQ(B,A,0,g!==void 0?g:0),B}function uQ(B,A,g,I){var Q,C,E=B.length,a=A[g],i=Math.min(E,a);if(B.length=a,g<A.length-1){var t=g+1;for(Q=0;Q<i;Q++)C=B[Q],Array.isArray(C)||(C=[C],B[Q]=C),uQ(C,A,t,I);for(Q=i;Q<a;Q++)C=[],B[Q]=C,uQ(C,A,t,I)}else{for(Q=0;Q<i;Q++)for(;Array.isArray(B[Q]);)B[Q]=B[Q][0];for(Q=i;Q<a;Q++)B[Q]=I}}function Qa(B,A){var g=function(C){var E=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!Array.isArray(C))return C;if(typeof E!="boolean")throw new TypeError("Boolean expected for second argument of flatten");var a=[];return E?t(C):i(C),a;function i(e){for(var o=0;o<e.length;o++){var r=e[o];Array.isArray(r)?i(r):a.push(r)}}function t(e){if(Array.isArray(e[0]))for(var o=0;o<e.length;o++)t(e[o]);else for(var r=0;r<e.length;r++)a.push(e[r])}}(B,!0),I=g.length;if(!Array.isArray(B)||!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new SA(0,I,"!=");var Q=Ca(A=kQ(A,I));if(I!==Q)throw new SA(Q,I,"!=");try{return function(C,E){for(var a,i=C,t=E.length-1;t>0;t--){var e=E[t];a=[];for(var o=i.length/e,r=0;r<o;r++)a.push(i.slice(r*e,(r+1)*e));i=a}return i}(g,A)}catch(C){throw C instanceof SA?new SA(Q,I,"!="):C}}function kQ(B,A){var g=Ca(B),I=B.slice(),Q=B.indexOf(-1);if(B.indexOf(-1,Q+1)>=0)throw new Error("More than one wildcard in sizes");if(Q>=0){if(A%g!=0)throw new Error("Could not replace wildcard, since "+A+" is no multiple of "+-g);I[Q]=-A/g}return I}function Ca(B){return B.reduce((A,g)=>A*g,1)}function Ea(B,A,g,I){var Q=I||Qg(B);if(g)for(var C=0;C<g;C++)B=[B],Q.unshift(1);for(B=aa(B,A,0);Q.length<A;)Q.push(1);return B}function aa(B,A,g){var I,Q;if(Array.isArray(B)){var C=g+1;for(I=0,Q=B.length;I<Q;I++)B[I]=aa(B[I],A,C)}else for(var E=g;E<A;E++)B=[B];return B}function UQ(B,A){for(var g,I=0,Q=0;Q<B.length;Q++){var C=B[Q],E=Array.isArray(C);if(Q===0&&E&&(I=C.length),E&&C.length!==I)return;var a=E?UQ(C,A):A(C);if(g===void 0)g=a;else if(g!==a)return"mixed"}return g}function ea(B,A,g,I){if(I<g){if(B.length!==A.length)throw new SA(B.length,A.length);for(var Q=[],C=0;C<B.length;C++)Q[C]=ea(B[C],A[C],g,I+1);return Q}return B.concat(A)}function et(){var B=Array.prototype.slice.call(arguments,0,-1),A=Array.prototype.slice.call(arguments,-1);if(B.length===1)return B[0];if(B.length>1)return B.slice(1).reduce(function(g,I){return ea(g,I,A,0)},B[0]);throw new Error("Wrong number of arguments in function concat")}function lC(B,A){for(var g=A.length,I=B.length,Q=0;Q<I;Q++){var C=g-I+Q;if(B[Q]<A[C]&&B[Q]>1||B[Q]>A[C])throw new Error("shape mismatch: mismatch is found in arg with shape (".concat(B,") not possible to broadcast dimension ").concat(I," with size ").concat(B[Q]," to size ").concat(A[C]))}}function fC(B,A){var g=Qg(B);if(pI(g,A))return B;lC(g,A);var I,Q,C,E=function(){for(var o=arguments.length,r=new Array(o),n=0;n<o;n++)r[n]=arguments[n];for(var s=r.map(U=>U.length),c=Math.max(...s),D=new Array(c).fill(null),b=0;b<r.length;b++)for(var h=r[b],w=s[b],f=0;f<w;f++){var p=c-w+f;h[f]>D[p]&&(D[p]=h[f])}for(var R=0;R<r.length;R++)lC(r[R],D);return D}(g,A),a=E.length,i=[...Array(a-g.length).fill(1),...g],t=function(o){return bB([],o)}(B);g.length<a&&(g=Qg(t=Qa(t,i)));for(var e=0;e<a;e++)g[e]<E[e]&&(I=t,Q=E[e],C=e,g=Qg(t=et(...Array(Q).fill(I),C)));return t}function ia(B,A){if(!Array.isArray(B))throw new Error("Array expected");var g=Qg(B);if(A.length!==g.length)throw new SA(A.length,g.length);for(var I=0;I<A.length;I++)xA(A[I],g[I]);return A.reduce((Q,C)=>Q[C],B)}function FC(B,A){var g=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(B.length===0)return[];if(g)return function Q(C){if(Array.isArray(C)){for(var E=C.length,a=Array(E),i=0;i<E;i++)a[i]=Q(C[i]);return a}return A(C)}(B);var I=[];return function Q(C,E){if(Array.isArray(C)){for(var a=C.length,i=Array(a),t=0;t<a;t++)I[E]=t,i[t]=Q(C[t],E+1);return i}return A(C,I.slice(0,E),B)}(B,0)}function MB(B,A,g){var I=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(lB.isTypedFunction(B)){var Q,C;if(I)Q=1;else{var E=(A.isMatrix?A.size():Qg(A)).map(()=>0),a=A.isMatrix?A.get(E):ia(A,E);Q=function(t,e,o,r){for(var n=[e,o,r],s=3;s>0;s--){var c=n.slice(0,s);if(lB.resolve(t,c)!==null)return s}}(B,a,E,A)}if(A.isMatrix&&A.dataType!=="mixed"&&A.dataType!==void 0){var i=function(t,e){var o=[];if(Object.entries(t.signatures).forEach(r=>{var[n,s]=r;n.split(",").length===e&&o.push(s)}),o.length===1)return o[0]}(B,Q);C=i!==void 0?i:B}else C=B;return Q>=1&&Q<=3?{isUnary:Q===1,fn:function(){for(var t=arguments.length,e=new Array(t),o=0;o<t;o++)e[o]=arguments[o];return yC(C,e.slice(0,Q),g,B.name)}}:{isUnary:!1,fn:function(){for(var t=arguments.length,e=new Array(t),o=0;o<t;o++)e[o]=arguments[o];return yC(C,e,g,B.name)}}}return I===void 0?{isUnary:it(B),fn:B}:{isUnary:I,fn:B}}function it(B){if(B.length!==1)return!1;var A=B.toString();if(/arguments/.test(A))return!1;var g=A.match(/\(.*?\)/);return!/\.\.\./.test(g)}function yC(B,A,g,I){try{return B(...A)}catch(Q){(function(C,E,a,i){var t;if(C instanceof TypeError&&((t=C.data)===null||t===void 0?void 0:t.category)==="wrongType"){var e=[];throw e.push("value: ".concat(_g(E[0]))),E.length>=2&&e.push("index: ".concat(_g(E[1]))),E.length>=3&&e.push("array: ".concat(_g(E[2]))),new TypeError("Function ".concat(a," cannot apply callback arguments ")+"".concat(i,"(").concat(e.join(", "),") at index ").concat(JSON.stringify(E[1])))}throw new TypeError("Function ".concat(a," cannot apply callback arguments ")+"to function ".concat(i,": ").concat(C.message))})(Q,A,g,I)}}SA.prototype=new RangeError,SA.prototype.constructor=RangeError,SA.prototype.name="DimensionError",SA.prototype.isDimensionError=!0,yI.prototype=new RangeError,yI.prototype.constructor=RangeError,yI.prototype.name="IndexError",yI.prototype.isIndexError=!0;var tt=wA("DenseMatrix",["Matrix"],B=>{var{Matrix:A}=B;function g(E,a){if(!(this instanceof g))throw new SyntaxError("Constructor must be called with the new operator");if(a&&!pg(a))throw new Error("Invalid datatype: "+a);if(qA(E))E.type==="DenseMatrix"?(this._data=jA(E._data),this._size=jA(E._size),this._datatype=a||E._datatype):(this._data=E.toArray(),this._size=E.size(),this._datatype=a||E._datatype);else if(E&&VA(E.data)&&VA(E.size))this._data=E.data,this._size=E.size,uC(this._data,this._size),this._datatype=a||E.datatype;else if(VA(E))this._data=C(E),this._size=Qg(this._data),uC(this._data,this._size),this._datatype=a;else{if(E)throw new TypeError("Unsupported type of data ("+_g(E)+")");this._data=[],this._size=[0],this._datatype=a}}function I(E,a,i){if(a.length===0){for(var t=E._data;VA(t);)t=t[0];return t}return E._size=a.slice(0),E._data=wQ(E._data,E._size,i),E}function Q(E,a,i){for(var t=E._size.slice(0),e=!1;t.length<a.length;)t.push(0),e=!0;for(var o=0,r=a.length;o<r;o++)a[o]>t[o]&&(t[o]=a[o],e=!0);e&&I(E,t,i)}function C(E){return qA(E)?C(E.valueOf()):VA(E)?E.map(C):E}return g.prototype=new A,g.prototype.createDenseMatrix=function(E,a){return new g(E,a)},Object.defineProperty(g,"name",{value:"DenseMatrix"}),g.prototype.constructor=g,g.prototype.type="DenseMatrix",g.prototype.isDenseMatrix=!0,g.prototype.getDataType=function(){return UQ(this._data,_g)},g.prototype.storage=function(){return"dense"},g.prototype.datatype=function(){return this._datatype},g.prototype.create=function(E,a){return new g(E,a)},g.prototype.subset=function(E,a,i){switch(arguments.length){case 1:return function(t,e){if(!RQ(e))throw new TypeError("Invalid index");var o=e.isScalar();if(o)return t.get(e.min());var r=e.size();if(r.length!==t._size.length)throw new SA(r.length,t._size.length);for(var n=e.min(),s=e.max(),c=0,D=t._size.length;c<D;c++)xA(n[c],t._size[c]),xA(s[c],t._size[c]);var b=new g([]),h=function(w,f){var p=f.size().length-1,R=Array(p);return{data:U(w),size:R};function U(G){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,J=f.dimension(k);return R[k]=J.size()[0],k<p?J.map(m=>(xA(m,G.length),U(G[m],k+1))).valueOf():J.map(m=>(xA(m,G.length),G[m])).valueOf()}}(t._data,e);return b._size=h.size,b._datatype=t._datatype,b._data=h.data,b}(this,E);case 2:case 3:return function(t,e,o,r){if(!e||e.isIndex!==!0)throw new TypeError("Invalid index");var n,s=e.size(),c=e.isScalar();if(qA(o)?(n=o.size(),o=o.valueOf()):n=Qg(o),c){if(n.length!==0)throw new TypeError("Scalar expected");t.set(e.min(),o,r)}else{if(!pI(n,s))try{n=Qg(o=n.length===0?fC([o],s):fC(o,s))}catch{}if(s.length<t._size.length)throw new SA(s.length,t._size.length,"<");if(n.length<s.length){for(var D=0,b=0;s[D]===1&&n[D]===1;)D++;for(;s[D]===1;)b++,D++;o=Ea(o,s.length,b,n)}if(!pI(s,n))throw new SA(s,n,">");var h=e.max().map(function(w){return w+1});Q(t,h,r),function(w,f,p){var R=f.size().length-1;function U(G,k){var J=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,m=f.dimension(J);J<R?m.forEach((O,X)=>{xA(O,G.length),U(G[O],k[X[0]],J+1)}):m.forEach((O,X)=>{xA(O,G.length),G[O]=k[X[0]]})}U(w,p)}(t._data,e,o)}return t}(this,E,a,i);default:throw new SyntaxError("Wrong number of arguments")}},g.prototype.get=function(E){return ia(this._data,E)},g.prototype.set=function(E,a,i){if(!VA(E))throw new TypeError("Array expected");if(E.length<this._size.length)throw new SA(E.length,this._size.length,"<");var t,e,o,r=E.map(function(s){return s+1});Q(this,r,i);var n=this._data;for(t=0,e=E.length-1;t<e;t++)xA(o=E[t],n.length),n=n[o];return xA(o=E[E.length-1],n.length),n[o]=a,this},g.prototype.resize=function(E,a,i){if(!wB(E))throw new TypeError("Array or Matrix expected");var t=E.valueOf().map(e=>Array.isArray(e)&&e.length===1?e[0]:e);return I(i?this.clone():this,t,a)},g.prototype.reshape=function(E,a){var i=a?this.clone():this;i._data=Qa(i._data,E);var t=i._size.reduce((e,o)=>e*o);return i._size=kQ(E,t),i},g.prototype.clone=function(){return new g({data:jA(this._data),size:jA(this._size),datatype:this._datatype})},g.prototype.size=function(){return this._size.slice(0)},g.prototype.map=function(E){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=this,t=i._size.length-1;if(t<0)return i.clone();var e=MB(E,i,"map",a),o=e.fn,r=i.create(void 0,i._datatype);if(r._size=i._size,a||e.isUnary)return r._data=function b(h){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,f=Array(h.length);if(w<t)for(var p=0;p<h.length;p++)f[p]=b(h[p],w+1);else for(var R=0;R<h.length;R++)f[R]=o(h[R]);return f}(i._data),r;if(t===0){for(var n=i.valueOf(),s=Array(n.length),c=0;c<n.length;c++)s[c]=o(n[c],[c],i);return r._data=s,r}var D=[];return r._data=function b(h){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,f=Array(h.length);if(w<t)for(var p=0;p<h.length;p++)D[w]=p,f[p]=b(h[p],w+1);else for(var R=0;R<h.length;R++)D[w]=R,f[R]=o(h[R],D.slice(),i);return f}(i._data),r},g.prototype.forEach=function(E){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=this,t=i._size.length-1;if(!(t<0)){var e=MB(E,i,"map",a),o=e.fn;if(a||e.isUnary)(function s(c){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(D<t)for(var b=0;b<c.length;b++)s(c[b],D+1);else for(var h=0;h<c.length;h++)o(c[h])})(i._data);else if(t!==0){var r=[];(function s(c){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(D<t)for(var b=0;b<c.length;b++)r[D]=b,s(c[b],D+1);else for(var h=0;h<c.length;h++)r[D]=h,o(c[h],r.slice(),i)})(i._data)}else for(var n=0;n<i._data.length;n++)o(i._data[n],[n],i)}},g.prototype[Symbol.iterator]=function*(){var E=this._size.length-1;if(!(E<0))if(E!==0)for(var a=Array(E+1).fill(0),i=this._size.reduce((s,c)=>s*c,1),t=0;t<i;t++){for(var e=this._data,o=0;o<E;o++)e=e[a[o]];yield{value:e[a[E]],index:a.slice()};for(var r=E;r>=0&&(a[r]++,!(a[r]<this._size[r]));r--)a[r]=0}else for(var n=0;n<this._data.length;n++)yield{value:this._data[n],index:[n]}},g.prototype.rows=function(){var E=[];if(this.size().length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var a=this._data;for(var i of a)E.push(new g([i],this._datatype));return E},g.prototype.columns=function(){var E=this,a=[],i=this.size();if(i.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var t=this._data,e=function(r){var n=t.map(s=>[s[r]]);a.push(new g(n,E._datatype))},o=0;o<i[1];o++)e(o);return a},g.prototype.toArray=function(){return jA(this._data)},g.prototype.valueOf=function(){return this._data},g.prototype.format=function(E){return OA(this._data,E)},g.prototype.toString=function(){return OA(this._data)},g.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},g.prototype.diagonal=function(E){if(E){if(WA(E)&&(E=E.toNumber()),!UA(E)||!YA(E))throw new TypeError("The parameter k must be an integer number")}else E=0;for(var a=E>0?E:0,i=E<0?-E:0,t=this._size[0],e=this._size[1],o=Math.min(t-i,e-a),r=[],n=0;n<o;n++)r[n]=this._data[n+i][n+a];return new g({data:r,size:[o],datatype:this._datatype})},g.diagonal=function(E,a,i,t){if(!VA(E))throw new TypeError("Array expected, size parameter");if(E.length!==2)throw new Error("Only two dimensions matrix are supported");if(E=E.map(function(w){if(WA(w)&&(w=w.toNumber()),!UA(w)||!YA(w)||w<1)throw new Error("Size values must be positive integers");return w}),i){if(WA(i)&&(i=i.toNumber()),!UA(i)||!YA(i))throw new TypeError("The parameter k must be an integer number")}else i=0;var e,o=i>0?i:0,r=i<0?-i:0,n=E[0],s=E[1],c=Math.min(n-r,s-o);if(VA(a)){if(a.length!==c)throw new Error("Invalid value array length");e=function(w){return a[w]}}else if(qA(a)){var D=a.size();if(D.length!==1||D[0]!==c)throw new Error("Invalid matrix length");e=function(w){return a.get([w])}}else e=function(){return a};t||(t=WA(e(0))?e(0).mul(0):0);var b=[];if(E.length>0){b=wQ(b,E,t);for(var h=0;h<c;h++)b[h+r][h+o]=e(h)}return new g({data:b,size:[n,s]})},g.fromJSON=function(E){return new g(E)},g.prototype.swapRows=function(E,a){if(!(UA(E)&&YA(E)&&UA(a)&&YA(a)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return xA(E,this._size[0]),xA(a,this._size[0]),g._swapRows(E,a,this._data),this},g._swapRows=function(E,a,i){var t=i[E];i[E]=i[a],i[a]=t},g},{isClass:!0});function tI(B,A,g){if(!g)return qA(B)?B.map(Q=>A(Q),!1,!0):FC(B,A,!0);var I=Q=>Q===0?Q:A(Q);return qA(B)?B.map(Q=>I(Q),!1,!0):FC(B,I,!0)}var MC="number",aB="number, number";function ta(B){return Math.abs(B)}function oa(B,A){return B+A}function na(B,A){return B-A}function ra(B,A){return B*A}function sa(B){return-B}function ca(B,A){return B*B<1&&A===1/0||B*B>1&&A===-1/0?0:Math.pow(B,A)}function lQ(B,A){if(A<B)return 1;if(A===B)return A;var g=A+B>>1;return lQ(B,g)*lQ(g+1,A)}function GB(B){var A;if(YA(B))return B<=0?isFinite(B)?1/0:NaN:B>171?1/0:lQ(1,B-1);if(B<.5)return Math.PI/(Math.sin(Math.PI*B)*GB(1-B));if(B>=171.35)return 1/0;if(B>85){var g=B*B,I=g*B,Q=I*B,C=Q*B;return Math.sqrt(2*Math.PI/B)*Math.pow(B/Math.E,B)*(1+1/(12*B)+1/(288*g)-139/(51840*I)-571/(2488320*Q)+163879/(209018880*C)+5246819/(75246796800*C*B))}--B,A=GI[0];for(var E=1;E<GI.length;++E)A+=GI[E]/(B+E);var a=B+ha+.5;return Math.sqrt(2*Math.PI)*Math.pow(a,B+.5)*Math.exp(-a)*A}ta.signature=MC,oa.signature=aB,na.signature=aB,ra.signature=aB,sa.signature=MC,ca.signature=aB,GB.signature="number";var ha=4.7421875,GI=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],GC="isZero",ot=wA(GC,["typed","equalScalar"],B=>{var{typed:A,equalScalar:g}=B;return A(GC,{"number | BigNumber | Complex | Fraction":I=>g(I,0),bigint:I=>I===0n,Unit:A.referToSelf(I=>Q=>A.find(I,Q.valueType())(Q.value)),"Array | Matrix":A.referToSelf(I=>Q=>tI(Q,I))})}),nt=wA("compareUnits",["typed"],B=>{var{typed:A}=B;return{"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(!I.equalBase(Q))throw new Error("Cannot compare units with different base");return A.find(g,[I.valueType(),Q.valueType()])(I.value,Q.value)})}}),RB="equalScalar",rt=wA(RB,["typed","config"],B=>{var{typed:A,config:g}=B,I=nt({typed:A});return A(RB,{"boolean, boolean":function(Q,C){return Q===C},"number, number":function(Q,C){return cB(Q,C,g.relTol,g.absTol)},"BigNumber, BigNumber":function(Q,C){return Q.eq(C)||function(E,a){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(i<=0)throw new Error("Relative tolerance must be greater than 0");if(t<0)throw new Error("Absolute tolerance must be at least 0");return!E.isNaN()&&!a.isNaN()&&(E.isFinite()&&a.isFinite()?!!E.eq(a)||E.minus(a).abs().lte(E.constructor.max(E.constructor.max(E.abs(),a.abs()).mul(i),t)):E.eq(a))}(Q,C,g.relTol,g.absTol)},"bigint, bigint":function(Q,C){return Q===C},"Fraction, Fraction":function(Q,C){return Q.equals(C)},"Complex, Complex":function(Q,C){return function(E,a,i,t){return cB(E.re,a.re,i,t)&&cB(E.im,a.im,i,t)}(Q,C,g.relTol,g.absTol)}},I)});wA(RB,["typed","config"],B=>{var{typed:A,config:g}=B;return A(RB,{"number, number":function(I,Q){return cB(I,Q,g.relTol,g.absTol)}})});var st=wA("SparseMatrix",["typed","equalScalar","Matrix"],B=>{var{typed:A,equalScalar:g,Matrix:I}=B;function Q(e,o){if(!(this instanceof Q))throw new SyntaxError("Constructor must be called with the new operator");if(o&&!pg(o))throw new Error("Invalid datatype: "+o);if(qA(e))(function(r,n,s){n.type==="SparseMatrix"?(r._values=n._values?jA(n._values):void 0,r._index=jA(n._index),r._ptr=jA(n._ptr),r._size=jA(n._size),r._datatype=s||n._datatype):C(r,n.valueOf(),s||n._datatype)})(this,e,o);else if(e&&VA(e.index)&&VA(e.ptr)&&VA(e.size))this._values=e.values,this._index=e.index,this._ptr=e.ptr,this._size=e.size,this._datatype=o||e.datatype;else if(VA(e))C(this,e,o);else{if(e)throw new TypeError("Unsupported type of data ("+_g(e)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=o}}function C(e,o,r){e._values=[],e._index=[],e._ptr=[],e._datatype=r;var n=o.length,s=0,c=g,D=0;if(pg(r)&&(c=A.find(g,[r,r])||g,D=A.convert(0,r)),n>0){var b=0;do{e._ptr.push(e._index.length);for(var h=0;h<n;h++){var w=o[h];if(VA(w)){if(b===0&&s<w.length&&(s=w.length),b<w.length){var f=w[b];c(f,D)||(e._values.push(f),e._index.push(h))}}else b===0&&s<1&&(s=1),c(w,D)||(e._values.push(w),e._index.push(h))}b++}while(b<s)}e._ptr.push(e._index.length),e._size=[n,s]}function E(e,o,r,n){if(r-o==0)return r;for(var s=o;s<r;s++)if(n[s]===e)return s;return o}function a(e,o,r,n,s,c,D){s.splice(e,0,n),c.splice(e,0,o);for(var b=r+1;b<D.length;b++)D[b]++}function i(e,o,r,n){var s=n||0,c=g,D=0;pg(e._datatype)&&(c=A.find(g,[e._datatype,e._datatype])||g,D=A.convert(0,e._datatype),s=A.convert(s,e._datatype));var b,h,w,f=!c(s,D),p=e._size[0],R=e._size[1];if(r>R){for(h=R;h<r;h++)if(e._ptr[h]=e._values.length,f)for(b=0;b<p;b++)e._values.push(s),e._index.push(b);e._ptr[r]=e._values.length}else r<R&&(e._ptr.splice(r+1,R-r),e._values.splice(e._ptr[r],e._values.length),e._index.splice(e._ptr[r],e._index.length));if(R=r,o>p){if(f){var U=0;for(h=0;h<R;h++){e._ptr[h]=e._ptr[h]+U,w=e._ptr[h+1]+U;var G=0;for(b=p;b<o;b++,G++)e._values.splice(w+G,0,s),e._index.splice(w+G,0,b),U++}e._ptr[R]=e._values.length}}else if(o<p){var k=0;for(h=0;h<R;h++){e._ptr[h]=e._ptr[h]-k;var J=e._ptr[h],m=e._ptr[h+1]-k;for(w=J;w<m;w++)(b=e._index[w])>o-1&&(e._values.splice(w,1),e._index.splice(w,1),k++)}e._ptr[h]=e._values.length}return e._size[0]=o,e._size[1]=r,e}function t(e,o,r,n,s){var c,D,b=n[0],h=n[1],w=[];for(c=0;c<b;c++)for(w[c]=[],D=0;D<h;D++)w[c][D]=0;for(D=0;D<h;D++)for(var f=r[D],p=r[D+1],R=f;R<p;R++)w[c=o[R]][D]=e?s?jA(e[R]):e[R]:1;return w}return Q.prototype=new I,Q.prototype.createSparseMatrix=function(e,o){return new Q(e,o)},Object.defineProperty(Q,"name",{value:"SparseMatrix"}),Q.prototype.constructor=Q,Q.prototype.type="SparseMatrix",Q.prototype.isSparseMatrix=!0,Q.prototype.getDataType=function(){return UQ(this._values,_g)},Q.prototype.storage=function(){return"sparse"},Q.prototype.datatype=function(){return this._datatype},Q.prototype.create=function(e,o){return new Q(e,o)},Q.prototype.density=function(){var e=this._size[0],o=this._size[1];return e!==0&&o!==0?this._index.length/(e*o):0},Q.prototype.subset=function(e,o,r){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return function(n,s){if(!RQ(s))throw new TypeError("Invalid index");if(s.isScalar())return n.get(s.min());var c,D,b,h,w=s.size();if(w.length!==n._size.length)throw new SA(w.length,n._size.length);var f=s.min(),p=s.max();for(c=0,D=n._size.length;c<D;c++)xA(f[c],n._size[c]),xA(p[c],n._size[c]);var R=n._values,U=n._index,G=n._ptr,k=s.dimension(0),J=s.dimension(1),m=[],O=[];k.forEach(function(Z,aA){O[Z]=aA[0],m[Z]=!0});var X=R?[]:void 0,IA=[],AA=[];return J.forEach(function(Z){for(AA.push(IA.length),b=G[Z],h=G[Z+1];b<h;b++)c=U[b],m[c]===!0&&(IA.push(O[c]),X&&X.push(R[b]))}),AA.push(IA.length),new Q({values:X,index:IA,ptr:AA,size:w,datatype:n._datatype})}(this,e);case 2:case 3:return function(n,s,c,D){if(!s||s.isIndex!==!0)throw new TypeError("Invalid index");var b,h=s.size(),w=s.isScalar();if(qA(c)?(b=c.size(),c=c.toArray()):b=Qg(c),w){if(b.length!==0)throw new TypeError("Scalar expected");n.set(s.min(),c,D)}else{if(h.length!==1&&h.length!==2)throw new SA(h.length,n._size.length,"<");if(b.length<h.length){for(var f=0,p=0;h[f]===1&&b[f]===1;)f++;for(;h[f]===1;)p++,f++;c=Ea(c,h.length,p,b)}if(!pI(h,b))throw new SA(h,b,">");if(h.length===1)s.dimension(0).forEach(function(G,k){xA(G),n.set([G,0],c[k[0]],D)});else{var R=s.dimension(0),U=s.dimension(1);R.forEach(function(G,k){xA(G),U.forEach(function(J,m){xA(J),n.set([G,J],c[k[0]][m[0]],D)})})}}return n}(this,e,o,r);default:throw new SyntaxError("Wrong number of arguments")}},Q.prototype.get=function(e){if(!VA(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new SA(e.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var o=e[0],r=e[1];xA(o,this._size[0]),xA(r,this._size[1]);var n=E(o,this._ptr[r],this._ptr[r+1],this._index);return n<this._ptr[r+1]&&this._index[n]===o?this._values[n]:0},Q.prototype.set=function(e,o,r){if(!VA(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new SA(e.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var n=e[0],s=e[1],c=this._size[0],D=this._size[1],b=g,h=0;pg(this._datatype)&&(b=A.find(g,[this._datatype,this._datatype])||g,h=A.convert(0,this._datatype)),(n>c-1||s>D-1)&&(i(this,Math.max(n+1,c),Math.max(s+1,D),r),c=this._size[0],D=this._size[1]),xA(n,c),xA(s,D);var w=E(n,this._ptr[s],this._ptr[s+1],this._index);return w<this._ptr[s+1]&&this._index[w]===n?b(o,h)?function(f,p,R,U,G){R.splice(f,1),U.splice(f,1);for(var k=p+1;k<G.length;k++)G[k]--}(w,s,this._values,this._index,this._ptr):this._values[w]=o:b(o,h)||a(w,n,s,o,this._values,this._index,this._ptr),this},Q.prototype.resize=function(e,o,r){if(!wB(e))throw new TypeError("Array or Matrix expected");var n=e.valueOf().map(s=>Array.isArray(s)&&s.length===1?s[0]:s);if(n.length!==2)throw new Error("Only two dimensions matrix are supported");return n.forEach(function(s){if(!UA(s)||!YA(s)||s<0)throw new TypeError("Invalid size, must contain positive integers (size: "+OA(n)+")")}),i(r?this.clone():this,n[0],n[1],o)},Q.prototype.reshape=function(e,o){if(!VA(e))throw new TypeError("Array expected");if(e.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");e.forEach(function(O){if(!UA(O)||!YA(O)||O<=-2||O===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+OA(e)+")")});var r=this._size[0]*this._size[1];if(r!==(e=kQ(e,r))[0]*e[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var n=o?this.clone():this;if(this._size[0]===e[0]&&this._size[1]===e[1])return n;for(var s=[],c=0;c<n._ptr.length;c++)for(var D=0;D<n._ptr[c+1]-n._ptr[c];D++)s.push(c);for(var b=n._values.slice(),h=n._index.slice(),w=0;w<n._index.length;w++){var f=h[w],p=s[w],R=f*n._size[1]+p;s[w]=R%e[1],h[w]=Math.floor(R/e[1])}n._values.length=0,n._index.length=0,n._ptr.length=e[1]+1,n._size=e.slice();for(var U=0;U<n._ptr.length;U++)n._ptr[U]=0;for(var G=0;G<b.length;G++){var k=h[G],J=s[G],m=b[G];a(E(k,n._ptr[J],n._ptr[J+1],n._index),k,J,m,n._values,n._index,n._ptr)}return n},Q.prototype.clone=function(){return new Q({values:this._values?jA(this._values):void 0,index:jA(this._index),ptr:jA(this._ptr),size:jA(this._size),datatype:this._datatype})},Q.prototype.size=function(){return this._size.slice(0)},Q.prototype.map=function(e,o){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var r=this,n=this._size[0],s=this._size[1],c=MB(e,r,"map");return function(D,b,h,w,f,p,R){var U=[],G=[],k=[],J=g,m=0;pg(D._datatype)&&(J=A.find(g,[D._datatype,D._datatype])||g,m=A.convert(0,D._datatype));for(var O=function(lA,eA,pA){var hA=p(lA,eA,pA);J(hA,m)||(U.push(hA),G.push(eA))},X=w;X<=f;X++){k.push(U.length);var IA=D._ptr[X],AA=D._ptr[X+1];if(R)for(var Z=IA;Z<AA;Z++){var aA=D._index[Z];aA>=b&&aA<=h&&O(D._values[Z],aA-b,X-w)}else{for(var uA={},nA=IA;nA<AA;nA++)uA[D._index[nA]]=D._values[nA];for(var MA=b;MA<=h;MA++)O(MA in uA?uA[MA]:0,MA-b,X-w)}}return k.push(U.length),new Q({values:U,index:G,ptr:k,size:[h-b+1,f-w+1]})}(this,0,n-1,0,s-1,function(D,b,h){return c.fn(D,[b,h],r)},o)},Q.prototype.forEach=function(e,o){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var r=this,n=this._size[0],s=this._size[1],c=MB(e,r,"forEach"),D=0;D<s;D++){var b=this._ptr[D],h=this._ptr[D+1];if(o)for(var w=b;w<h;w++){var f=this._index[w];c.fn(this._values[w],[f,D],r)}else{for(var p={},R=b;R<h;R++)p[this._index[R]]=this._values[R];for(var U=0;U<n;U++){var G=U in p?p[U]:0;c.fn(G,[U,D],r)}}}},Q.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var e=this._size[1],o=0;o<e;o++)for(var r=this._ptr[o],n=this._ptr[o+1],s=r;s<n;s++){var c=this._index[s];yield{value:this._values[s],index:[c,o]}}},Q.prototype.toArray=function(){return t(this._values,this._index,this._ptr,this._size,!0)},Q.prototype.valueOf=function(){return t(this._values,this._index,this._ptr,this._size,!1)},Q.prototype.format=function(e){for(var o=this._size[0],r=this._size[1],n=this.density(),s="Sparse Matrix ["+OA(o,e)+" x "+OA(r,e)+"] density: "+OA(n,e)+`
|
|
913
913
|
`,c=0;c<r;c++)for(var D=this._ptr[c],b=this._ptr[c+1],h=D;h<b;h++)s+=`
|
|
914
|
-
(`+OA(this._index[h],e)+", "+OA(c,e)+") ==> "+(this._values?OA(this._values[h],e):"X");return s},Q.prototype.toString=function(){return OA(this.toArray())},Q.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},Q.prototype.diagonal=function(e){if(e){if(WA(e)&&(e=e.toNumber()),!UA(e)||!YA(e))throw new TypeError("The parameter k must be an integer number")}else e=0;var o=e>0?e:0,r=e<0?-e:0,n=this._size[0],s=this._size[1],c=Math.min(n-r,s-o),D=[],b=[],h=[];h[0]=0;for(var w=o;w<s&&D.length<c;w++)for(var f=this._ptr[w],p=this._ptr[w+1],R=f;R<p;R++){var U=this._index[R];if(U===w-o+r){D.push(this._values[R]),b[D.length-1]=U-r;break}}return h.push(D.length),new Q({values:D,index:b,ptr:h,size:[c,1]})},Q.fromJSON=function(e){return new Q(e)},Q.diagonal=function(e,o,r,n,s){if(!VA(e))throw new TypeError("Array expected, size parameter");if(e.length!==2)throw new Error("Only two dimensions matrix are supported");if(e=e.map(function(IA){if(WA(IA)&&(IA=IA.toNumber()),!UA(IA)||!YA(IA)||IA<1)throw new Error("Size values must be positive integers");return IA}),r){if(WA(r)&&(r=r.toNumber()),!UA(r)||!YA(r))throw new TypeError("The parameter k must be an integer number")}else r=0;var c=g,D=0;pg(s)&&(c=A.find(g,[s,s])||g,D=A.convert(0,s));var b,h=r>0?r:0,w=r<0?-r:0,f=e[0],p=e[1],R=Math.min(f-w,p-h);if(VA(o)){if(o.length!==R)throw new Error("Invalid value array length");b=function(IA){return o[IA]}}else if(qA(o)){var U=o.size();if(U.length!==1||U[0]!==R)throw new Error("Invalid matrix length");b=function(IA){return o.get([IA])}}else b=function(){return o};for(var G=[],k=[],J=[],m=0;m<p;m++){J.push(G.length);var O=m-h;if(O>=0&&O<R){var X=b(O);c(X,D)||(k.push(O+w),G.push(X))}}return J.push(G.length),new Q({values:G,index:k,ptr:J,size:[f,p]})},Q.prototype.swapRows=function(e,o){if(!(UA(e)&&YA(e)&&UA(o)&&YA(o)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return xA(e,this._size[0]),xA(o,this._size[0]),Q._swapRows(e,o,this._size[1],this._values,this._index,this._ptr),this},Q._forEachRow=function(e,o,r,n,s){for(var c=n[e],D=n[e+1],b=c;b<D;b++)s(r[b],o[b])},Q._swapRows=function(e,o,r,n,s,c){for(var D=0;D<r;D++){var b=c[D],h=c[D+1],w=E(e,b,h,s),f=E(o,b,h,s);if(w<h&&f<h&&s[w]===e&&s[f]===o){if(n){var p=n[w];n[w]=n[f],n[f]=p}}else if(w<h&&s[w]===e&&(f>=h||s[f]!==o)){var R=n?n[w]:void 0;s.splice(f,0,o),n&&n.splice(f,0,R),s.splice(f<=w?w+1:w,1),n&&n.splice(f<=w?w+1:w,1)}else if(f<h&&s[f]===o&&(w>=h||s[w]!==e)){var U=n?n[f]:void 0;s.splice(w,0,e),n&&n.splice(w,0,U),s.splice(w<=f?f+1:f,1),n&&n.splice(w<=f?f+1:f,1)}}},Q},{isClass:!0}),ct=wA("number",["typed"],B=>{var{typed:A}=B,g=A("number",{"":function(){return 0},number:function(I){return I},string:function(I){if(I==="NaN")return NaN;var Q,C,E=(C=(Q=I).match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/))?{input:Q,radix:{"0b":2,"0o":8,"0x":16}[C[1]],integerPart:C[2],fractionalPart:C[3]}:null;if(E)return function(e){for(var o=parseInt(e.integerPart,e.radix),r=0,n=0;n<e.fractionalPart.length;n++)r+=parseInt(e.fractionalPart[n],e.radix)/Math.pow(e.radix,n+1);var s=o+r;if(isNaN(s))throw new SyntaxError('String "'+e.input+'" is not a valid number');return s}(E);var a=0,i=I.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);i&&(a=Number(i[2]),I=i[1]);var t=Number(I);if(isNaN(t))throw new SyntaxError('String "'+I+'" is not a valid number');if(i){if(t>2**a-1)throw new SyntaxError('String "'.concat(I,'" is out of range'));t>=2**(a-1)&&(t-=2**a)}return t},BigNumber:function(I){return I.toNumber()},bigint:function(I){return Number(I)},Fraction:function(I){return I.valueOf()},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),null:function(I){return 0},"Unit, string | Unit":function(I,Q){return I.toNumber(Q)},"Array | Matrix":A.referToSelf(I=>Q=>tI(Q,I))});return g.fromJSON=function(I){return parseFloat(I.value)},g}),ht=wA("bignumber",["typed","BigNumber"],B=>{var{typed:A,BigNumber:g}=B;return A("bignumber",{"":function(){return new g(0)},number:function(I){return new g(I+"")},string:function(I){var Q=I.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(Q){var C=Q[2],E=g(Q[1]),a=new g(2).pow(Number(C));if(E.gt(a.sub(1)))throw new SyntaxError('String "'.concat(I,'" is out of range'));var i=new g(2).pow(Number(C)-1);return E.gte(i)?E.sub(a):E}return new g(I)},BigNumber:function(I){return I},bigint:function(I){return new g(I.toString())},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),Fraction:function(I){return new g(String(I.n)).div(String(I.d)).times(String(I.s))},null:function(I){return new g(0)},"Array | Matrix":A.referToSelf(I=>Q=>tI(Q,I))})}),Dt=wA("fraction",["typed","Fraction"],B=>{var{typed:A,Fraction:g}=B;return A("fraction",{number:function(I){if(!isFinite(I)||isNaN(I))throw new Error(I+" cannot be represented as a fraction");return new g(I)},string:function(I){return new g(I)},"number, number":function(I,Q){return new g(I,Q)},"bigint, bigint":function(I,Q){return new g(I,Q)},null:function(I){return new g(0)},BigNumber:function(I){return new g(I.toString())},bigint:function(I){return new g(I.toString())},Fraction:function(I){return I},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),Object:function(I){return new g(I)},"Array | Matrix":A.referToSelf(I=>Q=>tI(Q,I))})}),RC="matrix",dt=wA(RC,["typed","Matrix","DenseMatrix","SparseMatrix"],B=>{var{typed:A,Matrix:g,DenseMatrix:I,SparseMatrix:Q}=B;return A(RC,{"":function(){return C([])},string:function(E){return C([],E)},"string, string":function(E,a){return C([],E,a)},Array:function(E){return C(E)},Matrix:function(E){return C(E,E.storage())},"Array | Matrix, string":C,"Array | Matrix, string, string":C});function C(E,a,i){if(a==="dense"||a==="default"||a===void 0)return new I(E,i);if(a==="sparse")return new Q(E,i);throw new TypeError("Unknown matrix type "+JSON.stringify(a)+".")}}),pC="unaryMinus",bt=wA(pC,["typed"],B=>{var{typed:A}=B;return A(pC,{number:sa,"Complex | BigNumber | Fraction":g=>g.neg(),bigint:g=>-g,Unit:A.referToSelf(g=>I=>{var Q=I.clone();return Q.value=A.find(g,Q.valueType())(I.value),Q}),"Array | Matrix":A.referToSelf(g=>I=>tI(I,g,!0))})}),wt=wA("abs",["typed"],B=>{var{typed:A}=B;return A("abs",{number:ta,"Complex | BigNumber | Fraction | Unit":g=>g.abs(),bigint:g=>g<0n?-g:g,"Array | Matrix":A.referToSelf(g=>I=>tI(I,g,!0))})}),NC="addScalar",ut=wA(NC,["typed"],B=>{var{typed:A}=B;return A(NC,{"number, number":oa,"Complex, Complex":function(g,I){return g.add(I)},"BigNumber, BigNumber":function(g,I){return g.plus(I)},"bigint, bigint":function(g,I){return g+I},"Fraction, Fraction":function(g,I){return g.add(I)},"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(I.value===null||I.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(Q.value===null||Q.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!I.equalBase(Q))throw new Error("Units do not match");var C=I.clone();return C.value=A.find(g,[C.valueType(),Q.valueType()])(C.value,Q.value),C.fixPrefix=!1,C})})}),kC="subtractScalar",lt=wA(kC,["typed"],B=>{var{typed:A}=B;return A(kC,{"number, number":na,"Complex, Complex":function(g,I){return g.sub(I)},"BigNumber, BigNumber":function(g,I){return g.minus(I)},"bigint, bigint":function(g,I){return g-I},"Fraction, Fraction":function(g,I){return g.sub(I)},"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(I.value===null||I.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(Q.value===null||Q.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!I.equalBase(Q))throw new Error("Units do not match");var C=I.clone();return C.value=A.find(g,[C.valueType(),Q.valueType()])(C.value,Q.value),C.fixPrefix=!1,C})})}),ft=wA("matAlgo11xS0s",["typed","equalScalar"],B=>{var{typed:A,equalScalar:g}=B;return function(I,Q,C,E){var a=I._values,i=I._index,t=I._ptr,e=I._size,o=I._datatype;if(!a)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var r,n=e[0],s=e[1],c=g,D=0,b=C;typeof o=="string"&&(r=o,c=A.find(g,[r,r]),D=A.convert(0,r),Q=A.convert(Q,r),b=A.find(C,[r,r]));for(var h=[],w=[],f=[],p=0;p<s;p++){f[p]=w.length;for(var R=t[p],U=t[p+1],G=R;G<U;G++){var k=i[G],J=E?b(Q,a[G]):b(a[G],Q);c(J,D)||(w.push(k),h.push(J))}}return f[s]=w.length,I.createSparseMatrix({values:h,index:w,ptr:f,size:[n,s],datatype:r})}}),Ft=wA("matAlgo14xDs",["typed"],B=>{var{typed:A}=B;return function(I,Q,C,E){var a,i=I._data,t=I._size,e=I._datatype,o=C;typeof e=="string"&&(a=e,Q=A.convert(Q,a),o=A.find(C,[a,a]));var r=t.length>0?g(o,0,t,t[0],i,Q,E):[];return I.createDenseMatrix({data:r,size:jA(t),datatype:a})};function g(I,Q,C,E,a,i,t){var e=[];if(Q===C.length-1)for(var o=0;o<E;o++)e[o]=t?I(i,a[o]):I(a[o],i);else for(var r=0;r<E;r++)e[r]=g(I,Q+1,C,C[Q+1],a[r],i,t);return e}}),yt=wA("multiplyScalar",["typed"],B=>{var{typed:A}=B;return A("multiplyScalar",{"number, number":ra,"Complex, Complex":function(g,I){return g.mul(I)},"BigNumber, BigNumber":function(g,I){return g.times(I)},"bigint, bigint":function(g,I){return g*I},"Fraction, Fraction":function(g,I){return g.mul(I)},"number | Fraction | BigNumber | Complex, Unit":(g,I)=>I.multiply(g),"Unit, number | Fraction | BigNumber | Complex | Unit":(g,I)=>g.multiply(I)})}),UC="multiply",Mt=wA(UC,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],B=>{var{typed:A,matrix:g,addScalar:I,multiplyScalar:Q,equalScalar:C,dot:E}=B,a=ft({typed:A,equalScalar:C}),i=Ft({typed:A});function t(n,s){switch(n.length){case 1:switch(s.length){case 1:if(n[0]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(n[0]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+n[0]+") must match Matrix rows ("+s[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+s.length+" dimensions)")}break;case 2:switch(s.length){case 1:if(n[1]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+n[1]+") must match Vector length ("+s[0]+")");break;case 2:if(n[1]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+n[1]+") must match Matrix B rows ("+s[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+s.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+n.length+" dimensions)")}}function e(n,s){if(s.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return function(c,D){var b,h=c._data,w=c._size,f=c._datatype||c.getDataType(),p=D._data,R=D._size,U=D._datatype||D.getDataType(),G=w[0],k=R[1],J=I,m=Q;f&&U&&f===U&&typeof f=="string"&&f!=="mixed"&&(b=f,J=A.find(I,[b,b]),m=A.find(Q,[b,b]));for(var O=[],X=0;X<k;X++){for(var IA=m(h[0],p[0][X]),AA=1;AA<G;AA++)IA=J(IA,m(h[AA],p[AA][X]));O[X]=IA}return c.createDenseMatrix({data:O,size:[k],datatype:f===c._datatype&&U===D._datatype?b:void 0})}(n,s)}var o=A("_multiplyMatrixVector",{"DenseMatrix, any":function(n,s){var c,D=n._data,b=n._size,h=n._datatype||n.getDataType(),w=s._data,f=s._datatype||s.getDataType(),p=b[0],R=b[1],U=I,G=Q;h&&f&&h===f&&typeof h=="string"&&h!=="mixed"&&(c=h,U=A.find(I,[c,c]),G=A.find(Q,[c,c]));for(var k=[],J=0;J<p;J++){for(var m=D[J],O=G(m[0],w[0]),X=1;X<R;X++)O=U(O,G(m[X],w[X]));k[J]=O}return n.createDenseMatrix({data:k,size:[p],datatype:h===n._datatype&&f===s._datatype?c:void 0})},"SparseMatrix, any":function(n,s){var c=n._values,D=n._index,b=n._ptr,h=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var w,f=s._data,p=s._datatype||s.getDataType(),R=n._size[0],U=s._size[0],G=[],k=[],J=[],m=I,O=Q,X=C,IA=0;h&&p&&h===p&&typeof h=="string"&&h!=="mixed"&&(w=h,m=A.find(I,[w,w]),O=A.find(Q,[w,w]),X=A.find(C,[w,w]),IA=A.convert(0,w));var AA=[],Z=[];J[0]=0;for(var aA=0;aA<U;aA++){var uA=f[aA];if(!X(uA,IA))for(var nA=b[aA],MA=b[aA+1],lA=nA;lA<MA;lA++){var eA=D[lA];Z[eA]?AA[eA]=m(AA[eA],O(uA,c[lA])):(Z[eA]=!0,k.push(eA),AA[eA]=O(uA,c[lA]))}}for(var pA=k.length,hA=0;hA<pA;hA++){var bA=k[hA];G[hA]=AA[bA]}return J[1]=k.length,n.createSparseMatrix({values:G,index:k,ptr:J,size:[R,1],datatype:h===n._datatype&&p===s._datatype?w:void 0})}}),r=A("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(n,s){var c,D=n._data,b=n._size,h=n._datatype||n.getDataType(),w=s._data,f=s._size,p=s._datatype||s.getDataType(),R=b[0],U=b[1],G=f[1],k=I,J=Q;h&&p&&h===p&&typeof h=="string"&&h!=="mixed"&&h!=="mixed"&&(c=h,k=A.find(I,[c,c]),J=A.find(Q,[c,c]));for(var m=[],O=0;O<R;O++){var X=D[O];m[O]=[];for(var IA=0;IA<G;IA++){for(var AA=J(X[0],w[0][IA]),Z=1;Z<U;Z++)AA=k(AA,J(X[Z],w[Z][IA]));m[O][IA]=AA}}return n.createDenseMatrix({data:m,size:[R,G],datatype:h===n._datatype&&p===s._datatype?c:void 0})},"DenseMatrix, SparseMatrix":function(n,s){var c=n._data,D=n._size,b=n._datatype||n.getDataType(),h=s._values,w=s._index,f=s._ptr,p=s._size,R=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(!h)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var U,G=D[0],k=p[1],J=I,m=Q,O=C,X=0;b&&R&&b===R&&typeof b=="string"&&b!=="mixed"&&(U=b,J=A.find(I,[U,U]),m=A.find(Q,[U,U]),O=A.find(C,[U,U]),X=A.convert(0,U));for(var IA=[],AA=[],Z=[],aA=s.createSparseMatrix({values:IA,index:AA,ptr:Z,size:[G,k],datatype:b===n._datatype&&R===s._datatype?U:void 0}),uA=0;uA<k;uA++){Z[uA]=AA.length;var nA=f[uA],MA=f[uA+1];if(MA>nA)for(var lA=0,eA=0;eA<G;eA++){for(var pA=eA+1,hA=void 0,bA=nA;bA<MA;bA++){var fA=w[bA];lA!==pA?(hA=m(c[eA][fA],h[bA]),lA=pA):hA=J(hA,m(c[eA][fA],h[bA]))}lA!==pA||O(hA,X)||(AA.push(eA),IA.push(hA))}}return Z[k]=AA.length,aA},"SparseMatrix, DenseMatrix":function(n,s){var c=n._values,D=n._index,b=n._ptr,h=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var w,f=s._data,p=s._datatype||s.getDataType(),R=n._size[0],U=s._size[0],G=s._size[1],k=I,J=Q,m=C,O=0;h&&p&&h===p&&typeof h=="string"&&h!=="mixed"&&(w=h,k=A.find(I,[w,w]),J=A.find(Q,[w,w]),m=A.find(C,[w,w]),O=A.convert(0,w));for(var X=[],IA=[],AA=[],Z=n.createSparseMatrix({values:X,index:IA,ptr:AA,size:[R,G],datatype:h===n._datatype&&p===s._datatype?w:void 0}),aA=[],uA=[],nA=0;nA<G;nA++){AA[nA]=IA.length;for(var MA=nA+1,lA=0;lA<U;lA++){var eA=f[lA][nA];if(!m(eA,O))for(var pA=b[lA],hA=b[lA+1],bA=pA;bA<hA;bA++){var fA=D[bA];uA[fA]!==MA?(uA[fA]=MA,IA.push(fA),aA[fA]=J(eA,c[bA])):aA[fA]=k(aA[fA],J(eA,c[bA]))}}for(var GA=AA[nA],tA=IA.length,rA=GA;rA<tA;rA++){var LA=IA[rA];X[rA]=aA[LA]}}return AA[G]=IA.length,Z},"SparseMatrix, SparseMatrix":function(n,s){var c,D=n._values,b=n._index,h=n._ptr,w=n._datatype||n._data===void 0?n._datatype:n.getDataType(),f=s._values,p=s._index,R=s._ptr,U=s._datatype||s._data===void 0?s._datatype:s.getDataType(),G=n._size[0],k=s._size[1],J=D&&f,m=I,O=Q;w&&U&&w===U&&typeof w=="string"&&w!=="mixed"&&(c=w,m=A.find(I,[c,c]),O=A.find(Q,[c,c]));for(var X,IA,AA,Z,aA,uA,nA,MA,lA=J?[]:void 0,eA=[],pA=[],hA=n.createSparseMatrix({values:lA,index:eA,ptr:pA,size:[G,k],datatype:w===n._datatype&&U===s._datatype?c:void 0}),bA=J?[]:void 0,fA=[],GA=0;GA<k;GA++){pA[GA]=eA.length;var tA=GA+1;for(aA=R[GA],uA=R[GA+1],Z=aA;Z<uA;Z++)if(MA=p[Z],J)for(IA=h[MA],AA=h[MA+1],X=IA;X<AA;X++)fA[nA=b[X]]!==tA?(fA[nA]=tA,eA.push(nA),bA[nA]=O(f[Z],D[X])):bA[nA]=m(bA[nA],O(f[Z],D[X]));else for(IA=h[MA],AA=h[MA+1],X=IA;X<AA;X++)fA[nA=b[X]]!==tA&&(fA[nA]=tA,eA.push(nA));if(J)for(var rA=pA[GA],LA=eA.length,KA=rA;KA<LA;KA++){var ig=eA[KA];lA[KA]=bA[ig]}}return pA[k]=eA.length,hA}});return A(UC,Q,{"Array, Array":A.referTo("Matrix, Matrix",n=>(s,c)=>{t(Qg(s),Qg(c));var D=n(g(s),g(c));return qA(D)?D.valueOf():D}),"Matrix, Matrix":function(n,s){var c=n.size(),D=s.size();return t(c,D),c.length===1?D.length===1?function(b,h,w){if(w===0)throw new Error("Cannot multiply two empty vectors");return E(b,h)}(n,s,c[0]):e(n,s):D.length===1?o(n,s):r(n,s)},"Matrix, Array":A.referTo("Matrix,Matrix",n=>(s,c)=>n(s,g(c))),"Array, Matrix":A.referToSelf(n=>(s,c)=>n(g(s,c.storage()),c)),"SparseMatrix, any":function(n,s){return a(n,s,Q,!1)},"DenseMatrix, any":function(n,s){return i(n,s,Q,!1)},"any, SparseMatrix":function(n,s){return a(s,n,Q,!0)},"any, DenseMatrix":function(n,s){return i(s,n,Q,!0)},"Array, any":function(n,s){return i(g(n),s,Q,!1).valueOf()},"any, Array":function(n,s){return i(g(s),n,Q,!0).valueOf()},"any, any":Q,"any, any, ...any":A.referToSelf(n=>(s,c,D)=>{for(var b=n(s,c),h=0;h<D.length;h++)b=n(b,D[h]);return b})})}),mC="conj",Gt=wA(mC,["typed"],B=>{var{typed:A}=B;return A(mC,{"number | BigNumber | Fraction":g=>g,Complex:g=>g.conjugate(),Unit:A.referToSelf(g=>I=>new I.constructor(g(I.toNumeric()),I.formatUnits())),"Array | Matrix":A.referToSelf(g=>I=>tI(I,g))})}),SC="identity",Rt=wA(SC,["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],B=>{var{typed:A,config:g,matrix:I,BigNumber:Q,DenseMatrix:C,SparseMatrix:E}=B;return A(SC,{"":function(){return g.matrix==="Matrix"?I([]):[]},string:function(t){return I(t)},"number | BigNumber":function(t){return i(t,t,g.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(t,e){return i(t,t,e)},"number | BigNumber, number | BigNumber":function(t,e){return i(t,e,g.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(t,e,o){return i(t,e,o)},Array:function(t){return a(t)},"Array, string":function(t,e){return a(t,e)},Matrix:function(t){return a(t.valueOf(),t.storage())},"Matrix, string":function(t,e){return a(t.valueOf(),e)}});function a(t,e){switch(t.length){case 0:return e?I(e):[];case 1:return i(t[0],t[0],e);case 2:return i(t[0],t[1],e);default:throw new Error("Vector containing two values expected")}}function i(t,e,o){var r=WA(t)||WA(e)?Q:null;if(WA(t)&&(t=t.toNumber()),WA(e)&&(e=e.toNumber()),!YA(t)||t<1)throw new Error("Parameters in function identity must be positive integers");if(!YA(e)||e<1)throw new Error("Parameters in function identity must be positive integers");var n=r?new Q(1):1,s=r?new r(0):0,c=[t,e];if(o){if(o==="sparse")return E.diagonal(c,n,0,s);if(o==="dense")return C.diagonal(c,n,0,s);throw new TypeError('Unknown matrix type "'.concat(o,'"'))}for(var D=wQ([],c,s),b=t<e?t:e,h=0;h<b;h++)D[h][h]=n;return D}});function pt(){throw new Error('No "bignumber" implementation available')}function Nt(){throw new Error('No "fraction" implementation available')}var LC,JC="size",kt=wA(JC,["typed","config","?matrix"],B=>{var{typed:A,config:g,matrix:I}=B;return A(JC,{Matrix:function(Q){return Q.create(Q.size(),"number")},Array:Qg,string:function(Q){return g.matrix==="Array"?[Q.length]:I([Q.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(Q){return g.matrix==="Array"?[]:I?I([],"dense","number"):function(){throw new Error('No "matrix" implementation available')}()}})}),Ut=wA("numeric",["number","?bignumber","?fraction"],B=>{var{number:A,bignumber:g,fraction:I}=B,Q={string:!0,number:!0,BigNumber:!0,Fraction:!0},C={number:E=>A(E),BigNumber:g?E=>g(E):pt,bigint:E=>BigInt(E),Fraction:I?E=>I(E):Nt};return function(E){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number";if((arguments.length>2?arguments[2]:void 0)!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var i=$g(E);if(!(i in Q))throw new TypeError("Cannot convert "+E+' of type "'+i+'"; valid input types are '+Object.keys(Q).join(", "));if(!(a in C))throw new TypeError("Cannot convert "+E+' to type "'+a+'"; valid output types are '+Object.keys(C).join(", "));return a===i?E:C[a](E)}}),YC="divideScalar",mt=wA(YC,["typed","numeric"],B=>{var{typed:A,numeric:g}=B;return A(YC,{"number, number":function(I,Q){return I/Q},"Complex, Complex":function(I,Q){return I.div(Q)},"BigNumber, BigNumber":function(I,Q){return I.div(Q)},"bigint, bigint":function(I,Q){return I/Q},"Fraction, Fraction":function(I,Q){return I.div(Q)},"Unit, number | Complex | Fraction | BigNumber | Unit":(I,Q)=>I.divide(Q),"number | Fraction | Complex | BigNumber, Unit":(I,Q)=>Q.divideInto(I)})}),St=wA("pow",["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],B=>{var{typed:A,config:g,identity:I,multiply:Q,matrix:C,inv:E,number:a,fraction:i,Complex:t}=B;return A("pow",{"number, number":e,"Complex, Complex":function(n,s){return n.pow(s)},"BigNumber, BigNumber":function(n,s){return s.isInteger()||n>=0||g.predictable?n.pow(s):new t(n.toNumber(),0).pow(s.toNumber(),0)},"bigint, bigint":(n,s)=>n**s,"Fraction, Fraction":function(n,s){var c=n.pow(s);if(c!=null)return c;if(g.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return e(n.valueOf(),s.valueOf())},"Array, number":o,"Array, BigNumber":function(n,s){return o(n,s.toNumber())},"Matrix, number":r,"Matrix, BigNumber":function(n,s){return r(n,s.toNumber())},"Unit, number | BigNumber":function(n,s){return n.pow(s)}});function e(n,s){if(g.predictable&&!YA(s)&&n<0)try{var c=i(s),D=a(c);if((s===D||Math.abs((s-D)/s)<1e-14)&&c.d%2n===1n)return(c.n%2n===0n?1:-1)*Math.pow(-n,s)}catch{}return g.predictable&&(n<-1&&s===1/0||n>-1&&n<0&&s===-1/0)?NaN:YA(s)||n>=0||g.predictable?ca(n,s):n*n<1&&s===1/0||n*n>1&&s===-1/0?0:new t(n,0).pow(s,0)}function o(n,s){if(!YA(s))throw new TypeError("For A^b, b must be an integer (value is "+s+")");var c=Qg(n);if(c.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+c.length+" dimensions)");if(c[0]!==c[1])throw new Error("For A^b, A must be square (size is "+c[0]+"x"+c[1]+")");if(s<0)try{return o(E(n),-s)}catch(h){throw h.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+s+")"):h}for(var D=I(c[0]).valueOf(),b=n;s>=1;)1&~s||(D=Q(b,D)),s>>=1,b=Q(b,b);return D}function r(n,s){return C(o(n.valueOf(),s))}}),Lt=wA("dot",["typed","addScalar","multiplyScalar","conj","size"],B=>{var{typed:A,addScalar:g,multiplyScalar:I,conj:Q,size:C}=B;return A("dot",{"Array | DenseMatrix, Array | DenseMatrix":function(i,t){var e=E(i,t),o=qA(i)?i._data:i,r=qA(i)?i._datatype||i.getDataType():void 0,n=qA(t)?t._data:t,s=qA(t)?t._datatype||t.getDataType():void 0,c=a(i).length===2,D=a(t).length===2,b=g,h=I;if(r&&s&&r===s&&typeof r=="string"&&r!=="mixed"){var w=r;b=A.find(g,[w,w]),h=A.find(I,[w,w])}if(!c&&!D){for(var f=h(Q(o[0]),n[0]),p=1;p<e;p++)f=b(f,h(Q(o[p]),n[p]));return f}if(!c&&D){for(var R=h(Q(o[0]),n[0][0]),U=1;U<e;U++)R=b(R,h(Q(o[U]),n[U][0]));return R}if(c&&!D){for(var G=h(Q(o[0][0]),n[0]),k=1;k<e;k++)G=b(G,h(Q(o[k][0]),n[k]));return G}if(c&&D){for(var J=h(Q(o[0][0]),n[0][0]),m=1;m<e;m++)J=b(J,h(Q(o[m][0]),n[m][0]));return J}},"SparseMatrix, SparseMatrix":function(i,t){E(i,t);for(var e=i._index,o=i._values,r=t._index,n=t._values,s=0,c=g,D=I,b=0,h=0;b<e.length&&h<r.length;){var w=e[b],f=r[h];w<f?b++:w>f?h++:w===f&&(s=c(s,D(o[b],n[h])),b++,h++)}return s}});function E(i,t){var e,o,r=a(i),n=a(t);if(r.length===1)e=r[0];else{if(r.length!==2||r[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+r.join(", ")+")");e=r[0]}if(n.length===1)o=n[0];else{if(n.length!==2||n[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+n.join(", ")+")");o=n[0]}if(e!==o)throw new RangeError("Vectors must have equal length ("+e+" != "+o+")");if(e===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return e}function a(i){return qA(i)?i.size():C(i)}}),Jt=wA("det",["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],B=>{var{typed:A,matrix:g,subtractScalar:I,multiply:Q,divideScalar:C,isZero:E,unaryMinus:a}=B;return A("det",{any:function(i){return jA(i)},"Array | Matrix":function(i){var t;switch((t=qA(i)?i.size():Array.isArray(i)?(i=g(i)).size():[]).length){case 0:return jA(i);case 1:if(t[0]===1)return jA(i.valueOf()[0]);if(t[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+OA(t)+")");case 2:var e=t[0],o=t[1];if(e===o)return function(r,n){if(n===1)return jA(r[0][0]);if(n===2)return I(Q(r[0][0],r[1][1]),Q(r[1][0],r[0][1]));for(var s=!1,c=new Array(n).fill(0).map((k,J)=>J),D=0;D<n;D++){var b=c[D];if(E(r[b][D])){var h=void 0;for(h=D+1;h<n;h++)if(!E(r[c[h]][D])){b=c[h],c[h]=c[D],c[D]=b,s=!s;break}if(h===n)return r[b][D]}for(var w=r[b][D],f=D===0?1:r[c[D-1]][D-1],p=D+1;p<n;p++)for(var R=c[p],U=D+1;U<n;U++)r[R][U]=C(I(Q(r[R][U],w),Q(r[R][D],r[b][U])),f)}var G=r[c[n-1]][n-1];return s?a(G):G}(i.clone().valueOf(),e);if(o===0)return 1;throw new RangeError("Matrix must be square (size: "+OA(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+OA(t)+")")}}})}),Yt=wA("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],B=>{var{typed:A,matrix:g,divideScalar:I,addScalar:Q,multiply:C,unaryMinus:E,det:a,identity:i,abs:t}=B;return A("inv",{"Array | Matrix":function(o){var r=qA(o)?o.size():Qg(o);switch(r.length){case 1:if(r[0]===1)return qA(o)?g([I(1,o.valueOf()[0])]):[I(1,o[0])];throw new RangeError("Matrix must be square (size: "+OA(r)+")");case 2:var n=r[0],s=r[1];if(n===s)return qA(o)?g(e(o.valueOf(),n,s),o.storage()):e(o,n,s);throw new RangeError("Matrix must be square (size: "+OA(r)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+OA(r)+")")}},any:function(o){return I(1,o)}});function e(o,r,n){var s,c,D,b,h;if(r===1){if((b=o[0][0])===0)throw Error("Cannot calculate inverse, determinant is zero");return[[I(1,b)]]}if(r===2){var w=a(o);if(w===0)throw Error("Cannot calculate inverse, determinant is zero");return[[I(o[1][1],w),I(E(o[0][1]),w)],[I(E(o[1][0]),w),I(o[0][0],w)]]}var f=o.concat();for(s=0;s<r;s++)f[s]=f[s].concat();for(var p=i(r).valueOf(),R=0;R<n;R++){var U=t(f[R][R]),G=R;for(s=R+1;s<r;)t(f[s][R])>U&&(U=t(f[s][R]),G=s),s++;if(U===0)throw Error("Cannot calculate inverse, determinant is zero");(s=G)!==R&&(h=f[R],f[R]=f[s],f[s]=h,h=p[R],p[R]=p[s],p[s]=h);var k=f[R],J=p[R];for(s=0;s<r;s++){var m=f[s],O=p[s];if(s!==R){if(m[R]!==0){for(D=I(E(m[R]),k[R]),c=R;c<n;c++)m[c]=Q(m[c],C(D,k[c]));for(c=0;c<n;c++)O[c]=Q(O[c],C(D,J[c]))}}else{for(D=k[R],c=R;c<n;c++)m[c]=I(m[c],D);for(c=0;c<n;c++)O[c]=I(O[c],D)}}}return p}}),xC="gamma",xt=wA(xC,["typed","config","multiplyScalar","pow","BigNumber","Complex"],B=>{var{typed:A,config:g,multiplyScalar:I,pow:Q,BigNumber:C,Complex:E}=B;return A(xC,{number:GB,Complex:function i(t){if(t.im===0)return GB(t.re);if(t.re<.5){var e=new E(1-t.re,-t.im),o=new E(Math.PI*t.re,Math.PI*t.im);return new E(Math.PI).div(o.sin()).div(i(e))}t=new E(t.re-1,t.im);for(var r=new E(GI[0],0),n=1;n<GI.length;++n){var s=new E(GI[n],0);r=r.add(s.div(t.add(n)))}var c=new E(t.re+ha+.5,t.im),D=Math.sqrt(2*Math.PI),b=c.pow(t.add(.5)),h=c.neg().exp();return r.mul(D).mul(b).mul(h)},BigNumber:function(i){if(i.isInteger())return i.isNegative()||i.isZero()?new C(1/0):a(i.minus(1));if(!i.isFinite())return new C(i.isNegative()?NaN:1/0);throw new Error("Integer BigNumber expected")}});function a(i){if(i<8)return new C([1,1,2,6,24,120,720,5040][i]);var t=g.precision+(0|Math.log(i.toNumber())),e=C.clone({precision:t});if(i%2==1)return i.times(a(new C(i-1)));for(var o=i,r=new e(i),n=i.toNumber();o>2;)n+=o-=2,r=r.times(n);return new C(r.toPrecision(C.precision))}}),NB=gt({config:iI}),fQ=Bt({}),Da=Ct({}),mQ=Et({}),SQ=tt({Matrix:mQ}),HA=ti({BigNumber:NB,Complex:fQ,DenseMatrix:SQ,Fraction:Da}),Ht=wt({typed:HA}),FQ=ut({typed:HA}),Kt=Gt({typed:HA}),LQ=rt({config:iI,typed:HA}),jt=ot({equalScalar:LQ,typed:HA}),yQ=yt({typed:HA}),da=ct({typed:HA}),ba=st({Matrix:mQ,equalScalar:LQ,typed:HA}),qt=lt({typed:HA}),vt=ht({BigNumber:NB,typed:HA}),RI=dt({DenseMatrix:SQ,Matrix:mQ,SparseMatrix:ba,typed:HA}),wa=Dt({Fraction:Da,typed:HA}),HC=Rt({BigNumber:NB,DenseMatrix:SQ,SparseMatrix:ba,config:iI,matrix:RI,typed:HA}),Tt=Ut({bignumber:vt,fraction:wa,number:da}),Ot=kt({matrix:RI,config:iI,typed:HA}),KC=bt({typed:HA}),jC=mt({numeric:Tt,typed:HA}),aQ=Mt({addScalar:FQ,dot:Lt({addScalar:FQ,conj:Kt,multiplyScalar:yQ,size:Ot,typed:HA}),equalScalar:LQ,matrix:RI,multiplyScalar:yQ,typed:HA}),Wt=xt({BigNumber:NB,Complex:fQ,config:iI,multiplyScalar:yQ,pow:St({Complex:fQ,config:iI,fraction:wa,identity:HC,inv:Yt({abs:Ht,addScalar:FQ,det:Jt({divideScalar:jC,isZero:jt,matrix:RI,multiply:aQ,subtractScalar:qt,typed:HA,unaryMinus:KC}),divideScalar:jC,identity:HC,matrix:RI,multiply:aQ,typed:HA,unaryMinus:KC}),matrix:RI,multiply:aQ,number:da,typed:HA}),typed:HA});class Pt{constructor(A){if(A){const{toElementFn:g}=A;if(typeof g=="function")this._toElementFn=g;else if(g)throw new TypeError("toElementFn must be a function type")}}_toElementFn;get toElementFn(){return this._toElementFn}*[Symbol.iterator](...A){yield*this._getIterator(...A)}*values(){for(const A of this)yield A}every(A,g){let I=0;for(const Q of this)if(!A.call(g,Q,I++,this))return!1;return!0}some(A,g){let I=0;for(const Q of this)if(A.call(g,Q,I++,this))return!0;return!1}forEach(A,g){let I=0;for(const Q of this)A.call(g,Q,I++,this)}find(A,g){let I=0;for(const Q of this)if(A.call(g,Q,I++,this))return Q}has(A){for(const g of this)if(g===A)return!0;return!1}reduce(A,g){let I=g??0,Q=0;for(const C of this)I=A(I,C,Q++,this);return I}toArray(){return[...this]}toVisual(){return[...this]}print(){console.log(this.toVisual())}}/**
|
|
914
|
+
(`+OA(this._index[h],e)+", "+OA(c,e)+") ==> "+(this._values?OA(this._values[h],e):"X");return s},Q.prototype.toString=function(){return OA(this.toArray())},Q.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},Q.prototype.diagonal=function(e){if(e){if(WA(e)&&(e=e.toNumber()),!UA(e)||!YA(e))throw new TypeError("The parameter k must be an integer number")}else e=0;var o=e>0?e:0,r=e<0?-e:0,n=this._size[0],s=this._size[1],c=Math.min(n-r,s-o),D=[],b=[],h=[];h[0]=0;for(var w=o;w<s&&D.length<c;w++)for(var f=this._ptr[w],p=this._ptr[w+1],R=f;R<p;R++){var U=this._index[R];if(U===w-o+r){D.push(this._values[R]),b[D.length-1]=U-r;break}}return h.push(D.length),new Q({values:D,index:b,ptr:h,size:[c,1]})},Q.fromJSON=function(e){return new Q(e)},Q.diagonal=function(e,o,r,n,s){if(!VA(e))throw new TypeError("Array expected, size parameter");if(e.length!==2)throw new Error("Only two dimensions matrix are supported");if(e=e.map(function(IA){if(WA(IA)&&(IA=IA.toNumber()),!UA(IA)||!YA(IA)||IA<1)throw new Error("Size values must be positive integers");return IA}),r){if(WA(r)&&(r=r.toNumber()),!UA(r)||!YA(r))throw new TypeError("The parameter k must be an integer number")}else r=0;var c=g,D=0;pg(s)&&(c=A.find(g,[s,s])||g,D=A.convert(0,s));var b,h=r>0?r:0,w=r<0?-r:0,f=e[0],p=e[1],R=Math.min(f-w,p-h);if(VA(o)){if(o.length!==R)throw new Error("Invalid value array length");b=function(IA){return o[IA]}}else if(qA(o)){var U=o.size();if(U.length!==1||U[0]!==R)throw new Error("Invalid matrix length");b=function(IA){return o.get([IA])}}else b=function(){return o};for(var G=[],k=[],J=[],m=0;m<p;m++){J.push(G.length);var O=m-h;if(O>=0&&O<R){var X=b(O);c(X,D)||(k.push(O+w),G.push(X))}}return J.push(G.length),new Q({values:G,index:k,ptr:J,size:[f,p]})},Q.prototype.swapRows=function(e,o){if(!(UA(e)&&YA(e)&&UA(o)&&YA(o)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return xA(e,this._size[0]),xA(o,this._size[0]),Q._swapRows(e,o,this._size[1],this._values,this._index,this._ptr),this},Q._forEachRow=function(e,o,r,n,s){for(var c=n[e],D=n[e+1],b=c;b<D;b++)s(r[b],o[b])},Q._swapRows=function(e,o,r,n,s,c){for(var D=0;D<r;D++){var b=c[D],h=c[D+1],w=E(e,b,h,s),f=E(o,b,h,s);if(w<h&&f<h&&s[w]===e&&s[f]===o){if(n){var p=n[w];n[w]=n[f],n[f]=p}}else if(w<h&&s[w]===e&&(f>=h||s[f]!==o)){var R=n?n[w]:void 0;s.splice(f,0,o),n&&n.splice(f,0,R),s.splice(f<=w?w+1:w,1),n&&n.splice(f<=w?w+1:w,1)}else if(f<h&&s[f]===o&&(w>=h||s[w]!==e)){var U=n?n[f]:void 0;s.splice(w,0,e),n&&n.splice(w,0,U),s.splice(w<=f?f+1:f,1),n&&n.splice(w<=f?f+1:f,1)}}},Q},{isClass:!0}),ct=wA("number",["typed"],B=>{var{typed:A}=B,g=A("number",{"":function(){return 0},number:function(I){return I},string:function(I){if(I==="NaN")return NaN;var Q,C,E=(C=(Q=I).match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/))?{input:Q,radix:{"0b":2,"0o":8,"0x":16}[C[1]],integerPart:C[2],fractionalPart:C[3]}:null;if(E)return function(e){for(var o=parseInt(e.integerPart,e.radix),r=0,n=0;n<e.fractionalPart.length;n++)r+=parseInt(e.fractionalPart[n],e.radix)/Math.pow(e.radix,n+1);var s=o+r;if(isNaN(s))throw new SyntaxError('String "'+e.input+'" is not a valid number');return s}(E);var a=0,i=I.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);i&&(a=Number(i[2]),I=i[1]);var t=Number(I);if(isNaN(t))throw new SyntaxError('String "'+I+'" is not a valid number');if(i){if(t>2**a-1)throw new SyntaxError('String "'.concat(I,'" is out of range'));t>=2**(a-1)&&(t-=2**a)}return t},BigNumber:function(I){return I.toNumber()},bigint:function(I){return Number(I)},Fraction:function(I){return I.valueOf()},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),null:function(I){return 0},"Unit, string | Unit":function(I,Q){return I.toNumber(Q)},"Array | Matrix":A.referToSelf(I=>Q=>tI(Q,I))});return g.fromJSON=function(I){return parseFloat(I.value)},g}),ht=wA("bignumber",["typed","BigNumber"],B=>{var{typed:A,BigNumber:g}=B;return A("bignumber",{"":function(){return new g(0)},number:function(I){return new g(I+"")},string:function(I){var Q=I.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(Q){var C=Q[2],E=g(Q[1]),a=new g(2).pow(Number(C));if(E.gt(a.sub(1)))throw new SyntaxError('String "'.concat(I,'" is out of range'));var i=new g(2).pow(Number(C)-1);return E.gte(i)?E.sub(a):E}return new g(I)},BigNumber:function(I){return I},bigint:function(I){return new g(I.toString())},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),Fraction:function(I){return new g(String(I.n)).div(String(I.d)).times(String(I.s))},null:function(I){return new g(0)},"Array | Matrix":A.referToSelf(I=>Q=>tI(Q,I))})}),Dt=wA("fraction",["typed","Fraction"],B=>{var{typed:A,Fraction:g}=B;return A("fraction",{number:function(I){if(!isFinite(I)||isNaN(I))throw new Error(I+" cannot be represented as a fraction");return new g(I)},string:function(I){return new g(I)},"number, number":function(I,Q){return new g(I,Q)},"bigint, bigint":function(I,Q){return new g(I,Q)},null:function(I){return new g(0)},BigNumber:function(I){return new g(I.toString())},bigint:function(I){return new g(I.toString())},Fraction:function(I){return I},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),Object:function(I){return new g(I)},"Array | Matrix":A.referToSelf(I=>Q=>tI(Q,I))})}),RC="matrix",dt=wA(RC,["typed","Matrix","DenseMatrix","SparseMatrix"],B=>{var{typed:A,Matrix:g,DenseMatrix:I,SparseMatrix:Q}=B;return A(RC,{"":function(){return C([])},string:function(E){return C([],E)},"string, string":function(E,a){return C([],E,a)},Array:function(E){return C(E)},Matrix:function(E){return C(E,E.storage())},"Array | Matrix, string":C,"Array | Matrix, string, string":C});function C(E,a,i){if(a==="dense"||a==="default"||a===void 0)return new I(E,i);if(a==="sparse")return new Q(E,i);throw new TypeError("Unknown matrix type "+JSON.stringify(a)+".")}}),pC="unaryMinus",bt=wA(pC,["typed"],B=>{var{typed:A}=B;return A(pC,{number:sa,"Complex | BigNumber | Fraction":g=>g.neg(),bigint:g=>-g,Unit:A.referToSelf(g=>I=>{var Q=I.clone();return Q.value=A.find(g,Q.valueType())(I.value),Q}),"Array | Matrix":A.referToSelf(g=>I=>tI(I,g,!0))})}),wt=wA("abs",["typed"],B=>{var{typed:A}=B;return A("abs",{number:ta,"Complex | BigNumber | Fraction | Unit":g=>g.abs(),bigint:g=>g<0n?-g:g,"Array | Matrix":A.referToSelf(g=>I=>tI(I,g,!0))})}),NC="addScalar",ut=wA(NC,["typed"],B=>{var{typed:A}=B;return A(NC,{"number, number":oa,"Complex, Complex":function(g,I){return g.add(I)},"BigNumber, BigNumber":function(g,I){return g.plus(I)},"bigint, bigint":function(g,I){return g+I},"Fraction, Fraction":function(g,I){return g.add(I)},"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(I.value===null||I.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(Q.value===null||Q.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!I.equalBase(Q))throw new Error("Units do not match");var C=I.clone();return C.value=A.find(g,[C.valueType(),Q.valueType()])(C.value,Q.value),C.fixPrefix=!1,C})})}),kC="subtractScalar",lt=wA(kC,["typed"],B=>{var{typed:A}=B;return A(kC,{"number, number":na,"Complex, Complex":function(g,I){return g.sub(I)},"BigNumber, BigNumber":function(g,I){return g.minus(I)},"bigint, bigint":function(g,I){return g-I},"Fraction, Fraction":function(g,I){return g.sub(I)},"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(I.value===null||I.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(Q.value===null||Q.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!I.equalBase(Q))throw new Error("Units do not match");var C=I.clone();return C.value=A.find(g,[C.valueType(),Q.valueType()])(C.value,Q.value),C.fixPrefix=!1,C})})}),ft=wA("matAlgo11xS0s",["typed","equalScalar"],B=>{var{typed:A,equalScalar:g}=B;return function(I,Q,C,E){var a=I._values,i=I._index,t=I._ptr,e=I._size,o=I._datatype;if(!a)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var r,n=e[0],s=e[1],c=g,D=0,b=C;typeof o=="string"&&(r=o,c=A.find(g,[r,r]),D=A.convert(0,r),Q=A.convert(Q,r),b=A.find(C,[r,r]));for(var h=[],w=[],f=[],p=0;p<s;p++){f[p]=w.length;for(var R=t[p],U=t[p+1],G=R;G<U;G++){var k=i[G],J=E?b(Q,a[G]):b(a[G],Q);c(J,D)||(w.push(k),h.push(J))}}return f[s]=w.length,I.createSparseMatrix({values:h,index:w,ptr:f,size:[n,s],datatype:r})}}),Ft=wA("matAlgo14xDs",["typed"],B=>{var{typed:A}=B;return function(I,Q,C,E){var a,i=I._data,t=I._size,e=I._datatype,o=C;typeof e=="string"&&(a=e,Q=A.convert(Q,a),o=A.find(C,[a,a]));var r=t.length>0?g(o,0,t,t[0],i,Q,E):[];return I.createDenseMatrix({data:r,size:jA(t),datatype:a})};function g(I,Q,C,E,a,i,t){var e=[];if(Q===C.length-1)for(var o=0;o<E;o++)e[o]=t?I(i,a[o]):I(a[o],i);else for(var r=0;r<E;r++)e[r]=g(I,Q+1,C,C[Q+1],a[r],i,t);return e}}),yt=wA("multiplyScalar",["typed"],B=>{var{typed:A}=B;return A("multiplyScalar",{"number, number":ra,"Complex, Complex":function(g,I){return g.mul(I)},"BigNumber, BigNumber":function(g,I){return g.times(I)},"bigint, bigint":function(g,I){return g*I},"Fraction, Fraction":function(g,I){return g.mul(I)},"number | Fraction | BigNumber | Complex, Unit":(g,I)=>I.multiply(g),"Unit, number | Fraction | BigNumber | Complex | Unit":(g,I)=>g.multiply(I)})}),UC="multiply",Mt=wA(UC,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],B=>{var{typed:A,matrix:g,addScalar:I,multiplyScalar:Q,equalScalar:C,dot:E}=B,a=ft({typed:A,equalScalar:C}),i=Ft({typed:A});function t(n,s){switch(n.length){case 1:switch(s.length){case 1:if(n[0]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(n[0]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+n[0]+") must match Matrix rows ("+s[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+s.length+" dimensions)")}break;case 2:switch(s.length){case 1:if(n[1]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+n[1]+") must match Vector length ("+s[0]+")");break;case 2:if(n[1]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+n[1]+") must match Matrix B rows ("+s[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+s.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+n.length+" dimensions)")}}function e(n,s){if(s.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return function(c,D){var b,h=c._data,w=c._size,f=c._datatype||c.getDataType(),p=D._data,R=D._size,U=D._datatype||D.getDataType(),G=w[0],k=R[1],J=I,m=Q;f&&U&&f===U&&typeof f=="string"&&f!=="mixed"&&(b=f,J=A.find(I,[b,b]),m=A.find(Q,[b,b]));for(var O=[],X=0;X<k;X++){for(var IA=m(h[0],p[0][X]),AA=1;AA<G;AA++)IA=J(IA,m(h[AA],p[AA][X]));O[X]=IA}return c.createDenseMatrix({data:O,size:[k],datatype:f===c._datatype&&U===D._datatype?b:void 0})}(n,s)}var o=A("_multiplyMatrixVector",{"DenseMatrix, any":function(n,s){var c,D=n._data,b=n._size,h=n._datatype||n.getDataType(),w=s._data,f=s._datatype||s.getDataType(),p=b[0],R=b[1],U=I,G=Q;h&&f&&h===f&&typeof h=="string"&&h!=="mixed"&&(c=h,U=A.find(I,[c,c]),G=A.find(Q,[c,c]));for(var k=[],J=0;J<p;J++){for(var m=D[J],O=G(m[0],w[0]),X=1;X<R;X++)O=U(O,G(m[X],w[X]));k[J]=O}return n.createDenseMatrix({data:k,size:[p],datatype:h===n._datatype&&f===s._datatype?c:void 0})},"SparseMatrix, any":function(n,s){var c=n._values,D=n._index,b=n._ptr,h=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var w,f=s._data,p=s._datatype||s.getDataType(),R=n._size[0],U=s._size[0],G=[],k=[],J=[],m=I,O=Q,X=C,IA=0;h&&p&&h===p&&typeof h=="string"&&h!=="mixed"&&(w=h,m=A.find(I,[w,w]),O=A.find(Q,[w,w]),X=A.find(C,[w,w]),IA=A.convert(0,w));var AA=[],Z=[];J[0]=0;for(var aA=0;aA<U;aA++){var uA=f[aA];if(!X(uA,IA))for(var nA=b[aA],MA=b[aA+1],lA=nA;lA<MA;lA++){var eA=D[lA];Z[eA]?AA[eA]=m(AA[eA],O(uA,c[lA])):(Z[eA]=!0,k.push(eA),AA[eA]=O(uA,c[lA]))}}for(var pA=k.length,hA=0;hA<pA;hA++){var bA=k[hA];G[hA]=AA[bA]}return J[1]=k.length,n.createSparseMatrix({values:G,index:k,ptr:J,size:[R,1],datatype:h===n._datatype&&p===s._datatype?w:void 0})}}),r=A("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(n,s){var c,D=n._data,b=n._size,h=n._datatype||n.getDataType(),w=s._data,f=s._size,p=s._datatype||s.getDataType(),R=b[0],U=b[1],G=f[1],k=I,J=Q;h&&p&&h===p&&typeof h=="string"&&h!=="mixed"&&h!=="mixed"&&(c=h,k=A.find(I,[c,c]),J=A.find(Q,[c,c]));for(var m=[],O=0;O<R;O++){var X=D[O];m[O]=[];for(var IA=0;IA<G;IA++){for(var AA=J(X[0],w[0][IA]),Z=1;Z<U;Z++)AA=k(AA,J(X[Z],w[Z][IA]));m[O][IA]=AA}}return n.createDenseMatrix({data:m,size:[R,G],datatype:h===n._datatype&&p===s._datatype?c:void 0})},"DenseMatrix, SparseMatrix":function(n,s){var c=n._data,D=n._size,b=n._datatype||n.getDataType(),h=s._values,w=s._index,f=s._ptr,p=s._size,R=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(!h)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var U,G=D[0],k=p[1],J=I,m=Q,O=C,X=0;b&&R&&b===R&&typeof b=="string"&&b!=="mixed"&&(U=b,J=A.find(I,[U,U]),m=A.find(Q,[U,U]),O=A.find(C,[U,U]),X=A.convert(0,U));for(var IA=[],AA=[],Z=[],aA=s.createSparseMatrix({values:IA,index:AA,ptr:Z,size:[G,k],datatype:b===n._datatype&&R===s._datatype?U:void 0}),uA=0;uA<k;uA++){Z[uA]=AA.length;var nA=f[uA],MA=f[uA+1];if(MA>nA)for(var lA=0,eA=0;eA<G;eA++){for(var pA=eA+1,hA=void 0,bA=nA;bA<MA;bA++){var fA=w[bA];lA!==pA?(hA=m(c[eA][fA],h[bA]),lA=pA):hA=J(hA,m(c[eA][fA],h[bA]))}lA!==pA||O(hA,X)||(AA.push(eA),IA.push(hA))}}return Z[k]=AA.length,aA},"SparseMatrix, DenseMatrix":function(n,s){var c=n._values,D=n._index,b=n._ptr,h=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var w,f=s._data,p=s._datatype||s.getDataType(),R=n._size[0],U=s._size[0],G=s._size[1],k=I,J=Q,m=C,O=0;h&&p&&h===p&&typeof h=="string"&&h!=="mixed"&&(w=h,k=A.find(I,[w,w]),J=A.find(Q,[w,w]),m=A.find(C,[w,w]),O=A.convert(0,w));for(var X=[],IA=[],AA=[],Z=n.createSparseMatrix({values:X,index:IA,ptr:AA,size:[R,G],datatype:h===n._datatype&&p===s._datatype?w:void 0}),aA=[],uA=[],nA=0;nA<G;nA++){AA[nA]=IA.length;for(var MA=nA+1,lA=0;lA<U;lA++){var eA=f[lA][nA];if(!m(eA,O))for(var pA=b[lA],hA=b[lA+1],bA=pA;bA<hA;bA++){var fA=D[bA];uA[fA]!==MA?(uA[fA]=MA,IA.push(fA),aA[fA]=J(eA,c[bA])):aA[fA]=k(aA[fA],J(eA,c[bA]))}}for(var GA=AA[nA],tA=IA.length,rA=GA;rA<tA;rA++){var LA=IA[rA];X[rA]=aA[LA]}}return AA[G]=IA.length,Z},"SparseMatrix, SparseMatrix":function(n,s){var c,D=n._values,b=n._index,h=n._ptr,w=n._datatype||n._data===void 0?n._datatype:n.getDataType(),f=s._values,p=s._index,R=s._ptr,U=s._datatype||s._data===void 0?s._datatype:s.getDataType(),G=n._size[0],k=s._size[1],J=D&&f,m=I,O=Q;w&&U&&w===U&&typeof w=="string"&&w!=="mixed"&&(c=w,m=A.find(I,[c,c]),O=A.find(Q,[c,c]));for(var X,IA,AA,Z,aA,uA,nA,MA,lA=J?[]:void 0,eA=[],pA=[],hA=n.createSparseMatrix({values:lA,index:eA,ptr:pA,size:[G,k],datatype:w===n._datatype&&U===s._datatype?c:void 0}),bA=J?[]:void 0,fA=[],GA=0;GA<k;GA++){pA[GA]=eA.length;var tA=GA+1;for(aA=R[GA],uA=R[GA+1],Z=aA;Z<uA;Z++)if(MA=p[Z],J)for(IA=h[MA],AA=h[MA+1],X=IA;X<AA;X++)fA[nA=b[X]]!==tA?(fA[nA]=tA,eA.push(nA),bA[nA]=O(f[Z],D[X])):bA[nA]=m(bA[nA],O(f[Z],D[X]));else for(IA=h[MA],AA=h[MA+1],X=IA;X<AA;X++)fA[nA=b[X]]!==tA&&(fA[nA]=tA,eA.push(nA));if(J)for(var rA=pA[GA],LA=eA.length,KA=rA;KA<LA;KA++){var ig=eA[KA];lA[KA]=bA[ig]}}return pA[k]=eA.length,hA}});return A(UC,Q,{"Array, Array":A.referTo("Matrix, Matrix",n=>(s,c)=>{t(Qg(s),Qg(c));var D=n(g(s),g(c));return qA(D)?D.valueOf():D}),"Matrix, Matrix":function(n,s){var c=n.size(),D=s.size();return t(c,D),c.length===1?D.length===1?function(b,h,w){if(w===0)throw new Error("Cannot multiply two empty vectors");return E(b,h)}(n,s,c[0]):e(n,s):D.length===1?o(n,s):r(n,s)},"Matrix, Array":A.referTo("Matrix,Matrix",n=>(s,c)=>n(s,g(c))),"Array, Matrix":A.referToSelf(n=>(s,c)=>n(g(s,c.storage()),c)),"SparseMatrix, any":function(n,s){return a(n,s,Q,!1)},"DenseMatrix, any":function(n,s){return i(n,s,Q,!1)},"any, SparseMatrix":function(n,s){return a(s,n,Q,!0)},"any, DenseMatrix":function(n,s){return i(s,n,Q,!0)},"Array, any":function(n,s){return i(g(n),s,Q,!1).valueOf()},"any, Array":function(n,s){return i(g(s),n,Q,!0).valueOf()},"any, any":Q,"any, any, ...any":A.referToSelf(n=>(s,c,D)=>{for(var b=n(s,c),h=0;h<D.length;h++)b=n(b,D[h]);return b})})}),mC="conj",Gt=wA(mC,["typed"],B=>{var{typed:A}=B;return A(mC,{"number | BigNumber | Fraction":g=>g,Complex:g=>g.conjugate(),Unit:A.referToSelf(g=>I=>new I.constructor(g(I.toNumeric()),I.formatUnits())),"Array | Matrix":A.referToSelf(g=>I=>tI(I,g))})}),SC="identity",Rt=wA(SC,["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],B=>{var{typed:A,config:g,matrix:I,BigNumber:Q,DenseMatrix:C,SparseMatrix:E}=B;return A(SC,{"":function(){return g.matrix==="Matrix"?I([]):[]},string:function(t){return I(t)},"number | BigNumber":function(t){return i(t,t,g.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(t,e){return i(t,t,e)},"number | BigNumber, number | BigNumber":function(t,e){return i(t,e,g.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(t,e,o){return i(t,e,o)},Array:function(t){return a(t)},"Array, string":function(t,e){return a(t,e)},Matrix:function(t){return a(t.valueOf(),t.storage())},"Matrix, string":function(t,e){return a(t.valueOf(),e)}});function a(t,e){switch(t.length){case 0:return e?I(e):[];case 1:return i(t[0],t[0],e);case 2:return i(t[0],t[1],e);default:throw new Error("Vector containing two values expected")}}function i(t,e,o){var r=WA(t)||WA(e)?Q:null;if(WA(t)&&(t=t.toNumber()),WA(e)&&(e=e.toNumber()),!YA(t)||t<1)throw new Error("Parameters in function identity must be positive integers");if(!YA(e)||e<1)throw new Error("Parameters in function identity must be positive integers");var n=r?new Q(1):1,s=r?new r(0):0,c=[t,e];if(o){if(o==="sparse")return E.diagonal(c,n,0,s);if(o==="dense")return C.diagonal(c,n,0,s);throw new TypeError('Unknown matrix type "'.concat(o,'"'))}for(var D=wQ([],c,s),b=t<e?t:e,h=0;h<b;h++)D[h][h]=n;return D}});function pt(){throw new Error('No "bignumber" implementation available')}function Nt(){throw new Error('No "fraction" implementation available')}var LC,JC="size",kt=wA(JC,["typed","config","?matrix"],B=>{var{typed:A,config:g,matrix:I}=B;return A(JC,{Matrix:function(Q){return Q.create(Q.size(),"number")},Array:Qg,string:function(Q){return g.matrix==="Array"?[Q.length]:I([Q.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(Q){return g.matrix==="Array"?[]:I?I([],"dense","number"):function(){throw new Error('No "matrix" implementation available')}()}})}),Ut=wA("numeric",["number","?bignumber","?fraction"],B=>{var{number:A,bignumber:g,fraction:I}=B,Q={string:!0,number:!0,BigNumber:!0,Fraction:!0},C={number:E=>A(E),BigNumber:g?E=>g(E):pt,bigint:E=>BigInt(E),Fraction:I?E=>I(E):Nt};return function(E){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number";if((arguments.length>2?arguments[2]:void 0)!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var i=_g(E);if(!(i in Q))throw new TypeError("Cannot convert "+E+' of type "'+i+'"; valid input types are '+Object.keys(Q).join(", "));if(!(a in C))throw new TypeError("Cannot convert "+E+' to type "'+a+'"; valid output types are '+Object.keys(C).join(", "));return a===i?E:C[a](E)}}),YC="divideScalar",mt=wA(YC,["typed","numeric"],B=>{var{typed:A,numeric:g}=B;return A(YC,{"number, number":function(I,Q){return I/Q},"Complex, Complex":function(I,Q){return I.div(Q)},"BigNumber, BigNumber":function(I,Q){return I.div(Q)},"bigint, bigint":function(I,Q){return I/Q},"Fraction, Fraction":function(I,Q){return I.div(Q)},"Unit, number | Complex | Fraction | BigNumber | Unit":(I,Q)=>I.divide(Q),"number | Fraction | Complex | BigNumber, Unit":(I,Q)=>Q.divideInto(I)})}),St=wA("pow",["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],B=>{var{typed:A,config:g,identity:I,multiply:Q,matrix:C,inv:E,number:a,fraction:i,Complex:t}=B;return A("pow",{"number, number":e,"Complex, Complex":function(n,s){return n.pow(s)},"BigNumber, BigNumber":function(n,s){return s.isInteger()||n>=0||g.predictable?n.pow(s):new t(n.toNumber(),0).pow(s.toNumber(),0)},"bigint, bigint":(n,s)=>n**s,"Fraction, Fraction":function(n,s){var c=n.pow(s);if(c!=null)return c;if(g.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return e(n.valueOf(),s.valueOf())},"Array, number":o,"Array, BigNumber":function(n,s){return o(n,s.toNumber())},"Matrix, number":r,"Matrix, BigNumber":function(n,s){return r(n,s.toNumber())},"Unit, number | BigNumber":function(n,s){return n.pow(s)}});function e(n,s){if(g.predictable&&!YA(s)&&n<0)try{var c=i(s),D=a(c);if((s===D||Math.abs((s-D)/s)<1e-14)&&c.d%2n===1n)return(c.n%2n===0n?1:-1)*Math.pow(-n,s)}catch{}return g.predictable&&(n<-1&&s===1/0||n>-1&&n<0&&s===-1/0)?NaN:YA(s)||n>=0||g.predictable?ca(n,s):n*n<1&&s===1/0||n*n>1&&s===-1/0?0:new t(n,0).pow(s,0)}function o(n,s){if(!YA(s))throw new TypeError("For A^b, b must be an integer (value is "+s+")");var c=Qg(n);if(c.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+c.length+" dimensions)");if(c[0]!==c[1])throw new Error("For A^b, A must be square (size is "+c[0]+"x"+c[1]+")");if(s<0)try{return o(E(n),-s)}catch(h){throw h.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+s+")"):h}for(var D=I(c[0]).valueOf(),b=n;s>=1;)1&~s||(D=Q(b,D)),s>>=1,b=Q(b,b);return D}function r(n,s){return C(o(n.valueOf(),s))}}),Lt=wA("dot",["typed","addScalar","multiplyScalar","conj","size"],B=>{var{typed:A,addScalar:g,multiplyScalar:I,conj:Q,size:C}=B;return A("dot",{"Array | DenseMatrix, Array | DenseMatrix":function(i,t){var e=E(i,t),o=qA(i)?i._data:i,r=qA(i)?i._datatype||i.getDataType():void 0,n=qA(t)?t._data:t,s=qA(t)?t._datatype||t.getDataType():void 0,c=a(i).length===2,D=a(t).length===2,b=g,h=I;if(r&&s&&r===s&&typeof r=="string"&&r!=="mixed"){var w=r;b=A.find(g,[w,w]),h=A.find(I,[w,w])}if(!c&&!D){for(var f=h(Q(o[0]),n[0]),p=1;p<e;p++)f=b(f,h(Q(o[p]),n[p]));return f}if(!c&&D){for(var R=h(Q(o[0]),n[0][0]),U=1;U<e;U++)R=b(R,h(Q(o[U]),n[U][0]));return R}if(c&&!D){for(var G=h(Q(o[0][0]),n[0]),k=1;k<e;k++)G=b(G,h(Q(o[k][0]),n[k]));return G}if(c&&D){for(var J=h(Q(o[0][0]),n[0][0]),m=1;m<e;m++)J=b(J,h(Q(o[m][0]),n[m][0]));return J}},"SparseMatrix, SparseMatrix":function(i,t){E(i,t);for(var e=i._index,o=i._values,r=t._index,n=t._values,s=0,c=g,D=I,b=0,h=0;b<e.length&&h<r.length;){var w=e[b],f=r[h];w<f?b++:w>f?h++:w===f&&(s=c(s,D(o[b],n[h])),b++,h++)}return s}});function E(i,t){var e,o,r=a(i),n=a(t);if(r.length===1)e=r[0];else{if(r.length!==2||r[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+r.join(", ")+")");e=r[0]}if(n.length===1)o=n[0];else{if(n.length!==2||n[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+n.join(", ")+")");o=n[0]}if(e!==o)throw new RangeError("Vectors must have equal length ("+e+" != "+o+")");if(e===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return e}function a(i){return qA(i)?i.size():C(i)}}),Jt=wA("det",["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],B=>{var{typed:A,matrix:g,subtractScalar:I,multiply:Q,divideScalar:C,isZero:E,unaryMinus:a}=B;return A("det",{any:function(i){return jA(i)},"Array | Matrix":function(i){var t;switch((t=qA(i)?i.size():Array.isArray(i)?(i=g(i)).size():[]).length){case 0:return jA(i);case 1:if(t[0]===1)return jA(i.valueOf()[0]);if(t[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+OA(t)+")");case 2:var e=t[0],o=t[1];if(e===o)return function(r,n){if(n===1)return jA(r[0][0]);if(n===2)return I(Q(r[0][0],r[1][1]),Q(r[1][0],r[0][1]));for(var s=!1,c=new Array(n).fill(0).map((k,J)=>J),D=0;D<n;D++){var b=c[D];if(E(r[b][D])){var h=void 0;for(h=D+1;h<n;h++)if(!E(r[c[h]][D])){b=c[h],c[h]=c[D],c[D]=b,s=!s;break}if(h===n)return r[b][D]}for(var w=r[b][D],f=D===0?1:r[c[D-1]][D-1],p=D+1;p<n;p++)for(var R=c[p],U=D+1;U<n;U++)r[R][U]=C(I(Q(r[R][U],w),Q(r[R][D],r[b][U])),f)}var G=r[c[n-1]][n-1];return s?a(G):G}(i.clone().valueOf(),e);if(o===0)return 1;throw new RangeError("Matrix must be square (size: "+OA(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+OA(t)+")")}}})}),Yt=wA("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],B=>{var{typed:A,matrix:g,divideScalar:I,addScalar:Q,multiply:C,unaryMinus:E,det:a,identity:i,abs:t}=B;return A("inv",{"Array | Matrix":function(o){var r=qA(o)?o.size():Qg(o);switch(r.length){case 1:if(r[0]===1)return qA(o)?g([I(1,o.valueOf()[0])]):[I(1,o[0])];throw new RangeError("Matrix must be square (size: "+OA(r)+")");case 2:var n=r[0],s=r[1];if(n===s)return qA(o)?g(e(o.valueOf(),n,s),o.storage()):e(o,n,s);throw new RangeError("Matrix must be square (size: "+OA(r)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+OA(r)+")")}},any:function(o){return I(1,o)}});function e(o,r,n){var s,c,D,b,h;if(r===1){if((b=o[0][0])===0)throw Error("Cannot calculate inverse, determinant is zero");return[[I(1,b)]]}if(r===2){var w=a(o);if(w===0)throw Error("Cannot calculate inverse, determinant is zero");return[[I(o[1][1],w),I(E(o[0][1]),w)],[I(E(o[1][0]),w),I(o[0][0],w)]]}var f=o.concat();for(s=0;s<r;s++)f[s]=f[s].concat();for(var p=i(r).valueOf(),R=0;R<n;R++){var U=t(f[R][R]),G=R;for(s=R+1;s<r;)t(f[s][R])>U&&(U=t(f[s][R]),G=s),s++;if(U===0)throw Error("Cannot calculate inverse, determinant is zero");(s=G)!==R&&(h=f[R],f[R]=f[s],f[s]=h,h=p[R],p[R]=p[s],p[s]=h);var k=f[R],J=p[R];for(s=0;s<r;s++){var m=f[s],O=p[s];if(s!==R){if(m[R]!==0){for(D=I(E(m[R]),k[R]),c=R;c<n;c++)m[c]=Q(m[c],C(D,k[c]));for(c=0;c<n;c++)O[c]=Q(O[c],C(D,J[c]))}}else{for(D=k[R],c=R;c<n;c++)m[c]=I(m[c],D);for(c=0;c<n;c++)O[c]=I(O[c],D)}}}return p}}),xC="gamma",xt=wA(xC,["typed","config","multiplyScalar","pow","BigNumber","Complex"],B=>{var{typed:A,config:g,multiplyScalar:I,pow:Q,BigNumber:C,Complex:E}=B;return A(xC,{number:GB,Complex:function i(t){if(t.im===0)return GB(t.re);if(t.re<.5){var e=new E(1-t.re,-t.im),o=new E(Math.PI*t.re,Math.PI*t.im);return new E(Math.PI).div(o.sin()).div(i(e))}t=new E(t.re-1,t.im);for(var r=new E(GI[0],0),n=1;n<GI.length;++n){var s=new E(GI[n],0);r=r.add(s.div(t.add(n)))}var c=new E(t.re+ha+.5,t.im),D=Math.sqrt(2*Math.PI),b=c.pow(t.add(.5)),h=c.neg().exp();return r.mul(D).mul(b).mul(h)},BigNumber:function(i){if(i.isInteger())return i.isNegative()||i.isZero()?new C(1/0):a(i.minus(1));if(!i.isFinite())return new C(i.isNegative()?NaN:1/0);throw new Error("Integer BigNumber expected")}});function a(i){if(i<8)return new C([1,1,2,6,24,120,720,5040][i]);var t=g.precision+(0|Math.log(i.toNumber())),e=C.clone({precision:t});if(i%2==1)return i.times(a(new C(i-1)));for(var o=i,r=new e(i),n=i.toNumber();o>2;)n+=o-=2,r=r.times(n);return new C(r.toPrecision(C.precision))}}),NB=gt({config:iI}),fQ=Bt({}),Da=Ct({}),mQ=Et({}),SQ=tt({Matrix:mQ}),HA=ti({BigNumber:NB,Complex:fQ,DenseMatrix:SQ,Fraction:Da}),Ht=wt({typed:HA}),FQ=ut({typed:HA}),Kt=Gt({typed:HA}),LQ=rt({config:iI,typed:HA}),jt=ot({equalScalar:LQ,typed:HA}),yQ=yt({typed:HA}),da=ct({typed:HA}),ba=st({Matrix:mQ,equalScalar:LQ,typed:HA}),qt=lt({typed:HA}),vt=ht({BigNumber:NB,typed:HA}),RI=dt({DenseMatrix:SQ,Matrix:mQ,SparseMatrix:ba,typed:HA}),wa=Dt({Fraction:Da,typed:HA}),HC=Rt({BigNumber:NB,DenseMatrix:SQ,SparseMatrix:ba,config:iI,matrix:RI,typed:HA}),Tt=Ut({bignumber:vt,fraction:wa,number:da}),Ot=kt({matrix:RI,config:iI,typed:HA}),KC=bt({typed:HA}),jC=mt({numeric:Tt,typed:HA}),aQ=Mt({addScalar:FQ,dot:Lt({addScalar:FQ,conj:Kt,multiplyScalar:yQ,size:Ot,typed:HA}),equalScalar:LQ,matrix:RI,multiplyScalar:yQ,typed:HA}),Wt=xt({BigNumber:NB,Complex:fQ,config:iI,multiplyScalar:yQ,pow:St({Complex:fQ,config:iI,fraction:wa,identity:HC,inv:Yt({abs:Ht,addScalar:FQ,det:Jt({divideScalar:jC,isZero:jt,matrix:RI,multiply:aQ,subtractScalar:qt,typed:HA,unaryMinus:KC}),divideScalar:jC,identity:HC,matrix:RI,multiply:aQ,typed:HA,unaryMinus:KC}),matrix:RI,multiply:aQ,number:da,typed:HA}),typed:HA});class Pt{constructor(A){if(A){const{toElementFn:g}=A;if(typeof g=="function")this._toElementFn=g;else if(g)throw new TypeError("toElementFn must be a function type")}}_toElementFn;get toElementFn(){return this._toElementFn}*[Symbol.iterator](...A){yield*this._getIterator(...A)}*values(){for(const A of this)yield A}every(A,g){let I=0;for(const Q of this)if(!A.call(g,Q,I++,this))return!1;return!0}some(A,g){let I=0;for(const Q of this)if(A.call(g,Q,I++,this))return!0;return!1}forEach(A,g){let I=0;for(const Q of this)A.call(g,Q,I++,this)}find(A,g){let I=0;for(const Q of this)if(A.call(g,Q,I++,this))return Q}has(A){for(const g of this)if(g===A)return!0;return!1}reduce(A,g){let I=g??0,Q=0;for(const C of this)I=A(I,C,Q++,this);return I}toArray(){return[...this]}toVisual(){return[...this]}print(){console.log(this.toVisual())}}/**
|
|
915
915
|
* data-structure-typed
|
|
916
916
|
* @author Kirk Qi
|
|
917
917
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
918
918
|
* @license MIT License
|
|
919
|
-
*/class
|
|
919
|
+
*/class aI extends Pt{constructor(A=[],g){if(super(g),g){const{comparator:I}=g;I&&(this._comparator=I)}this.addMany(A)}_elements=[];get elements(){return this._elements}get size(){return this.elements.length}get leaf(){return this.elements[this.size-1]??void 0}static heapify(A,g){return new aI(A,g)}add(A){return this._elements.push(A),this._bubbleUp(this.elements.length-1)}addMany(A){const g=[];for(const I of A)this._toElementFn?g.push(this.add(this._toElementFn(I))):g.push(this.add(I));return g}poll(){if(this.elements.length===0)return;const A=this.elements[0],g=this.elements.pop();return this.elements.length&&(this.elements[0]=g,this._sinkDown(0,this.elements.length>>1)),A}peek(){return this.elements[0]}isEmpty(){return this.size===0}clear(){this._elements=[]}refill(A){return this._elements=A,this.fix()}has(A){return this.elements.includes(A)}delete(A){const g=this.elements.indexOf(A);return!(g<0)&&(g===0?this.poll():g===this.elements.length-1?this.elements.pop():(this.elements.splice(g,1,this.elements.pop()),this._bubbleUp(g),this._sinkDown(g,this.elements.length>>1)),!0)}dfs(A="PRE"){const g=[],I=Q=>{const C=2*Q+1,E=C+1;Q<this.size&&(A==="IN"?(I(C),g.push(this.elements[Q]),I(E)):A==="PRE"?(g.push(this.elements[Q]),I(C),I(E)):A==="POST"&&(I(C),I(E),g.push(this.elements[Q])))};return I(0),g}clone(){return new aI(this,{comparator:this.comparator,toElementFn:this.toElementFn})}sort(){const A=[],g=new aI(this,{comparator:this.comparator});for(;g.size!==0;){const I=g.poll();I!==void 0&&A.push(I)}return A}fix(){const A=[];for(let g=Math.floor(this.size/2);g>=0;g--)A.push(this._sinkDown(g,this.elements.length>>1));return A}filter(A,g){const I=new aI([],{toElementFn:this.toElementFn,comparator:this.comparator});let Q=0;for(const C of this)A.call(g,C,Q,this)&&I.add(C),Q++;return I}map(A,g,I,Q){const C=new aI([],{comparator:g,toElementFn:I});let E=0;for(const a of this)C.add(A.call(Q,a,E,this)),E++;return C}_DEFAULT_COMPARATOR=(A,g)=>{if(typeof A=="object"||typeof g=="object")throw TypeError("When comparing object types, a custom comparator must be defined in the constructor's options parameter.");return A>g?1:A<g?-1:0};_comparator=this._DEFAULT_COMPARATOR;get comparator(){return this._comparator}*_getIterator(){for(const A of this.elements)yield A}_bubbleUp(A){const g=this.elements[A];for(;A>0;){const I=A-1>>1,Q=this.elements[I];if(this.comparator(Q,g)<=0)break;this.elements[A]=Q,A=I}return this.elements[A]=g,!0}_sinkDown(A,g){const I=this.elements[A];for(;A<g;){let Q=A<<1|1;const C=Q+1;let E=this.elements[Q];if(C<this.elements.length&&this.comparator(E,this.elements[C])>0&&(Q=C,E=this.elements[C]),this.comparator(E,I)>=0)break;this.elements[A]=E,A=Q}return this.elements[A]=I,!0}}(function(B){B[B.VISIT=0]="VISIT",B[B.PROCESS=1]="PROCESS"})(LC||(LC={}));class TI extends aI{constructor(A=[],g){super(A,g)}clone(){return new TI(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(A,g){const I=new TI([],{toElementFn:this.toElementFn,comparator:this.comparator});let Q=0;for(const C of this)A.call(g,C,Q,this)&&I.add(C),Q++;return I}map(A,g,I,Q){const C=new TI([],{comparator:g,toElementFn:I});let E=0;for(const a of this)C.add(A.call(Q,a,E,this)),E++;return C}}class OI extends TI{constructor(A=[],g){super(A,g)}clone(){return new OI(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(A,g){const I=new OI([],{toElementFn:this.toElementFn,comparator:this.comparator});let Q=0;for(const C of this)A.call(g,C,Q,this)&&I.add(C),Q++;return I}map(A,g,I,Q){const C=new OI([],{comparator:g,toElementFn:I});let E=0;for(const a of this)C.add(A.call(Q,a,E,this)),E++;return C}}new d.Box3,new d.Vector3,new d.Vector3,new d.Vector3,new d.Vector3;const ua=`let n, y = null;
|
|
920
920
|
function S() {
|
|
921
921
|
return (y === null || y.byteLength === 0) && (y = new Uint32Array(n.memory.buffer)), y;
|
|
922
922
|
}
|
|
@@ -1394,5 +1394,5 @@ out vec2 vUv;
|
|
|
1394
1394
|
void main() {
|
|
1395
1395
|
vUv = uv;
|
|
1396
1396
|
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
1397
|
-
}`}function Xt(B,A,g,I){const Q=B.getX(g),C=B.getY(g),E=B.getZ(g),a=A.getX(g),i=A.getY(g),t=A.getZ(g);I.set(Q,C,E,C,a,i,E,i,t)}function Zt(B,A,g){const I=B.determinant();if(Math.abs(I)<1e-12)return void g.set(0,0,0);const Q=1/I,C=new d.Matrix3().copy(B);C.elements[0]=A.x,C.elements[3]=A.y,C.elements[6]=A.z;const E=new d.Matrix3().copy(B);E.elements[1]=A.x,E.elements[4]=A.y,E.elements[7]=A.z;const a=new d.Matrix3().copy(B);a.elements[2]=A.x,a.elements[5]=A.y,a.elements[8]=A.z,g.set(C.determinant()*Q,E.determinant()*Q,a.determinant()*Q)}new d.Vector3,new d.Vector3;var yA;new d.Matrix3().set(1,0,0,0,0,1,0,-1,0),new d.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);const fg=new V.Sphere(new V.Vector3(0,0,0),1),Sg=new cg([0,0,0,1,0,0,0,1,0,0,0,1]);new V.Box3;const Wg=new V.Vector3(0,0,0),lI=new V.Vector3(0,0,0),_t=new V.Vector3(0,1,0),eB=new V.Ray,iB=new V.Matrix4;new V.Matrix4,new V.Frustum;const tB=new V.Vector3,oB=[],TC=new V.Quaternion,Rg={};function Ma(){var B=[];for(let A in Rg)Rg.hasOwnProperty(A)&&Rg[A]>0&&B.push(A);return B}class JQ extends V.Object3D{constructor(A){super();const g=this;if(g.splatsMesh=A.splatsMesh,g.oldUltraMeshSplats=A.oldUltraMeshSplats,g.iosCompatibility=A.iosCompatibility,g.splatsQuality=A.splatsQuality!=null?A.splatsQuality:.75,g.splatsCPUCulling=A.splatsCPUCulling!=null&&A.splatsCPUCulling,this.contentURL=[],A.domWidth&&A.domHeight?this.rendererSize=new V.Vector2(A.domWidth,A.domHeight):this.rendererSize=new V.Vector2(1e3,1e3),this.setClipShape(A.clipShape),this.loadingStrategy=A.loadingStrategy?A.loadingStrategy.toUpperCase():"INCREMENTAL",this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.proxy=A.proxy,this.drawBoundingVolume=!!A.drawBoundingVolume&&A.drawBoundingVolume,this.displayErrors=A.displayErrors,this.displayCopyright=A.displayCopyright,A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=jE(),A.tileLoader)this.tileLoader=A.tileLoader;else{const C={};C.meshCallback=A.meshCallback?A.meshCallback:(a,i)=>{a.material.wireframe=!1,a.material.side=V.DoubleSide},C.pointsCallback=A.pointsCallback?A.pointsCallback:(a,i)=>{a.material.size=Math.pow(i,.33),a.material.sizeAttenuation=!0},C.proxy=this.proxy,C.renderer=A.renderer,C.dracoLoader=A.dracoLoader,C.ktx2Loader=A.ktx2Loader,g.tileLoader=new KE(C);const E=this.update;this.update=a=>{E.call(g,a),g.tileLoader.update()}}if(this.displayCopyright=!!A.displayCopyright,this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.splatsCropRadius=Number.MAX_VALUE,this.splatsSizeMultiplier=1,this.renderer=A.renderer,this.meshCallback=A.meshCallback,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.occlusionCullingService=A.occlusionCullingService,this.static=A.static,this.occlusionCullingService&&(this.color=new V.Color,this.color.setHex(16777215*Math.random()),this.colorID=V.MathUtils.clamp(255*g.color.r,0,255)<<16^V.MathUtils.clamp(255*g.color.g,0,255)<<8^V.MathUtils.clamp(255*g.color.b,0,255)),this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.childrenTiles=[],this.meshContent=[],this.tileContent,this.refine,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.abortController=new AbortController,this.onLoadCallback=A.onLoadCallback,A.json)g._setup(A);else if(A.url){var I=A.url;if(g.queryParams){var Q="";for(let C in g.queryParams)g.queryParams.hasOwnProperty(C)&&(Q+="&"+C+"="+g.queryParams[C]);I.includes("?")?I+=Q:I+="?"+Q.substring(1)}(g.proxy?()=>fetch(g.proxy,{method:"POST",body:I,signal:g.abortController.signal}):()=>fetch(I,{signal:g.abortController.signal}))().then(C=>{if(!C.ok)throw new Error(`couldn't load "${A.url}". Request failed with status ${C.status} : ${C.statusText}`);C.json().then(E=>GQ(E,I)).then(E=>{g._setup({rootPath:_g.dirname(A.url),json:E})})}).catch(C=>{g.displayErrors&&OC(C)})}}setClipShape(A){if(A instanceof cg||A instanceof V.Sphere)this.clipShape=A;else if(A instanceof V.Box3){const g=new V.Vector3,I=new V.Vector3;A.getCenter(g),A.getSize(I).multiplyScalar(.5),this.clipShape=new cg([g.x,g.y,g.z,I.x,0,0,0,I.y,0,0,0,I.z])}else A=void 0;this.childrenTiles&&this.childrenTiles.forEach(g=>{g._setClipShape(this.clipShape)})}_setClipShape(A){this.clipShape=A,this.childrenTiles&&this.childrenTiles.forEach(g=>{g._setClipShape(this.clipShape)})}setSplatsSizeMultiplier(A){this.splatsSizeMultiplier=A,this.splatsMesh&&this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier)}setSplatsCropRadius(A){this.splatsCropRadius=A,this.splatsMesh&&this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius)}setSplatsDepthBias(A){this.splatsDepthBias=A,this.splatsMesh&&this.splatsMesh.setDepthBias(this.splatsDepthBias)}setSplatsCPUCulling(A){this.splatsCPUCulling=A,this.splatsMesh&&this.splatsMesh.setSplatsCPUCulling(A)}setSplatsQuality(A){this.splatsQuality=A,this.splatsMesh&&this.splatsMesh.setQuality(A)}updateMatrices(){this.updateMatrix(),this.splatsMesh&&this.splatsMesh.updateMatrix(),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!0)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!0)),this.updateMatrixWorld(!0),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!1)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!1))}setCanvasSize(A,g){this.rendererSize.set(A,g)}async _setup(A){const g=this;if(A.json.extensionsRequired&&(A.json.extensionsRequired.includes("JDULTRA_gaussian_splats")||A.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2"))&&(g.oldUltraMeshSplats=!0),A.json.root?(g.json=A.json.root,g.json.refine||(g.json.refine=A.json.refine),g.json.geometricError||(g.json.geometricError=A.json.geometricError),g.json.transform||(g.json.transform=A.json.transform),g.json.boundingVolume||(g.json.boundingVolume=A.json.boundingVolume)):g.json=A.json,g.json.children||(g.json.getChildren?g.json.children=await g.json.getChildren():g.json.children=[]),g.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,g.json.refine?g.refine=g.json.refine:g.refine=A.parentRefine,g.json.geometricError?g.geometricError=g.json.geometricError:g.geometricError=A.parentGeometricError,g.json.transform){let Q=new V.Matrix4;Q.elements=g.json.transform,g.applyMatrix4(Q)}if(g.json.boundingVolume)if(g.json.boundingVolume.box)g.boundingVolume=new cg(g.json.boundingVolume.box);else if(g.json.boundingVolume.region){const Q=g.json.boundingVolume.region;g._transformWGS84ToCartesian(Q[0],Q[1],Q[4],Wg),g._transformWGS84ToCartesian(Q[2],Q[3],Q[5],lI),Wg.lerp(lI,.5),g.boundingVolume=new V.Sphere(new V.Vector3(Wg.x,Wg.y,Wg.z),Wg.distanceTo(lI))}else if(g.json.boundingVolume.sphere){const Q=g.json.boundingVolume.sphere;g.boundingVolume=new V.Sphere(new V.Vector3(Q[0],Q[1],Q[2]),Q[3])}else g.boundingVolume=A.parentBoundingVolume;else g.boundingVolume=A.parentBoundingVolume;function I(Q){Q.uri&&Q.uri.includes("json")||Q.url&&Q.url.includes("json")?g.hasUnloadedJSONContent++:g.hasMeshContent++}if(g.json.content?(I(g.json.content),g.hasMeshContent==0&&(g.level=Math.max(0,g.parentTile?g.parentTile.level+.01:0)),g._load()):g.json.contents&&(g.json.contents.forEach(Q=>I(Q)),g.hasMeshContent==0&&(g.level=Math.max(0,g.parentTile?g.parentTile.level+.01:0))),g.centerModel&&(lI.copy(g.boundingVolume.center),this.json.boundingVolume.region&&(this._transformWGS84ToCartesian(.5*(this.json.boundingVolume.region[0]+this.json.boundingVolume.region[2]),.5*(this.json.boundingVolume.region[1]+this.json.boundingVolume.region[3]),.5*(this.json.boundingVolume.region[4]+this.json.boundingVolume.region[5]),Wg),TC.setFromUnitVectors(Wg.normalize(),_t.normalize()),g.applyQuaternion(TC)),lI.applyMatrix4(g.matrix),g.position.sub(lI),g.updateMatrices()),g.onLoadCallback&&g.onLoadCallback(g),g.isSetup=!0,g.level>0&&g.drawBoundingVolume)if(g.bbox&&console.log("double setup"),this.boundingVolume.aabb){let Q=this.boundingVolume.aabb.clone();Q.applyMatrix4(this.matrixWorld),g.bbox=new V.Box3Helper(Q,new V.Color(Math.random(),Math.random(),Math.random())),g.add(g.bbox),g.bbox.material.visible=!1}else g.boundingVolume instanceof cg&&(g.bbox=g.boundingVolume.helper(),g.add(g.bbox),g.bbox.material.visible=!1)}_assembleURL(A,g){A.endsWith("/")||(A+="/");try{const I=new URL(A);let Q=I.pathname.split("/").filter(E=>E!==""),C=g.split("/").filter(E=>E!=="");for(let E=1;E<=Q.length&&!(E>=C.length);E++)if(Q.slice(Q.length-E,Q.length).join("/")===C.slice(0,E).join("/")){for(let i=0;i<E;i++)Q.pop();break}for(;C.length>0&&C[0]==="..";)Q.pop(),C.shift();return`${I.protocol}//${I.host}/${[...Q,...C].join("/")}`}catch{return A.endsWith("/")||g.startsWith("/")?A+g:A+"/"+g}}_extractQueryParams(A,g){try{const I=new URL(A);for(let[Q,C]of I.searchParams)g[Q]=C;return I.search="",I.toString()}catch{return A}}async _load(A=!0,g=!0){var I=this;if(!I.deleted||!g){if(I.json.content)await Q(I.json.content,null,A,g);else if(I.json.contents){let C=I.json.contents.map((E,a)=>Q(E,a,A,g));Promise.all(C)}}async function Q(C,E,a,i){let t;C.uri?t=C.uri:C.url&&(t=C.url);const e=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(e.test(I.rootPath)?e.test(t)||(t=I._assembleURL(I.rootPath,t)):_g.isAbsolute(I.rootPath)&&(t=I.rootPath+_g.sep+t),t.startsWith("/local-tiles")||(t=I._extractQueryParams(t,I.queryParams)),I.queryParams){var o="";for(let r in I.queryParams)I.queryParams.hasOwnProperty(r)&&(o+="&"+r+"="+I.queryParams[r]);t.includes("?")?t+=o:t+="?"+o.substring(1)}if(t)if(I.contentURL.push(t),i&&(t.includes(".b3dm")||t.includes(".glb")||t.includes(".gltf")))try{I.tileLoader.get(I.abortController,I.uuid,t,r=>{if(!I.deleted)return r.asset&&r.asset.copyright&&(r.asset.copyright.split(";").forEach(n=>{Rg[n]?Rg[n]++:Rg[n]=1}),I.displayCopyright&&iQ()),r.isSplatsData&&(I.splatsMesh||(I.splatsMesh=new fa(I.tileLoader.renderer),I.splatsMesh.setQuality(I.splatsQuality),I.splatsMesh.setSplatsCPUCulling(I.splatsCPUCulling),I.splatsMesh.setSplatsCropRadius(I.splatsCropRadius),I.splatsMesh.setSplatsSizeMultiplier(I.splatsSizeMultiplier),I.static&&(I.splatsMesh.matrixAutoUpdate=!1,I.splatsMesh.matrixWorldAutoUpdate=!1),I.add(I.splatsMesh),I.updateMatrices()),r=I.splatsMesh.addSplatsTile(r.positions,r.colors,r.cov0,r.cov1)),r.isSplatsBatch||(r.traverse(n=>{if((n.isMesh||n.isPoints)&&n.layers.disable(0),n.isMesh&&I.occlusionCullingService){const s=n.geometry.attributes.position,c=[];for(let D=0;D<s.count;D++)c.push(I.color.r,I.color.g,I.color.b);n.geometry.setAttribute("color",new V.Float32BufferAttribute(c,3))}}),I.add(r),I.updateMatrices()),I.meshContent.push(r),r},I.cameraOnLoad?()=>I.loadingStrategy=="IMMEDIATE"?I._calculateDistanceToCamera(I.cameraOnLoad):I.loadingStrategy=="INCREMENTAL"?I.parentTile?I.parentTile._calculateDistanceToCamera(I.cameraOnLoad)/Math.max(1,I.parentTile.level):I._calculateDistanceToCamera(I.cameraOnLoad)/Math.max(1,I.level):I.loadingStrategy=="PERLEVEL"?I.parentTile?I.level+I.parentTile._calculateDistanceToCamera(I.cameraOnLoad):I.level+I._calculateDistanceToCamera(I.cameraOnLoad):0:()=>0,()=>I._getSiblings(),I.level,I.loadingStrategy,!I.json.boundingVolume.region,!!I.json.boundingVolume.region,I.geometricError,I.oldUltraMeshSplats)}catch(r){I.displayErrors&&OC(r)}else a&&t.includes(".json")&&(I.jsonRequested=t,I.tileLoader.get(I.abortController,I.uuid,t,async r=>{I.jsonReceived=!0,r.rootPath=_g.dirname(t),I.json.children.push(r),E==null?delete I.json.content:I.json.contents.splice(E,1),I.hasUnloadedJSONContent--}))}}dispose(){const A=this;A.meshContent.forEach(g=>{g&&g.asset&&g.asset.copyright&&(g.asset.copyright.split(";").forEach(I=>{Rg[I]&&Rg[I]--}),A.displayCopyright&&iQ())}),A.childrenTiles.forEach(g=>g.dispose()),A.deleted=!0,A.splatsMesh&&(A.meshContent.forEach(g=>g.hide()),A.parentTile||(A.splatsMesh.dispose(),A.splatsMesh=void 0)),A.contentURL&&(A.contentURL.forEach(g=>{A.tileLoader.invalidate(g,A.uuid)}),A.contentURL=[]),A.abortController&&!A.jsonRequested&&A.abortController.abort("tile not needed"),this.parent=null,A.meshContent=[],A.bbox&&A.bbox.dispose(),this.dispatchEvent({type:"removed"})}_disposeMeshContent(){const A=this;if(!A.deleted){A.deleted=!0,A.abortController&&(A.abortController.abort("tile not needed"),A.abortController=new AbortController);for(let g=A.meshContent.length-1;g>=0;g--){const I=A.meshContent[g];I&&I.asset&&I.asset.copyright&&(I.asset.copyright.split(";").forEach(Q=>{Rg[Q]&&Rg[Q]--}),A.displayCopyright&&iQ()),A.remove(I)}A.splatsMesh&&A.meshContent.forEach(g=>g.hide()),A.meshContent=[],A.contentURL.forEach(g=>{A.tileLoader.invalidate(g,A.uuid)}),A.contentURL=[]}}_disposeChildren(){var A=this;A.childrenTiles.forEach(g=>{g.dispose(),A.remove(g)}),A.childrenTiles=[]}raycast(A,g){if(this.splatsMesh){eB.copy(A.ray),iB.copy(this.matrixWorld).invert(),eB.applyMatrix4(iB);let I=!1;if(this.boundingVolume instanceof cg)I=this.boundingVolume.intersectsRay(eB);else{if(!(this.boundingVolume instanceof V.Sphere))return!1;I=ray.intersectsSphere(this.boundingVolume)}return I&&this.materialVisibility&&this.splatsReady&&(oB.length=0,this.meshContent.forEach(Q=>{Q.isSplatsBatch&&(Q.raycast(eB,oB,A.params.Points.threshold),oB.forEach(C=>{C.point.applyMatrix4(this.matrixWorld)}),g.push(...oB))})),I}return super.raycast(A,g)}update(A){this.splatsMesh&&this.splatsMesh.updateShaderParams(A,this.renderer);const g=new V.Frustum;g.setFromProjectionMatrix(new V.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse));let I=[0],Q=[0],C=[0],E=[0];if(this.refine=="REPLACE"?this.loadingStrategy==="IMMEDIATE"?(this._updateImmediate(A,g),this._statsImmediate(C,I,E,Q)):(this._update(A,g),this._stats(C,I,E,Q)):(this._update(A,g),this._stats(C,I,E,Q)),I>0&&(E[0]/=I[0]),this.splatsMesh)if(tB.copy(A.position),iB.copy(this.matrixWorld).invert(),tB.applyMatrix4(iB),this.splatsCPUCulling){const a=new V.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse).multiply(this.matrixWorld);this.splatsMesh.sort(tB,a)}else this.splatsMesh.sort(tB);return{numTilesLoaded:I[0],numTilesRendered:Q[0],maxLOD:C[0],percentageLoaded:E[0]}}_updateImmediate(A,g){this._computeMetricRecursive(A,g),this._updateNodeVisibilityImmediate(),this._expandTreeImmediate(A),this.shouldBeVisible=this.metric>0||!!this.loadOutsideView,this._shouldBeVisibleUpdateImmediate(),this._trimTreeImmediate(),this._loadMeshImmediate()}_statsImmediate(A,g,I,Q){A[0]=Math.max(A[0],this.level),(this.shouldBeVisible||this.materialVisibility)&&(g[0]++,this.materialVisibility&&I[0]++),this.materialVisibility&&Q[0]++,this.childrenTiles.forEach(C=>{C._statsImmediate(A,g,I,Q)})}_stats(A,g,I,Q){A[0]=Math.max(A[0],this.level),this.hasMeshContent&&(g[0]++,this.meshContent.length==this.hasMeshContent&&I[0]++,this.materialVisibility&&Q[0]++),this.childrenTiles.forEach(C=>{C._stats(A,g,I,Q)})}_trimTreeImmediate(){const A=this;if(A.metric!=null)if(A.hasMeshContent&&A.shouldBeVisible&&A.materialVisibility){if(A.splatsMesh&&!A.splatsReady)return;A._disposeChildren()}else A.childrenTiles.forEach(g=>{g._trimTreeImmediate()})}_updateNodeVisibilityImmediate(A=!1){const g=this;if(g.hasMeshContent)if(g.shouldBeVisible)g.meshContent.length==g.hasMeshContent?g.materialVisibility?g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(!0)}):(g._changeContentVisibility(!0),g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)})):g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else{if(!g.loadOutsideView&&g.metric<0)return g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),void g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(!0)});if(!g.materialVisibility||g.splatsMesh&&!g.splatsReady)g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else if(A)g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else{let I=!0;g.childrenTiles.every(Q=>!!Q._isReadyImmediate()||(I=!1,!1)),I&&g.childrenTiles.length>0?(g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),g.childrenTiles.forEach(Q=>{Q._updateNodeVisibilityImmediate(A)})):g.childrenTiles.forEach(Q=>{Q._updateNodeVisibilityImmediate(!g.splatsMesh||!!g.splatsReady)})}}else g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)})}_shouldBeVisibleUpdateImmediate(){const A=this;A.hasMeshContent?A.metric==null?A.shouldBeVisible=!1:A.metric<0?(A.shouldBeVisible=!!A.loadOutsideView,A.childrenTiles.forEach(g=>{g._setShouldNotBeVisibleRecursive()})):A.metric<A.geometricErrorMultiplier*A.geometricError?A.hasUnloadedJSONContent||(A.json&&A.json.children&&A.json.children.length>0?(A.shouldBeVisible=!1,A.childrenTiles.forEach(g=>{g.shouldBeVisible=!0,g._shouldBeVisibleUpdateImmediate()})):A.shouldBeVisible=!0):A.childrenTiles.forEach(g=>{g._setShouldNotBeVisibleRecursive()}):(A.childrenTiles.forEach(g=>{g.shouldBeVisible=!0,g._shouldBeVisibleUpdateImmediate()}),A.shouldBeVisible=!1)}_setShouldNotBeVisibleRecursive(){this.shouldBeVisible=!1,this.childrenTiles.forEach(A=>{A._setShouldNotBeVisibleRecursive()})}_loadMeshImmediate(){const A=this;A.hasMeshContent&&A.shouldBeVisible?A.meshContent.length<A.hasMeshContent&&A.contentURL.length==0&&(A.deleted=!1,A._load(!1,!0)):A.childrenTiles.forEach(g=>{g._loadMeshImmediate()})}_computeMetricRecursive(A,g){const I=this;I.metric=-1,I.isSetup&&(I.boundingVolume&&I.geometricError&&(I.metric=I._calculateUpdateMetric(A,g)),I.childrenTiles.forEach(Q=>Q._computeMetricRecursive(A,g)))}_expandTreeImmediate(A){const g=this;g.hasUnloadedJSONContent||(g.hasMeshContent?g.occlusionCullingService&&g.hasMeshContent&&!g.occlusionCullingService.hasID(g.colorID)||g.metric>=0&&g.metric<g.geometricErrorMultiplier*g.geometricError&&g.json&&g.json.children&&g.childrenTiles.length<g.json.children.length&&g._loadJsonChildren(A):g.json&&g.json.children&&g.childrenTiles.length<g.json.children.length&&g._loadJsonChildren(A)),g.childrenTiles.forEach(I=>I._expandTreeImmediate(A))}_update(A,g){const I=this;if(!I.isSetup)return;const Q=I.materialVisibility;I.boundingVolume&&I.geometricError&&(I.metric=I._calculateUpdateMetric(A,g)),I.childrenTiles.forEach(C=>C._update(A,g)),function(C){if(C<0)return I.inFrustum=!1,void I._changeContentVisibility(!!I.loadOutsideView);if(I.inFrustum=!0,!!I.hasMeshContent&&!(I.meshContent.length<I.hasMeshContent)){if(I.childrenTiles.length==0)return void I._changeContentVisibility(!0);if(C>=I.geometricErrorMultiplier*I.geometricError)I._changeContentVisibility(!0);else if(C<I.geometricErrorMultiplier*I.geometricError&&I.refine=="REPLACE"){let E=!0;I.childrenTiles.every(a=>!!a._isReady()||(E=!1,!1)),E?I._changeContentVisibility(!1):I._changeContentVisibility(!0)}}}(I.metric),function(C){C<0&&I.hasMeshContent||I.occlusionCullingService&&I.hasMeshContent&&!I.occlusionCullingService.hasID(I.colorID)||(!I.hasMeshContent||C<=I.geometricErrorMultiplier*I.geometricError&&(I.meshContent.length>0||I.splatsMesh))&&I.json&&I.json.children&&I.childrenTiles.length!=I.json.children.length&&I._loadJsonChildren(A)}(I.metric),function(C,E){if(I.hasMeshContent){if(!I.inFrustum)return void I._disposeChildren();if(I.occlusionCullingService&&!E&&I.hasMeshContent&&I.meshContent.length>0&&I.materialVisibility&&I._areAllChildrenLoadedAndHidden())return I.splatsMesh&&I.materialVisibility&&!I.splatsReady?void 0:void I._disposeChildren();if(C>=I.geometricErrorMultiplier*I.geometricError){if(I.splatsMesh&&I.materialVisibility&&!I.splatsReady)return;I._disposeChildren()}}}(I.metric,Q)}_loadJsonChildren(A){const g=this;for(let I=g.json.children.length-1;I>=0;I--)g.json.children[I].root||g.json.children[I].children||g.json.children[I].getChildren||g.json.children[I].content||g.json.children[I].contents||g.json.children.splice(I,1);g.json.children.forEach(I=>{let Q=new JQ({parentTile:g,queryParams:g.queryParams,parentGeometricError:g.geometricError,parentBoundingVolume:g.boundingVolume,parentRefine:g.refine,json:I,rootPath:g.rootPath,geometricErrorMultiplier:g.geometricErrorMultiplier,loadOutsideView:g.loadOutsideView,level:Math.floor(g.level)+1,tileLoader:g.tileLoader,cameraOnLoad:A,occlusionCullingService:g.occlusionCullingService,renderer:g.renderer,static:g.static,centerModel:!1,displayErrors:g.displayErrors,displayCopyright:g.displayCopyright,distanceBias:g.distanceBias,loadingStrategy:g.loadingStrategy,drawBoundingVolume:g.drawBoundingVolume,splatsMesh:g.splatsMesh,clipShape:g.clipShape,oldUltraMeshSplats:g.oldUltraMeshSplats});g.childrenTiles.push(Q),g.add(Q)}),g.updateMatrices(!0)}_areAllChildrenLoadedAndHidden(){let A=!0;const g=this;return this.childrenTiles.every(I=>{if(I.hasMeshContent){if(I.childrenTiles.length>0)return A=!1,!1;if(I.metric<0)return!0;if(I.materialVisibility&&(!g.splatsMesh||g.splatsReady)||g.occlusionCullingService.hasID(I.colorID))return A=!1,!1}else if(!I._areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}_isReady(){if(this.metric==null)return!1;if(this.metric<0)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent&&this.json.children.length==0&&!this.hasUnloadedJSONContent)return!0;if(!this.hasMeshContent||this.meshContent.length==0||!this.materialVisibility){if(this.children.length>0){var A=!0;return this.childrenTiles.every(g=>!!g._isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.length<this.hasMeshContent)&&!!this.materialVisibility}_isReadyImmediate(){if(this.materialVisibility||!this.loadOutsideView&&this.metric<0)return!0;if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(g=>!!g._isReadyImmediate()||(A=!1,!1)),A}return!1}_changeContentVisibility(A){const g=this;if(g.bbox&&(g.bbox.material.visible=A),g.splatsMesh)A!=g.materialVisibility&&(g.meshContent.forEach(I=>{A&&I.isSplatsBatch?I.show(()=>{g.materialVisibility&&(g.splatsReady=!0)}):(I.hide(),g.splatsReady=!1)}),g.materialVisibility=A);else{if(g.hasMeshContent&&g.meshContent.length>0&&(A?g.meshContent.forEach(I=>{I.traverse(Q=>{(Q.isMesh||Q.isPoints)&&Q.layers.enable(0)})}):g.meshContent.forEach(I=>{I.traverse(Q=>{(Q.isMesh||Q.isPoints)&&Q.layers.disable(0)})})),g.materialVisibility==A)return;g.materialVisibility=A}}_calculateUpdateMetric(A,g){let I=0;if(this.boundingVolume instanceof cg){if(Sg.copy(this.boundingVolume),Sg.applyMatrix4(this.matrixWorld),!Sg.inFrustum(g))return-1;if(this.clipShape!=null&&(this.clipShape.isSphere&&!Sg.intersectsSphere(this.clipShape)||this.clipShape.isOBB&&!Sg.intersectsOBB(this.clipShape)))return Number.MAX_VALUE;I=Math.max(0,Sg.distanceToPoint(A.position)-A.near)}else{if(!(this.boundingVolume instanceof V.Sphere))return console.error("unsupported shape"),-1;if(fg.copy(this.boundingVolume),fg.applyMatrix4(this.matrixWorld),this.clipShape!=null&&(this.clipShape.isOBB&&!this.clipShape.intersectsSphere(fg)||this.clipShape.isSphere&&!this.clipShape.intersectsSphere(fg)))return Number.MAX_VALUE;if(!g.intersectsSphere(fg))return-1;I=Math.max(0,A.position.distanceTo(fg.center)-fg.radius-A.near)}if(I=Math.pow(I,this.distanceBias),I==0)return 0;const Q=this.matrixWorld.getMaxScaleOnAxis();this.renderer&&this.renderer.getDrawingBufferSize(this.rendererSize);let C=this.rendererSize.y,E=A.fov;return A.aspect<1&&(E*=A.aspect,C=this.rendererSize.x),16*(2*Math.tan(.5*E*.017453292519943295)*I)/(C*Q)}_getSiblings(){const A=this,g=[];if(!A.parentTile)return g;let I=A.parentTile;for(;!I.hasMeshContent&&I.parentTile;)I=I.parentTile;return I.childrenTiles.forEach(Q=>{if(Q&&Q!=A){for(;!Q.hasMeshContent&&Q.childrenTiles[0];)Q=Q.childrenTiles[0];g.push(Q)}}),g}_calculateDistanceToCamera(A){return this.boundingVolume instanceof cg?(Sg.copy(this.boundingVolume),Sg.applyMatrix4(this.matrixWorld),Math.max(0,Sg.distanceToPoint(A.position))):this.boundingVolume instanceof V.Sphere?(fg.copy(this.boundingVolume),fg.applyMatrix4(this.matrixWorld),Math.max(0,A.position.distanceTo(fg.center)-fg.radius)):(console.error("unsupported shape"),-1)}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A,this.childrenTiles.forEach(g=>g.setGeometricErrorMultiplier(A))}setDistanceBias(A){this.distanceBias=A,this.childrenTiles.forEach(g=>g.setDistanceBias(A))}_transformWGS84ToCartesian(A,g,I,Q){const C=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(g),2)),E=Math.cos(g),a=Math.cos(A),i=Math.sin(g),t=C+I,e=t*E*a,o=t*E*Math.sin(A),r=(.993305615557957*C+I)*i;Q.set(e,o,r)}hideCopyright(){(function(){yA||((yA=document.createElement("div")).style.position="fixed",yA.style.bottom="20px",yA.style.left="20px",yA.style.color="white",yA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",yA.style.padding="10px",yA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(yA)),yA.style.opacity=0})()}showCopyright(){(function(){yA||((yA=document.createElement("div")).style.position="fixed",yA.style.bottom="20px",yA.style.left="20px",yA.style.color="white",yA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",yA.style.padding="10px",yA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(yA)),yA.style.opacity=1})()}}function OC(B){var A=document.createElement("div");A.textContent=B,A.style.position="fixed",A.style.top="10px",A.style.left="50%",A.style.transform="translateX(-50%)",A.style.padding="10px",A.style.backgroundColor="#ff8800",A.style.color="#ffffff",A.style.zIndex="9999",document.body.appendChild(A),setTimeout(function(){A.remove()},8e3)}function iQ(){yA||((yA=document.createElement("div")).style.position="fixed",yA.style.bottom="20px",yA.style.left="20px",yA.style.color="white",yA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",yA.style.padding="10px",yA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(yA));const B=Ma();let A="";B.forEach(g=>{A+=g+", "}),A=A.slice(0,-2),yA.textContent=A}const Eg=new V.Sphere(new V.Vector3(0,0,0),1),Pg=new V.Vector3(0,0,0),tQ=new V.Vector3(0,0,0),$t=new V.Vector3(0,1,0),oQ=new V.Vector2,WC=new V.Quaternion,PC=new V.Matrix4;class YQ extends V.Object3D{constructor(A){super();const g=this;if(A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=jE(),A.tileLoader?this.tileLoader=A.tileLoader:console.error("an instanced tileset must be provided an InstancedTilesetLoader"),this.master=A.master,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.childrenTiles=[],this.jsonChildren=[],this.meshContent=new Set,this.static=A.static,this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.tileContent,this.refinement,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.inFrustum=!0,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.deleted=!1,this.abortController=new AbortController,A.json)this.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,A.json.children&&(this.jsonChildren=A.json.children),g.setup(A);else if(A.url){this.loadJson=(C,E)=>{const a=_g.dirname(E);g.setup({rootPath:a,json:C,onLoadCallback:A.onLoadCallback})};var I=A.url;if(g.queryParams){var Q="";for(let C in g.queryParams)g.queryParams.hasOwnProperty(C)&&(Q+="&"+C+"="+g.queryParams[C]);I.includes("?")?I+=Q:I+="?"+Q.substring(1)}g.tileLoader.get(g.abortController,I,g.uuid,g)}}async setup(A){const g=this;A.json.root?(g.json=A.json.root,!g.json.children&&g.json.getChildren&&(g.json.children=await g.json.getChildren()),g.jsonChildren=g.json.children,g.json.refinement||(g.json.refinement=A.json.refinement),g.json.geometricError||(g.json.geometricError=A.json.geometricError),g.json.transform||(g.json.transform=A.json.transform),g.json.boundingVolume||(g.json.boundingVolume=A.json.boundingVolume)):(g.json=A.json,!g.json.children&&g.json.getChildren&&(g.json.children=await g.json.getChildren(),g.jsonChildren=g.json.children)),g.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,g.json.refinement?g.refinement=g.json.refinement:g.refinement=A.parentRefinement,g.json.geometricError?g.geometricError=g.json.geometricError:g.geometricError=A.parentGeometricError;let I=new V.Matrix4;if(g.json.transform&&!g.centerModel&&(I.elements=g.json.transform),g.applyMatrix4(I),g.parentTile&&g.parentTile.matrix&&(g.matrix.premultiply(g.parentTile.matrix),g.matrix.decompose(g.position,g.quaternion,g.scale)),g.matrixWorldNeedsUpdate=!0,g.updateWorldMatrix(!0,!0),g.json.boundingVolume)if(g.json.boundingVolume.box)g.boundingVolume=new cg(g.json.boundingVolume.box);else if(g.json.boundingVolume.region){const C=g.json.boundingVolume.region;g.transformWGS84ToCartesian(C[0],C[1],C[4],Pg),g.transformWGS84ToCartesian(C[2],C[3],C[5],tQ),Pg.lerp(tQ,.5),g.boundingVolume=new V.Sphere(new V.Vector3(Pg.x,Pg.y,Pg.z),Pg.distanceTo(tQ))}else if(g.json.boundingVolume.sphere){const C=g.json.boundingVolume.sphere;g.boundingVolume=new V.Sphere(new V.Vector3(C[0],C[1],C[2]),C[3])}else g.boundingVolume=A.parentBoundingVolume;else g.boundingVolume=A.parentBoundingVolume;function Q(C){C.uri&&C.uri.includes("json")||C.url&&C.url.includes("json")?g.hasUnloadedJSONContent++:g.hasMeshContent++}if(g.json.content?(Q(g.json.content),g.load()):g.json.contents&&(g.json.contents.forEach(C=>Q(C)),g.load()),g.centerModel){const C=new V.Sphere;g.boundingVolume instanceof cg?C.copy(g.boundingVolume.sphere):g.boundingVolume instanceof V.Sphere&&C.copy(g.boundingVolume),this.json.boundingVolume.region&&(g.transformWGS84ToCartesian(.5*(g.json.boundingVolume.region[0]+g.json.boundingVolume.region[2]),.5*(g.json.boundingVolume.region[1]+g.json.boundingVolume.region[3]),.5*(g.json.boundingVolume.region[4]+g.json.boundingVolume.region[5]),Pg),WC.setFromUnitVectors(Pg.normalize(),$t.normalize()),g.master.applyQuaternion(WC),g.master.updateWorldMatrix(!1,!1)),PC.makeTranslation(-C.center.x*g.scale.x,-C.center.y*g.scale.y,-C.center.z*g.scale.z),g.master.matrix.multiply(PC),g.master.matrix.decompose(g.master.position,g.master.quaternion,g.master.scale)}g.isSetup=!0,A.onLoadCallback&&A.onLoadCallback(g)}isAbsolutePathOrURL(A){const g=/^(?:http|https|ftp|tcp|udp):\/\/\S+/.test(A),I=A.startsWith("/")&&!A.startsWith("//");return g||I}assembleURL(A,g){A.endsWith("/")||(A+="/");const I=new URL(A);let Q=I.pathname.split("/").filter(E=>E!==""),C=g.split("/").filter(E=>E!=="");for(let E=1;E<=Q.length&&!(E>=C.length);E++)if(Q.slice(Q.length-E,Q.length).join("/")===C.slice(0,E).join("/")){for(let a=0;a<E;a++)Q.pop();break}for(;C.length>0&&C[0]==="..";)Q.pop(),C.shift();return`${I.protocol}//${I.host}/${[...Q,...C].join("/")}`}extractQueryParams(A,g){const I=new URL(A);for(let[Q,C]of I.searchParams)g[Q]=C;return I.search="",I.toString()}load(){var A=this;function g(I){let Q;I.uri?Q=I.uri:I.url&&(Q=I.url);const C=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(C.test(A.rootPath)?C.test(Q)||(Q=A.assembleURL(A.rootPath,Q)):_g.isAbsolute(A.rootPath)&&(Q=A.rootPath+_g.sep+Q),Q=A.extractQueryParams(Q,A.queryParams),A.queryParams){var E="";for(let a in A.queryParams)A.queryParams.hasOwnProperty(a)&&(E+="&"+a+"="+A.queryParams[a]);Q.includes("?")?Q+=E:Q+="?"+E.substring(1)}Q&&(Q.includes(".b3dm")||Q.includes(".glb")||Q.includes(".gltf")?(A.contentURL=Q,A.tileLoader.get(A.abortController,Q,A.uuid,A,A.cameraOnLoad?()=>A.calculateDistanceToCamera(A.cameraOnLoad):()=>0,()=>A.getSiblings(),A.level,!A.json.boundingVolume.region,!!A.json.boundingVolume.region,A.geometricError)):Q.includes(".json")&&A.tileLoader.get(A.abortController,Q,A.uuid,A))}A.deleted||(A.json.content?g(A.json.content):A.json.contents&&A.json.contents.forEach(I=>g(I)))}loadMesh(A){this.deleted||this.meshContent.add(A)}loadJson(A,g){this.deleted||(this.json.children&&(this.jsonChildren=this.json.children),A.rootPath=_g.dirname(g),this.jsonChildren.push(A),this.hasUnloadedJSONContent--)}dispose(){const A=this;A.childrenTiles.forEach(g=>g.dispose()),A.deleted=!0,A.abortController&&A.abortController.abort(),this.parent=null,this.parentTile=null,this.dispatchEvent({type:"removed"})}disposeChildren(){this.childrenTiles.forEach(A=>A.dispose()),this.childrenTiles=[]}_update(A,g){const I=this;function Q(C){if(I.hasMeshContent&&!(I.meshContent.size<I.hasMeshContent)){if(C<0)return I.inFrustum=!1,void I.changeContentVisibility(!!I.loadOutsideView);if(I.inFrustum=!0,I.childrenTiles.length!=0){if(C>=I.master.geometricErrorMultiplier*I.geometricError)I.changeContentVisibility(!0);else if(C<I.master.geometricErrorMultiplier*I.geometricError){let E=!0;I.childrenTiles.every(a=>!!a.isReady()||(E=!1,!1)),E&&I.changeContentVisibility(!1)}}else I.changeContentVisibility(!0)}}I.isSetup&&(I.materialVisibility,I.boundingVolume&&I.geometricError&&(I.metric=I.calculateUpdateMetric(A,g)),I.childrenTiles.forEach(C=>C._update(A,g)),Q(I.metric),function(C){C<0&&I.hasMeshContent||(!I.hasMeshContent&&I.rootPath||C<I.master.geometricErrorMultiplier*I.geometricError&&I.meshContent.size>0)&&I.json&&I.jsonChildren&&I.childrenTiles.length!=I.jsonChildren.length&&I.jsonChildren.forEach(E=>{if(!(E.root||E.children||E.getChildren||E.content||E.contents))return;let a=new YQ({parentTile:I,queryParams:I.queryParams,parentGeometricError:I.geometricError,parentBoundingVolume:I.boundingVolume,parentRefinement:I.refinement,json:E,rootPath:I.rootPath,loadOutsideView:I.loadOutsideView,level:I.level+1,tileLoader:I.tileLoader,cameraOnLoad:A,master:I.master,centerModel:!1});I.childrenTiles.push(a)})}(I.metric),function(C){if(I.hasMeshContent){if(!I.inFrustum)return I.disposeChildren(),void Q(C);C>=I.master.geometricErrorMultiplier*I.geometricError&&(I.disposeChildren(),Q(C))}}(I.metric))}areAllChildrenLoadedAndHidden(){let A=!0;return this.childrenTiles.every(g=>{if(g.hasMeshContent){if(g.childrenTiles.length>0)return A=!1,!1;if(!g.inFrustum)return!0;if(!g.materialVisibility||g.meshesToDisplay!=g.meshesDisplayed)return A=!1,!1}else if(!g.areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}isReady(){if(!this.inFrustum)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent||this.meshContent.size==0||!this.materialVisibility){if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(g=>!!g.isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.size<this.hasMeshContent)&&!!this.materialVisibility}changeContentVisibility(A){this.materialVisibility=A}calculateUpdateMetric(A,g){if(this.boundingVolume instanceof cg){if(Eg.copy(this.boundingVolume.sphere),Eg.applyMatrix4(this.matrixWorld),!g.intersectsSphere(Eg))return-1}else{if(!(this.boundingVolume instanceof V.Sphere))return console.error("unsupported shape"),-1;if(Eg.copy(this.boundingVolume),Eg.applyMatrix4(this.matrixWorld),!g.intersectsSphere(Eg))return-1}let I=Math.max(0,A.position.distanceTo(Eg.center)-Eg.radius);if(I=Math.pow(I,this.distanceBias),I==0)return 0;const Q=this.matrixWorld.getMaxScaleOnAxis();this.master._renderSize(oQ);let C=oQ.y,E=A.fov;A.aspect<1&&(E*=A.aspect,C=oQ.x);let a=2*Math.tan(.5*E*.017453292519943295)*I;return 16*window.devicePixelRatio*a/(C*Q)}getSiblings(){const A=this,g=[];if(!A.parentTile)return g;let I=A.parentTile;for(;!I.hasMeshContent&&I.parentTile;)I=I.parentTile;return I.childrenTiles.forEach(Q=>{if(Q&&Q!=A){for(;!Q.hasMeshContent&&Q.childrenTiles[0];)Q=Q.childrenTiles[0];g.push(Q)}}),g}calculateDistanceToCamera(A){return this.boundingVolume instanceof cg?(Eg.copy(this.boundingVolume.sphere),Eg.applyMatrix4(this.matrixWorld)):this.boundingVolume instanceof V.Sphere?(Eg.copy(this.boundingVolume),Eg.applyMatrix4(this.matrixWorld)):console.error("unsupported shape"),Math.max(0,A.position.distanceTo(Eg.center)-Eg.radius)}getWorldMatrix(){return this.matrixWorld}transformWGS84ToCartesian(A,g,I,Q){const C=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(g),2)),E=Math.cos(g),a=Math.cos(A),i=Math.sin(g),t=C+I,e=t*E*a,o=t*E*Math.sin(A),r=(.993305615557957*C+I)*i;Q.set(e,o,r)}}class Ao extends V.Object3D{constructor(A){super(),A.master=this,A.domWidth&&A.domHeight?this.rendererSize=new V.Vector2(A.domWidth,A.domHeight):this.rendererSize=new V.Vector2(1e3,1e3),this.renderer=A.renderer,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.tileset=new YQ(A),A.static&&(this.matrixAutoUpdate=!1),this.tileLoader=A.tileLoader}_renderSize(A){this.renderer?this.renderer.getDrawingBufferSize(A):A.copy(this.rendererSize)}setCanvasSize(A,g){this.rendererSize.set(A,g)}update(A,g){if(g)this.tileset._update(A,g);else{const I=new V.Frustum;I.setFromProjectionMatrix(new V.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse)),this.tileset._update(A,I)}}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A||1}}class go{constructor(A){const g=this;g.scene=A,g.instancedTiles=[],g.instancedMesh,g.reuseableMatrix=new V.Matrix4}addInstance(A){const g=this;A.added=!0,A.listOMesh=g.instancedTiles,g.instancedTiles.push(A),g.instancedMesh&&A.loadMesh(g.instancedMesh)}addToScene(){const A=this;A.instancedMesh.setMatrixAt(0,new V.Matrix4),A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.count=1,A.scene.add(A.instancedMesh),A.instancedMesh.onAfterRender=()=>{delete A.instancedMesh.onAfterRender,A.instancedMesh.displayedOnce=!0}}setObject(A){const g=this;g.instancedMesh=A,g.instancedMesh.matrixAutoUpdate=!1,g.instancedMesh.matrixWorldAutoUpdate=!1,g.scene.children.includes(A)||this.addToScene();for(let I=0;I<g.instancedTiles.length;I++)g.instancedTiles[I].loadMesh(g.instancedMesh)}update(){const A=this;for(let g=A.instancedTiles.length-1;g>=0;g--)A.instancedTiles[g].deleted&&A.instancedTiles.splice(g,1);if(A.instancedMesh){A.instancedMesh.count=0,A.instancedMesh.instancedTiles=[];for(let g=0;g<A.instancedTiles.length;g++)A.instancedTiles[g].meshContent.add(A.instancedMesh),A.instancedTiles[g].materialVisibility&&(A.instancedMesh.count++,A.reuseableMatrix.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),A.reuseableMatrix.multiply(A.instancedTiles[g].matrixWorld),A.reuseableMatrix.multiply(A.instancedMesh.baseMatrix),A.instancedMesh.setMatrixAt(A.instancedMesh.count-1,A.reuseableMatrix),A.instancedMesh.instancedTiles.push(A.instancedTiles[g]));A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.needsUpdate=!0,A.instancedMesh.computeBoundingSphere()}}getCount(){return this.instancedTiles.length}dispose(){const A=this;return!(A.instancedTiles.length>0)&&!!A.instancedMesh&&(A.scene.remove(A.instancedMesh),A.instancedMesh.traverse(g=>{if(g.dispose&&g.dispose(),g.material)if(g.material.length)for(let I=0;I<g.material.length;++I)g.material[I].dispose();else g.material.dispose();g.geometry&&g.geometry.dispose()}),A.instancedMesh.dispose(),!0)}}class Io{constructor(){const A=this;A.count=0,A.json,A.instancedTiles=[]}addInstance(A){this.instancedTiles.push(A),this.json&&A.loadJson(this.json,this.url)}setObject(A,g){const I=this;I.json=A,I.url=g;for(let Q=0;Q<I.instancedTiles.length;Q++)I.instancedTiles[Q].loadJson(I.json,I.url)}getCount(){return this.instancedTiles.length}update(){const A=this;for(let g=A.instancedTiles.length-1;g>=0;g--)A.instancedTiles[g].deleted&&A.instancedTiles.splice(g,1)}dispose(){return!(!this.json||this.instancedTiles.length!=0)}}let CI=0;async function Bo(B){return new Promise(A=>{const g=setInterval(()=>{B.hasDracoLoader&&!B.dracoLoader||B.hasKTX2Loader&&!B.ktx2Loader||(clearInterval(g),A())},10)})}exports.InstancedOGC3DTile=Ao,exports.InstancedTileLoader=class{constructor(B,A){if(this.zUpToYUpMatrix=new V.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.maxInstances=1,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems&&(this.maxCachedItems=A.maxCachedItems),A.maxInstances&&(this.maxInstances=A.maxInstances)),this.gltfLoader=new _C,A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const g=new gE;g.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),this.gltfLoader.setDRACOLoader(g),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const g=new hg;g.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.gltfLoader.setKTX2Loader(g),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(HE),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new XC(this.gltfLoader),this.cache=new VC,this.scene=B,this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const B=this;B._checkSize(),B.cache._data.forEach(A=>{A.update()}),CI<8&&B._download(),B._loadBatch()}_download(){const B=this;if(B.nextDownloads.length!=0||(B._getNextDownloads(),B.nextDownloads.length!=0))for(;B.nextDownloads.length>0;){const g=B.nextDownloads.shift();if(g){if(g.path.includes(".b3dm")&&(A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),CI++,A().then(I=>{if(!I.ok)throw console.error("could not load tile with path : "+g.path),new Error(`couldn't load "${g.path}". Request failed with status ${I.status} : ${I.statusText}`);return I.arrayBuffer()}).then(I=>this.b3dmDecoder.parseB3DMInstanced(I,Q=>{B.meshCallback(Q,g.geometricError)},B.maxInstances,g.sceneZupToYup,g.meshZupToYup)).then(I=>{I.frustumCulled=!1,g.tile.setObject(I),B.ready.unshift(g)}).catch(I=>console.error(I)).finally(()=>{CI--})),g.path.includes(".glb")||g.path.includes(".gltf"))A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),CI++,A().then(I=>{if(!I.ok)throw new Error("missing content");return I.arrayBuffer()}).then(async I=>{await Bo(this.gltfLoader),this.gltfLoader.parse(I,null,Q=>{let C;Q.scene.asset=Q.asset,g.sceneZupToYup&&Q.scene.applyMatrix4(this.zUpToYUpMatrix),Q.scene.traverse(E=>{E.geometricError=g.geometricError,E.isMesh&&(g.meshZupToYup&&E.applyMatrix4(this.zUpToYUpMatrix),B.meshCallback&&B.meshCallback(E,E.geometricError)),E.isPoints&&console.error("instanced point cloud is not supported")}),Q.scene.updateWorldMatrix(!1,!0),Q.scene.traverse(E=>{E.isMesh&&(C=new V.InstancedMesh(E.geometry,E.material,B.maxInstances),C.baseMatrix=E.matrixWorld)}),B.ready.unshift(g),C?(C.frustumCulled=!1,g.tile.setObject(C)):Q.scene.traverse(E=>{E.dispose&&E.dispose(),E.material&&E.material.dispose()})})},I=>{console.error("could not load tile : "+g.path)}).finally(()=>{CI--});else if(g.path.includes(".json")){var A;A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),CI++,A().then(I=>{if(!I.ok)throw console.error("could not load tile with path : "+g.path),new Error(`couldn't load "${g.path}". Request failed with status ${I.status} : ${I.statusText}`);return I.json()}).then(I=>GQ(I,g.path)).then(I=>{g.tile.setObject(I,g.path),B.ready.unshift(g)}).catch(I=>console.error(I)).finally(()=>{CI--})}}}}_loadBatch(){return this.nextReady.length==0&&(this._getNextReady(),this.nextReady.length==0)?0:this.nextReady.shift()?1:0}_getNextReady(){let B=Number.MAX_VALUE,A=-1;for(let g=this.ready.length-1;g>=0;g--)this.ready[g].distanceFunction||this.nextReady.push(this.ready.splice(g,1)[0]);if(!(this.nextReady.length>0)){for(let g=this.ready.length-1;g>=0;g--){const I=this.ready[g].distanceFunction()*this.ready[g].level;I<B&&(B=I,A=g)}if(A>=0){const g=this.ready.splice(A,1).pop();this.nextReady.push(g);const I=g.getSiblings();for(let Q=this.ready.length-1;Q>=0;Q--)I.includes(this.ready[Q].uuid)&&this.nextready.push(this.ready.splice(Q,1).pop())}}}get(B,A,g,I,Q,C,E,a,i,t){const e=this,o=function(n){for(var s=n.split("/"),c=[],D=0,b=0;b<s.length;b++){var h=s[b];h!=="."&&h!==""&&h!==".."?c[D++]=h:h===".."&&D>0&&D--}if(D===0)return"/";var w="";for(b=0;b<D;b++)w+="/"+c[b];return w}(A);if(!(A.includes(".b3dm")||A.includes(".json")||A.includes(".glb")||A.includes(".gltf")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");const r=e.cache.get(o);if(r)r.addInstance(I);else if(A.includes(".b3dm")||A.includes(".glb")||A.includes(".gltf")){const n=new go(e.scene);n.addInstance(I),e.cache.put(o,n);const s=new AbortController;B.signal.addEventListener("abort",()=>{n.getCount()==0&&s.abort()}),this.downloads.push({abortController:s,tile:n,key:o,path:A,distanceFunction:Q,getSiblings:C,level:E,uuid:g,sceneZupToYup:a,meshZupToYup:i,geometricError:t,shouldDoDownload:()=>!0})}else if(A.includes(".json")){const n=new Io;n.addInstance(I),e.cache.put(o,n);const s=new AbortController;B.signal.addEventListener("abort",()=>{n.getCount()==0&&s.abort()}),this.downloads.push({abortController:s,tile:n,key:o,path:A,distanceFunction:Q,getSiblings:C,level:E,shouldDoDownload:()=>!0})}}_getNextDownloads(){let B=Number.MAX_VALUE,A=-1;for(let g=this.downloads.length-1;g>=0;g--){const I=this.downloads[g];I.shouldDoDownload()?I.distanceFunction||this.nextDownloads.push(this.downloads.splice(g,1)[0]):this.downloads.splice(g,1)}if(!(this.nextDownloads.length>0)){for(let g=this.downloads.length-1;g>=0;g--){const I=this.downloads[g],Q=I.distanceFunction()*I.level;Q<B&&(B=Q,A=g)}if(A>=0){const g=this.downloads.splice(A,1).pop();this.nextDownloads.push(g);const I=g.getSiblings();for(let Q=this.downloads.length-1;Q>=0;Q--)I.includes(this.downloads[Q].uuid)&&this.nextDownloads.push(this.downloads.splice(Q,1).pop())}}}_checkSize(){const B=this;let A=0;for(;B.cache.size()>B.maxCachedItems&&A<B.cache.size();){A++;const g=B.cache.head();B.cache.remove(g.key),g.value.dispose()||B.cache.put(g.key,g.value)}}},exports.OBB=cg,exports.OGC3DTile=JQ,exports.OcclusionCullingService=class{constructor(){this.cullMap=[],this.cullMaterial=new V.MeshBasicMaterial({vertexColors:!0}),this.cullMaterial.side=V.FrontSide,this.cullTarget=this._createCullTarget(),this.cullPixels=new Uint8Array(4*this.cullTarget.width*this.cullTarget.height)}setSide(B){this.cullMaterial.side=B}_createCullTarget(){const B=new V.WebGLRenderTarget(Math.floor(.05*window.innerWidth),Math.floor(.05*window.innerHeight));return B.texture.format=V.RGBAFormat,B.texture.colorSpace=V.LinearSRGBColorSpace,B.texture.minFilter=V.NearestFilter,B.texture.magFilter=V.NearestFilter,B.texture.generateMipmaps=!1,B.stencilBuffer=!1,B.depthBuffer=!0,B.depthTexture=new V.DepthTexture,B.depthTexture.format=V.DepthFormat,B.depthTexture.type=V.UnsignedShortType,B}update(B,A,g){let I=A.getRenderTarget(),Q=B.overrideMaterial;B.overrideMaterial=this.cullMaterial,A.setRenderTarget(this.cullTarget),A.render(B,g),B.overrideMaterial=Q,A.setRenderTarget(I),A.readRenderTargetPixels(this.cullTarget,0,0,this.cullTarget.width,this.cullTarget.height,this.cullPixels),this.cullMap=[];for(let C=0;C<this.cullPixels.length;C+=4){const E=V.MathUtils.clamp(this.cullPixels[C],0,255)<<16^V.MathUtils.clamp(this.cullPixels[C+1],0,255)<<8^V.MathUtils.clamp(this.cullPixels[C+2],0,255);this.cullMap[E]=!0}}hasID(B){return this.cullMap[B]}},exports.SplatsMesh=fa,exports.TileLoader=KE,exports.getOGC3DTilesCopyrightInfo=Ma,exports.splatsFragmentShader=ya,exports.splatsVertexShader=Fa;
|
|
1397
|
+
}`}function Xt(B,A,g,I){const Q=B.getX(g),C=B.getY(g),E=B.getZ(g),a=A.getX(g),i=A.getY(g),t=A.getZ(g);I.set(Q,C,E,C,a,i,E,i,t)}function Zt(B,A,g){const I=B.determinant();if(Math.abs(I)<1e-12)return void g.set(0,0,0);const Q=1/I,C=new d.Matrix3().copy(B);C.elements[0]=A.x,C.elements[3]=A.y,C.elements[6]=A.z;const E=new d.Matrix3().copy(B);E.elements[1]=A.x,E.elements[4]=A.y,E.elements[7]=A.z;const a=new d.Matrix3().copy(B);a.elements[2]=A.x,a.elements[5]=A.y,a.elements[8]=A.z,g.set(C.determinant()*Q,E.determinant()*Q,a.determinant()*Q)}new d.Vector3,new d.Vector3;var yA;new d.Matrix3().set(1,0,0,0,0,1,0,-1,0),new d.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);const fg=new V.Sphere(new V.Vector3(0,0,0),1),Sg=new cg([0,0,0,1,0,0,0,1,0,0,0,1]);new V.Box3;const Wg=new V.Vector3(0,0,0),lI=new V.Vector3(0,0,0),_t=new V.Vector3(0,1,0),eB=new V.Ray,iB=new V.Matrix4;new V.Matrix4,new V.Frustum;const tB=new V.Vector3,oB=[],TC=new V.Quaternion,Rg={};function Ma(){var B=[];for(let A in Rg)Rg.hasOwnProperty(A)&&Rg[A]>0&&B.push(A);return B}class JQ extends V.Object3D{constructor(A){super();const g=this;if(g.splatsMesh=A.splatsMesh,g.oldUltraMeshSplats=A.oldUltraMeshSplats,g.iosCompatibility=A.iosCompatibility,g.splatsQuality=A.splatsQuality!=null?A.splatsQuality:.75,g.splatsCPUCulling=A.splatsCPUCulling!=null&&A.splatsCPUCulling,this.contentURL=[],A.domWidth&&A.domHeight?this.rendererSize=new V.Vector2(A.domWidth,A.domHeight):this.rendererSize=new V.Vector2(1e3,1e3),this.setClipShape(A.clipShape),this.loadingStrategy=A.loadingStrategy?A.loadingStrategy.toUpperCase():"INCREMENTAL",this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.proxy=A.proxy,this.drawBoundingVolume=!!A.drawBoundingVolume&&A.drawBoundingVolume,this.displayErrors=A.displayErrors,this.displayCopyright=A.displayCopyright,A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=jE(),A.tileLoader)this.tileLoader=A.tileLoader;else{const C={};C.meshCallback=A.meshCallback?A.meshCallback:(a,i)=>{a.material.wireframe=!1,a.material.side=V.DoubleSide},C.pointsCallback=A.pointsCallback?A.pointsCallback:(a,i)=>{a.material.size=Math.pow(i,.33),a.material.sizeAttenuation=!0},C.proxy=this.proxy,C.renderer=A.renderer,C.dracoLoader=A.dracoLoader,C.ktx2Loader=A.ktx2Loader,g.tileLoader=new KE(C);const E=this.update;this.update=a=>{E.call(g,a),g.tileLoader.update()}}if(this.displayCopyright=!!A.displayCopyright,this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.splatsCropRadius=Number.MAX_VALUE,this.splatsSizeMultiplier=1,this.renderer=A.renderer,this.meshCallback=A.meshCallback,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.occlusionCullingService=A.occlusionCullingService,this.static=A.static,this.occlusionCullingService&&(this.color=new V.Color,this.color.setHex(16777215*Math.random()),this.colorID=V.MathUtils.clamp(255*g.color.r,0,255)<<16^V.MathUtils.clamp(255*g.color.g,0,255)<<8^V.MathUtils.clamp(255*g.color.b,0,255)),this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.childrenTiles=[],this.meshContent=[],this.tileContent,this.refine,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.abortController=new AbortController,this.onLoadCallback=A.onLoadCallback,A.json)g._setup(A);else if(A.url){var I=A.url;if(g.queryParams){var Q="";for(let C in g.queryParams)g.queryParams.hasOwnProperty(C)&&(Q+="&"+C+"="+g.queryParams[C]);I.includes("?")?I+=Q:I+="?"+Q.substring(1)}(g.proxy?()=>fetch(g.proxy,{method:"POST",body:I,signal:g.abortController.signal}):()=>fetch(I,{signal:g.abortController.signal}))().then(C=>{if(!C.ok)throw new Error(`couldn't load "${A.url}". Request failed with status ${C.status} : ${C.statusText}`);C.json().then(E=>GQ(E,I)).then(E=>{g._setup({rootPath:eI.dirname(A.url),json:E})})}).catch(C=>{g.displayErrors&&OC(C)})}}setClipShape(A){if(A instanceof cg||A instanceof V.Sphere)this.clipShape=A;else if(A instanceof V.Box3){const g=new V.Vector3,I=new V.Vector3;A.getCenter(g),A.getSize(I).multiplyScalar(.5),this.clipShape=new cg([g.x,g.y,g.z,I.x,0,0,0,I.y,0,0,0,I.z])}else A=void 0;this.childrenTiles&&this.childrenTiles.forEach(g=>{g._setClipShape(this.clipShape)})}_setClipShape(A){this.clipShape=A,this.childrenTiles&&this.childrenTiles.forEach(g=>{g._setClipShape(this.clipShape)})}setSplatsSizeMultiplier(A){this.splatsSizeMultiplier=A,this.splatsMesh&&this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier)}setSplatsCropRadius(A){this.splatsCropRadius=A,this.splatsMesh&&this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius)}setSplatsDepthBias(A){this.splatsDepthBias=A,this.splatsMesh&&this.splatsMesh.setDepthBias(this.splatsDepthBias)}setSplatsCPUCulling(A){this.splatsCPUCulling=A,this.splatsMesh&&this.splatsMesh.setSplatsCPUCulling(A)}setSplatsQuality(A){this.splatsQuality=A,this.splatsMesh&&this.splatsMesh.setQuality(A)}updateMatrices(){this.updateMatrix(),this.splatsMesh&&this.splatsMesh.updateMatrix(),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!0)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!0)),this.updateMatrixWorld(!0),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!1)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!1))}setCanvasSize(A,g){this.rendererSize.set(A,g)}async _setup(A){const g=this;if(A.json.extensionsRequired&&(A.json.extensionsRequired.includes("JDULTRA_gaussian_splats")||A.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2"))&&(g.oldUltraMeshSplats=!0),A.json.root?(g.json=A.json.root,g.json.refine||(g.json.refine=A.json.refine),g.json.geometricError||(g.json.geometricError=A.json.geometricError),g.json.transform||(g.json.transform=A.json.transform),g.json.boundingVolume||(g.json.boundingVolume=A.json.boundingVolume)):g.json=A.json,g.json.children||(g.json.getChildren?g.json.children=await g.json.getChildren():g.json.children=[]),g.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,g.json.refine?g.refine=g.json.refine:g.refine=A.parentRefine,g.json.geometricError?g.geometricError=g.json.geometricError:g.geometricError=A.parentGeometricError,g.json.transform){let Q=new V.Matrix4;Q.elements=g.json.transform,g.applyMatrix4(Q)}if(g.json.boundingVolume)if(g.json.boundingVolume.box)g.boundingVolume=new cg(g.json.boundingVolume.box);else if(g.json.boundingVolume.region){const Q=g.json.boundingVolume.region;g._transformWGS84ToCartesian(Q[0],Q[1],Q[4],Wg),g._transformWGS84ToCartesian(Q[2],Q[3],Q[5],lI),Wg.lerp(lI,.5),g.boundingVolume=new V.Sphere(new V.Vector3(Wg.x,Wg.y,Wg.z),Wg.distanceTo(lI))}else if(g.json.boundingVolume.sphere){const Q=g.json.boundingVolume.sphere;g.boundingVolume=new V.Sphere(new V.Vector3(Q[0],Q[1],Q[2]),Q[3])}else g.boundingVolume=A.parentBoundingVolume;else g.boundingVolume=A.parentBoundingVolume;function I(Q){Q.uri&&Q.uri.includes("json")||Q.url&&Q.url.includes("json")?g.hasUnloadedJSONContent++:g.hasMeshContent++}if(g.json.content?(I(g.json.content),g.hasMeshContent==0&&(g.level=Math.max(0,g.parentTile?g.parentTile.level+.01:0)),g._load()):g.json.contents&&(g.json.contents.forEach(Q=>I(Q)),g.hasMeshContent==0&&(g.level=Math.max(0,g.parentTile?g.parentTile.level+.01:0))),g.centerModel&&(lI.copy(g.boundingVolume.center),this.json.boundingVolume.region&&(this._transformWGS84ToCartesian(.5*(this.json.boundingVolume.region[0]+this.json.boundingVolume.region[2]),.5*(this.json.boundingVolume.region[1]+this.json.boundingVolume.region[3]),.5*(this.json.boundingVolume.region[4]+this.json.boundingVolume.region[5]),Wg),TC.setFromUnitVectors(Wg.normalize(),_t.normalize()),g.applyQuaternion(TC)),lI.applyMatrix4(g.matrix),g.position.sub(lI),g.updateMatrices()),g.onLoadCallback&&g.onLoadCallback(g),g.isSetup=!0,g.level>0&&g.drawBoundingVolume)if(g.bbox&&console.log("double setup"),this.boundingVolume.aabb){let Q=this.boundingVolume.aabb.clone();Q.applyMatrix4(this.matrixWorld),g.bbox=new V.Box3Helper(Q,new V.Color(Math.random(),Math.random(),Math.random())),g.add(g.bbox),g.bbox.material.visible=!1}else g.boundingVolume instanceof cg&&(g.bbox=g.boundingVolume.helper(),g.add(g.bbox),g.bbox.material.visible=!1)}_assembleURL(A,g){A.endsWith("/")||(A+="/");try{const I=new URL(A);let Q=I.pathname.split("/").filter(E=>E!==""),C=g.split("/").filter(E=>E!=="");for(let E=1;E<=Q.length&&!(E>=C.length);E++)if(Q.slice(Q.length-E,Q.length).join("/")===C.slice(0,E).join("/")){for(let i=0;i<E;i++)Q.pop();break}for(;C.length>0&&C[0]==="..";)Q.pop(),C.shift();return`${I.protocol}//${I.host}/${[...Q,...C].join("/")}`}catch{return A.endsWith("/")||g.startsWith("/")?A+g:A+"/"+g}}_extractQueryParams(A,g){try{const I=new URL(A);for(let[Q,C]of I.searchParams)g[Q]=C;return I.search="",I.toString()}catch{return A}}async _load(A=!0,g=!0){var I=this;if(!I.deleted||!g){if(I.json.content)await Q(I.json.content,null,A,g);else if(I.json.contents){let C=I.json.contents.map((E,a)=>Q(E,a,A,g));Promise.all(C)}}async function Q(C,E,a,i){let t;C.uri?t=C.uri:C.url&&(t=C.url);const e=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(e.test(I.rootPath)?e.test(t)||(t=I._assembleURL(I.rootPath,t)):t=I.rootPath+eI.sep+t,t.startsWith("/local-tiles")||(t=I._extractQueryParams(t,I.queryParams)),I.queryParams){var o="";for(let r in I.queryParams)I.queryParams.hasOwnProperty(r)&&(o+="&"+r+"="+I.queryParams[r]);t.includes("?")?t+=o:t+="?"+o.substring(1)}if(t)if(I.contentURL.push(t),i&&(t.includes(".b3dm")||t.includes(".glb")||t.includes(".gltf")))try{I.tileLoader.get(I.abortController,I.uuid,t,r=>{if(!I.deleted)return r.asset&&r.asset.copyright&&(r.asset.copyright.split(";").forEach(n=>{Rg[n]?Rg[n]++:Rg[n]=1}),I.displayCopyright&&iQ()),r.isSplatsData&&(I.splatsMesh||(I.splatsMesh=new fa(I.tileLoader.renderer),I.splatsMesh.setQuality(I.splatsQuality),I.splatsMesh.setSplatsCPUCulling(I.splatsCPUCulling),I.splatsMesh.setSplatsCropRadius(I.splatsCropRadius),I.splatsMesh.setSplatsSizeMultiplier(I.splatsSizeMultiplier),I.static&&(I.splatsMesh.matrixAutoUpdate=!1,I.splatsMesh.matrixWorldAutoUpdate=!1),I.add(I.splatsMesh),I.updateMatrices()),r=I.splatsMesh.addSplatsTile(r.positions,r.colors,r.cov0,r.cov1)),r.isSplatsBatch||(r.traverse(n=>{if((n.isMesh||n.isPoints)&&n.layers.disable(0),n.isMesh&&I.occlusionCullingService){const s=n.geometry.attributes.position,c=[];for(let D=0;D<s.count;D++)c.push(I.color.r,I.color.g,I.color.b);n.geometry.setAttribute("color",new V.Float32BufferAttribute(c,3))}}),I.add(r),I.updateMatrices()),I.meshContent.push(r),r},I.cameraOnLoad?()=>I.loadingStrategy=="IMMEDIATE"?I._calculateDistanceToCamera(I.cameraOnLoad):I.loadingStrategy=="INCREMENTAL"?I.parentTile?I.parentTile._calculateDistanceToCamera(I.cameraOnLoad)/Math.max(1,I.parentTile.level):I._calculateDistanceToCamera(I.cameraOnLoad)/Math.max(1,I.level):I.loadingStrategy=="PERLEVEL"?I.parentTile?I.level+I.parentTile._calculateDistanceToCamera(I.cameraOnLoad):I.level+I._calculateDistanceToCamera(I.cameraOnLoad):0:()=>0,()=>I._getSiblings(),I.level,I.loadingStrategy,!I.json.boundingVolume.region,!!I.json.boundingVolume.region,I.geometricError,I.oldUltraMeshSplats)}catch(r){I.displayErrors&&OC(r)}else a&&t.includes(".json")&&(I.jsonRequested=t,I.tileLoader.get(I.abortController,I.uuid,t,async r=>{I.jsonReceived=!0,r.rootPath=eI.dirname(t),I.json.children.push(r),E==null?delete I.json.content:I.json.contents.splice(E,1),I.hasUnloadedJSONContent--}))}}dispose(){const A=this;A.meshContent.forEach(g=>{g&&g.asset&&g.asset.copyright&&(g.asset.copyright.split(";").forEach(I=>{Rg[I]&&Rg[I]--}),A.displayCopyright&&iQ())}),A.childrenTiles.forEach(g=>g.dispose()),A.deleted=!0,A.splatsMesh&&(A.meshContent.forEach(g=>g.hide()),A.parentTile||(A.splatsMesh.dispose(),A.splatsMesh=void 0)),A.contentURL&&(A.contentURL.forEach(g=>{A.tileLoader.invalidate(g,A.uuid)}),A.contentURL=[]),A.abortController&&!A.jsonRequested&&A.abortController.abort("tile not needed"),this.parent=null,A.meshContent=[],A.bbox&&A.bbox.dispose(),this.dispatchEvent({type:"removed"})}_disposeMeshContent(){const A=this;if(!A.deleted){A.deleted=!0,A.abortController&&(A.abortController.abort("tile not needed"),A.abortController=new AbortController);for(let g=A.meshContent.length-1;g>=0;g--){const I=A.meshContent[g];I&&I.asset&&I.asset.copyright&&(I.asset.copyright.split(";").forEach(Q=>{Rg[Q]&&Rg[Q]--}),A.displayCopyright&&iQ()),A.remove(I)}A.splatsMesh&&A.meshContent.forEach(g=>g.hide()),A.meshContent=[],A.contentURL.forEach(g=>{A.tileLoader.invalidate(g,A.uuid)}),A.contentURL=[]}}_disposeChildren(){var A=this;A.childrenTiles.forEach(g=>{g.dispose(),A.remove(g)}),A.childrenTiles=[]}raycast(A,g){if(this.splatsMesh){eB.copy(A.ray),iB.copy(this.matrixWorld).invert(),eB.applyMatrix4(iB);let I=!1;if(this.boundingVolume instanceof cg)I=this.boundingVolume.intersectsRay(eB);else{if(!(this.boundingVolume instanceof V.Sphere))return!1;I=ray.intersectsSphere(this.boundingVolume)}return I&&this.materialVisibility&&this.splatsReady&&(oB.length=0,this.meshContent.forEach(Q=>{Q.isSplatsBatch&&(Q.raycast(eB,oB,A.params.Points.threshold),oB.forEach(C=>{C.point.applyMatrix4(this.matrixWorld)}),g.push(...oB))})),I}return super.raycast(A,g)}update(A){this.splatsMesh&&this.splatsMesh.updateShaderParams(A,this.renderer);const g=new V.Frustum;g.setFromProjectionMatrix(new V.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse));let I=[0],Q=[0],C=[0],E=[0];if(this.refine=="REPLACE"?this.loadingStrategy==="IMMEDIATE"?(this._updateImmediate(A,g),this._statsImmediate(C,I,E,Q)):(this._update(A,g),this._stats(C,I,E,Q)):(this._update(A,g),this._stats(C,I,E,Q)),I>0&&(E[0]/=I[0]),this.splatsMesh)if(tB.copy(A.position),iB.copy(this.matrixWorld).invert(),tB.applyMatrix4(iB),this.splatsCPUCulling){const a=new V.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse).multiply(this.matrixWorld);this.splatsMesh.sort(tB,a)}else this.splatsMesh.sort(tB);return{numTilesLoaded:I[0],numTilesRendered:Q[0],maxLOD:C[0],percentageLoaded:E[0]}}_updateImmediate(A,g){this._computeMetricRecursive(A,g),this._updateNodeVisibilityImmediate(),this._expandTreeImmediate(A),this.shouldBeVisible=this.metric>0||!!this.loadOutsideView,this._shouldBeVisibleUpdateImmediate(),this._trimTreeImmediate(),this._loadMeshImmediate()}_statsImmediate(A,g,I,Q){A[0]=Math.max(A[0],this.level),(this.shouldBeVisible||this.materialVisibility)&&(g[0]++,this.materialVisibility&&I[0]++),this.materialVisibility&&Q[0]++,this.childrenTiles.forEach(C=>{C._statsImmediate(A,g,I,Q)})}_stats(A,g,I,Q){A[0]=Math.max(A[0],this.level),this.hasMeshContent&&(g[0]++,this.meshContent.length==this.hasMeshContent&&I[0]++,this.materialVisibility&&Q[0]++),this.childrenTiles.forEach(C=>{C._stats(A,g,I,Q)})}_trimTreeImmediate(){const A=this;if(A.metric!=null)if(A.hasMeshContent&&A.shouldBeVisible&&A.materialVisibility){if(A.splatsMesh&&!A.splatsReady)return;A._disposeChildren()}else A.childrenTiles.forEach(g=>{g._trimTreeImmediate()})}_updateNodeVisibilityImmediate(A=!1){const g=this;if(g.hasMeshContent)if(g.shouldBeVisible)g.meshContent.length==g.hasMeshContent?g.materialVisibility?g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(!0)}):(g._changeContentVisibility(!0),g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)})):g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else{if(!g.loadOutsideView&&g.metric<0)return g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),void g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(!0)});if(!g.materialVisibility||g.splatsMesh&&!g.splatsReady)g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else if(A)g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else{let I=!0;g.childrenTiles.every(Q=>!!Q._isReadyImmediate()||(I=!1,!1)),I&&g.childrenTiles.length>0?(g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),g.childrenTiles.forEach(Q=>{Q._updateNodeVisibilityImmediate(A)})):g.childrenTiles.forEach(Q=>{Q._updateNodeVisibilityImmediate(!g.splatsMesh||!!g.splatsReady)})}}else g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)})}_shouldBeVisibleUpdateImmediate(){const A=this;A.hasMeshContent?A.metric==null?A.shouldBeVisible=!1:A.metric<0?(A.shouldBeVisible=!!A.loadOutsideView,A.childrenTiles.forEach(g=>{g._setShouldNotBeVisibleRecursive()})):A.metric<A.geometricErrorMultiplier*A.geometricError?A.hasUnloadedJSONContent||(A.json&&A.json.children&&A.json.children.length>0?(A.shouldBeVisible=!1,A.childrenTiles.forEach(g=>{g.shouldBeVisible=!0,g._shouldBeVisibleUpdateImmediate()})):A.shouldBeVisible=!0):A.childrenTiles.forEach(g=>{g._setShouldNotBeVisibleRecursive()}):(A.childrenTiles.forEach(g=>{g.shouldBeVisible=!0,g._shouldBeVisibleUpdateImmediate()}),A.shouldBeVisible=!1)}_setShouldNotBeVisibleRecursive(){this.shouldBeVisible=!1,this.childrenTiles.forEach(A=>{A._setShouldNotBeVisibleRecursive()})}_loadMeshImmediate(){const A=this;A.hasMeshContent&&A.shouldBeVisible?A.meshContent.length<A.hasMeshContent&&A.contentURL.length==0&&(A.deleted=!1,A._load(!1,!0)):A.childrenTiles.forEach(g=>{g._loadMeshImmediate()})}_computeMetricRecursive(A,g){const I=this;I.metric=-1,I.isSetup&&(I.boundingVolume&&I.geometricError&&(I.metric=I._calculateUpdateMetric(A,g)),I.childrenTiles.forEach(Q=>Q._computeMetricRecursive(A,g)))}_expandTreeImmediate(A){const g=this;g.hasUnloadedJSONContent||(g.hasMeshContent?g.occlusionCullingService&&g.hasMeshContent&&!g.occlusionCullingService.hasID(g.colorID)||g.metric>=0&&g.metric<g.geometricErrorMultiplier*g.geometricError&&g.json&&g.json.children&&g.childrenTiles.length<g.json.children.length&&g._loadJsonChildren(A):g.json&&g.json.children&&g.childrenTiles.length<g.json.children.length&&g._loadJsonChildren(A)),g.childrenTiles.forEach(I=>I._expandTreeImmediate(A))}_update(A,g){const I=this;if(!I.isSetup)return;const Q=I.materialVisibility;I.boundingVolume&&I.geometricError&&(I.metric=I._calculateUpdateMetric(A,g)),I.childrenTiles.forEach(C=>C._update(A,g)),function(C){if(C<0)return I.inFrustum=!1,void I._changeContentVisibility(!!I.loadOutsideView);if(I.inFrustum=!0,!!I.hasMeshContent&&!(I.meshContent.length<I.hasMeshContent)){if(I.childrenTiles.length==0)return void I._changeContentVisibility(!0);if(C>=I.geometricErrorMultiplier*I.geometricError)I._changeContentVisibility(!0);else if(C<I.geometricErrorMultiplier*I.geometricError&&I.refine=="REPLACE"){let E=!0;I.childrenTiles.every(a=>!!a._isReady()||(E=!1,!1)),E?I._changeContentVisibility(!1):I._changeContentVisibility(!0)}}}(I.metric),function(C){C<0&&I.hasMeshContent||I.occlusionCullingService&&I.hasMeshContent&&!I.occlusionCullingService.hasID(I.colorID)||(!I.hasMeshContent||C<=I.geometricErrorMultiplier*I.geometricError&&(I.meshContent.length>0||I.splatsMesh))&&I.json&&I.json.children&&I.childrenTiles.length!=I.json.children.length&&I._loadJsonChildren(A)}(I.metric),function(C,E){if(I.hasMeshContent){if(!I.inFrustum)return void I._disposeChildren();if(I.occlusionCullingService&&!E&&I.hasMeshContent&&I.meshContent.length>0&&I.materialVisibility&&I._areAllChildrenLoadedAndHidden())return I.splatsMesh&&I.materialVisibility&&!I.splatsReady?void 0:void I._disposeChildren();if(C>=I.geometricErrorMultiplier*I.geometricError){if(I.splatsMesh&&I.materialVisibility&&!I.splatsReady)return;I._disposeChildren()}}}(I.metric,Q)}_loadJsonChildren(A){const g=this;for(let I=g.json.children.length-1;I>=0;I--)g.json.children[I].root||g.json.children[I].children||g.json.children[I].getChildren||g.json.children[I].content||g.json.children[I].contents||g.json.children.splice(I,1);g.json.children.forEach(I=>{let Q=new JQ({parentTile:g,queryParams:g.queryParams,parentGeometricError:g.geometricError,parentBoundingVolume:g.boundingVolume,parentRefine:g.refine,json:I,rootPath:g.rootPath,geometricErrorMultiplier:g.geometricErrorMultiplier,loadOutsideView:g.loadOutsideView,level:Math.floor(g.level)+1,tileLoader:g.tileLoader,cameraOnLoad:A,occlusionCullingService:g.occlusionCullingService,renderer:g.renderer,static:g.static,centerModel:!1,displayErrors:g.displayErrors,displayCopyright:g.displayCopyright,distanceBias:g.distanceBias,loadingStrategy:g.loadingStrategy,drawBoundingVolume:g.drawBoundingVolume,splatsMesh:g.splatsMesh,clipShape:g.clipShape,oldUltraMeshSplats:g.oldUltraMeshSplats});g.childrenTiles.push(Q),g.add(Q)}),g.updateMatrices(!0)}_areAllChildrenLoadedAndHidden(){let A=!0;const g=this;return this.childrenTiles.every(I=>{if(I.hasMeshContent){if(I.childrenTiles.length>0)return A=!1,!1;if(I.metric<0)return!0;if(I.materialVisibility&&(!g.splatsMesh||g.splatsReady)||g.occlusionCullingService.hasID(I.colorID))return A=!1,!1}else if(!I._areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}_isReady(){if(this.metric==null)return!1;if(this.metric<0)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent&&this.json.children.length==0&&!this.hasUnloadedJSONContent)return!0;if(!this.hasMeshContent||this.meshContent.length==0||!this.materialVisibility){if(this.children.length>0){var A=!0;return this.childrenTiles.every(g=>!!g._isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.length<this.hasMeshContent)&&!!this.materialVisibility}_isReadyImmediate(){if(this.materialVisibility||!this.loadOutsideView&&this.metric<0)return!0;if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(g=>!!g._isReadyImmediate()||(A=!1,!1)),A}return!1}_changeContentVisibility(A){const g=this;if(g.bbox&&(g.bbox.material.visible=A),g.splatsMesh)A!=g.materialVisibility&&(g.meshContent.forEach(I=>{A&&I.isSplatsBatch?I.show(()=>{g.materialVisibility&&(g.splatsReady=!0)}):(I.hide(),g.splatsReady=!1)}),g.materialVisibility=A);else{if(g.hasMeshContent&&g.meshContent.length>0&&(A?g.meshContent.forEach(I=>{I.traverse(Q=>{(Q.isMesh||Q.isPoints)&&Q.layers.enable(0)})}):g.meshContent.forEach(I=>{I.traverse(Q=>{(Q.isMesh||Q.isPoints)&&Q.layers.disable(0)})})),g.materialVisibility==A)return;g.materialVisibility=A}}_calculateUpdateMetric(A,g){let I=0;if(this.boundingVolume instanceof cg){if(Sg.copy(this.boundingVolume),Sg.applyMatrix4(this.matrixWorld),!Sg.inFrustum(g))return-1;if(this.clipShape!=null&&(this.clipShape.isSphere&&!Sg.intersectsSphere(this.clipShape)||this.clipShape.isOBB&&!Sg.intersectsOBB(this.clipShape)))return Number.MAX_VALUE;I=Math.max(0,Sg.distanceToPoint(A.position)-A.near)}else{if(!(this.boundingVolume instanceof V.Sphere))return console.error("unsupported shape"),-1;if(fg.copy(this.boundingVolume),fg.applyMatrix4(this.matrixWorld),this.clipShape!=null&&(this.clipShape.isOBB&&!this.clipShape.intersectsSphere(fg)||this.clipShape.isSphere&&!this.clipShape.intersectsSphere(fg)))return Number.MAX_VALUE;if(!g.intersectsSphere(fg))return-1;I=Math.max(0,A.position.distanceTo(fg.center)-fg.radius-A.near)}if(I=Math.pow(I,this.distanceBias),I==0)return 0;const Q=this.matrixWorld.getMaxScaleOnAxis();this.renderer&&this.renderer.getDrawingBufferSize(this.rendererSize);let C=this.rendererSize.y,E=A.fov;return A.aspect<1&&(E*=A.aspect,C=this.rendererSize.x),16*(2*Math.tan(.5*E*.017453292519943295)*I)/(C*Q)}_getSiblings(){const A=this,g=[];if(!A.parentTile)return g;let I=A.parentTile;for(;!I.hasMeshContent&&I.parentTile;)I=I.parentTile;return I.childrenTiles.forEach(Q=>{if(Q&&Q!=A){for(;!Q.hasMeshContent&&Q.childrenTiles[0];)Q=Q.childrenTiles[0];g.push(Q)}}),g}_calculateDistanceToCamera(A){return this.boundingVolume instanceof cg?(Sg.copy(this.boundingVolume),Sg.applyMatrix4(this.matrixWorld),Math.max(0,Sg.distanceToPoint(A.position))):this.boundingVolume instanceof V.Sphere?(fg.copy(this.boundingVolume),fg.applyMatrix4(this.matrixWorld),Math.max(0,A.position.distanceTo(fg.center)-fg.radius)):(console.error("unsupported shape"),-1)}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A,this.childrenTiles.forEach(g=>g.setGeometricErrorMultiplier(A))}setDistanceBias(A){this.distanceBias=A,this.childrenTiles.forEach(g=>g.setDistanceBias(A))}_transformWGS84ToCartesian(A,g,I,Q){const C=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(g),2)),E=Math.cos(g),a=Math.cos(A),i=Math.sin(g),t=C+I,e=t*E*a,o=t*E*Math.sin(A),r=(.993305615557957*C+I)*i;Q.set(e,o,r)}hideCopyright(){(function(){yA||((yA=document.createElement("div")).style.position="fixed",yA.style.bottom="20px",yA.style.left="20px",yA.style.color="white",yA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",yA.style.padding="10px",yA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(yA)),yA.style.opacity=0})()}showCopyright(){(function(){yA||((yA=document.createElement("div")).style.position="fixed",yA.style.bottom="20px",yA.style.left="20px",yA.style.color="white",yA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",yA.style.padding="10px",yA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(yA)),yA.style.opacity=1})()}}function OC(B){var A=document.createElement("div");A.textContent=B,A.style.position="fixed",A.style.top="10px",A.style.left="50%",A.style.transform="translateX(-50%)",A.style.padding="10px",A.style.backgroundColor="#ff8800",A.style.color="#ffffff",A.style.zIndex="9999",document.body.appendChild(A),setTimeout(function(){A.remove()},8e3)}function iQ(){yA||((yA=document.createElement("div")).style.position="fixed",yA.style.bottom="20px",yA.style.left="20px",yA.style.color="white",yA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",yA.style.padding="10px",yA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(yA));const B=Ma();let A="";B.forEach(g=>{A+=g+", "}),A=A.slice(0,-2),yA.textContent=A}const Eg=new V.Sphere(new V.Vector3(0,0,0),1),Pg=new V.Vector3(0,0,0),tQ=new V.Vector3(0,0,0),$t=new V.Vector3(0,1,0),oQ=new V.Vector2,WC=new V.Quaternion,PC=new V.Matrix4;class YQ extends V.Object3D{constructor(A){super();const g=this;if(A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=jE(),A.tileLoader?this.tileLoader=A.tileLoader:console.error("an instanced tileset must be provided an InstancedTilesetLoader"),this.master=A.master,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.childrenTiles=[],this.jsonChildren=[],this.meshContent=new Set,this.static=A.static,this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.tileContent,this.refinement,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.inFrustum=!0,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.deleted=!1,this.abortController=new AbortController,A.json)this.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,A.json.children&&(this.jsonChildren=A.json.children),g.setup(A);else if(A.url){this.loadJson=(C,E)=>{const a=eI.dirname(E);g.setup({rootPath:a,json:C,onLoadCallback:A.onLoadCallback})};var I=A.url;if(g.queryParams){var Q="";for(let C in g.queryParams)g.queryParams.hasOwnProperty(C)&&(Q+="&"+C+"="+g.queryParams[C]);I.includes("?")?I+=Q:I+="?"+Q.substring(1)}g.tileLoader.get(g.abortController,I,g.uuid,g)}}async setup(A){const g=this;A.json.root?(g.json=A.json.root,!g.json.children&&g.json.getChildren&&(g.json.children=await g.json.getChildren()),g.jsonChildren=g.json.children,g.json.refinement||(g.json.refinement=A.json.refinement),g.json.geometricError||(g.json.geometricError=A.json.geometricError),g.json.transform||(g.json.transform=A.json.transform),g.json.boundingVolume||(g.json.boundingVolume=A.json.boundingVolume)):(g.json=A.json,!g.json.children&&g.json.getChildren&&(g.json.children=await g.json.getChildren(),g.jsonChildren=g.json.children)),g.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,g.json.refinement?g.refinement=g.json.refinement:g.refinement=A.parentRefinement,g.json.geometricError?g.geometricError=g.json.geometricError:g.geometricError=A.parentGeometricError;let I=new V.Matrix4;if(g.json.transform&&!g.centerModel&&(I.elements=g.json.transform),g.applyMatrix4(I),g.parentTile&&g.parentTile.matrix&&(g.matrix.premultiply(g.parentTile.matrix),g.matrix.decompose(g.position,g.quaternion,g.scale)),g.matrixWorldNeedsUpdate=!0,g.updateWorldMatrix(!0,!0),g.json.boundingVolume)if(g.json.boundingVolume.box)g.boundingVolume=new cg(g.json.boundingVolume.box);else if(g.json.boundingVolume.region){const C=g.json.boundingVolume.region;g.transformWGS84ToCartesian(C[0],C[1],C[4],Pg),g.transformWGS84ToCartesian(C[2],C[3],C[5],tQ),Pg.lerp(tQ,.5),g.boundingVolume=new V.Sphere(new V.Vector3(Pg.x,Pg.y,Pg.z),Pg.distanceTo(tQ))}else if(g.json.boundingVolume.sphere){const C=g.json.boundingVolume.sphere;g.boundingVolume=new V.Sphere(new V.Vector3(C[0],C[1],C[2]),C[3])}else g.boundingVolume=A.parentBoundingVolume;else g.boundingVolume=A.parentBoundingVolume;function Q(C){C.uri&&C.uri.includes("json")||C.url&&C.url.includes("json")?g.hasUnloadedJSONContent++:g.hasMeshContent++}if(g.json.content?(Q(g.json.content),g.load()):g.json.contents&&(g.json.contents.forEach(C=>Q(C)),g.load()),g.centerModel){const C=new V.Sphere;g.boundingVolume instanceof cg?C.copy(g.boundingVolume.sphere):g.boundingVolume instanceof V.Sphere&&C.copy(g.boundingVolume),this.json.boundingVolume.region&&(g.transformWGS84ToCartesian(.5*(g.json.boundingVolume.region[0]+g.json.boundingVolume.region[2]),.5*(g.json.boundingVolume.region[1]+g.json.boundingVolume.region[3]),.5*(g.json.boundingVolume.region[4]+g.json.boundingVolume.region[5]),Pg),WC.setFromUnitVectors(Pg.normalize(),$t.normalize()),g.master.applyQuaternion(WC),g.master.updateWorldMatrix(!1,!1)),PC.makeTranslation(-C.center.x*g.scale.x,-C.center.y*g.scale.y,-C.center.z*g.scale.z),g.master.matrix.multiply(PC),g.master.matrix.decompose(g.master.position,g.master.quaternion,g.master.scale)}g.isSetup=!0,A.onLoadCallback&&A.onLoadCallback(g)}isAbsolutePathOrURL(A){const g=/^(?:http|https|ftp|tcp|udp):\/\/\S+/.test(A),I=A.startsWith("/")&&!A.startsWith("//");return g||I}assembleURL(A,g){A.endsWith("/")||(A+="/");const I=new URL(A);let Q=I.pathname.split("/").filter(E=>E!==""),C=g.split("/").filter(E=>E!=="");for(let E=1;E<=Q.length&&!(E>=C.length);E++)if(Q.slice(Q.length-E,Q.length).join("/")===C.slice(0,E).join("/")){for(let a=0;a<E;a++)Q.pop();break}for(;C.length>0&&C[0]==="..";)Q.pop(),C.shift();return`${I.protocol}//${I.host}/${[...Q,...C].join("/")}`}extractQueryParams(A,g){const I=new URL(A);for(let[Q,C]of I.searchParams)g[Q]=C;return I.search="",I.toString()}load(){var A=this;function g(I){let Q;I.uri?Q=I.uri:I.url&&(Q=I.url);const C=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(C.test(A.rootPath)?C.test(Q)||(Q=A.assembleURL(A.rootPath,Q)):eI.isAbsolute(A.rootPath)&&(Q=A.rootPath+eI.sep+Q),Q=A.extractQueryParams(Q,A.queryParams),A.queryParams){var E="";for(let a in A.queryParams)A.queryParams.hasOwnProperty(a)&&(E+="&"+a+"="+A.queryParams[a]);Q.includes("?")?Q+=E:Q+="?"+E.substring(1)}Q&&(Q.includes(".b3dm")||Q.includes(".glb")||Q.includes(".gltf")?(A.contentURL=Q,A.tileLoader.get(A.abortController,Q,A.uuid,A,A.cameraOnLoad?()=>A.calculateDistanceToCamera(A.cameraOnLoad):()=>0,()=>A.getSiblings(),A.level,!A.json.boundingVolume.region,!!A.json.boundingVolume.region,A.geometricError)):Q.includes(".json")&&A.tileLoader.get(A.abortController,Q,A.uuid,A))}A.deleted||(A.json.content?g(A.json.content):A.json.contents&&A.json.contents.forEach(I=>g(I)))}loadMesh(A){this.deleted||this.meshContent.add(A)}loadJson(A,g){this.deleted||(this.json.children&&(this.jsonChildren=this.json.children),A.rootPath=eI.dirname(g),this.jsonChildren.push(A),this.hasUnloadedJSONContent--)}dispose(){const A=this;A.childrenTiles.forEach(g=>g.dispose()),A.deleted=!0,A.abortController&&A.abortController.abort(),this.parent=null,this.parentTile=null,this.dispatchEvent({type:"removed"})}disposeChildren(){this.childrenTiles.forEach(A=>A.dispose()),this.childrenTiles=[]}_update(A,g){const I=this;function Q(C){if(I.hasMeshContent&&!(I.meshContent.size<I.hasMeshContent)){if(C<0)return I.inFrustum=!1,void I.changeContentVisibility(!!I.loadOutsideView);if(I.inFrustum=!0,I.childrenTiles.length!=0){if(C>=I.master.geometricErrorMultiplier*I.geometricError)I.changeContentVisibility(!0);else if(C<I.master.geometricErrorMultiplier*I.geometricError){let E=!0;I.childrenTiles.every(a=>!!a.isReady()||(E=!1,!1)),E&&I.changeContentVisibility(!1)}}else I.changeContentVisibility(!0)}}I.isSetup&&(I.materialVisibility,I.boundingVolume&&I.geometricError&&(I.metric=I.calculateUpdateMetric(A,g)),I.childrenTiles.forEach(C=>C._update(A,g)),Q(I.metric),function(C){C<0&&I.hasMeshContent||(!I.hasMeshContent&&I.rootPath||C<I.master.geometricErrorMultiplier*I.geometricError&&I.meshContent.size>0)&&I.json&&I.jsonChildren&&I.childrenTiles.length!=I.jsonChildren.length&&I.jsonChildren.forEach(E=>{if(!(E.root||E.children||E.getChildren||E.content||E.contents))return;let a=new YQ({parentTile:I,queryParams:I.queryParams,parentGeometricError:I.geometricError,parentBoundingVolume:I.boundingVolume,parentRefinement:I.refinement,json:E,rootPath:I.rootPath,loadOutsideView:I.loadOutsideView,level:I.level+1,tileLoader:I.tileLoader,cameraOnLoad:A,master:I.master,centerModel:!1});I.childrenTiles.push(a)})}(I.metric),function(C){if(I.hasMeshContent){if(!I.inFrustum)return I.disposeChildren(),void Q(C);C>=I.master.geometricErrorMultiplier*I.geometricError&&(I.disposeChildren(),Q(C))}}(I.metric))}areAllChildrenLoadedAndHidden(){let A=!0;return this.childrenTiles.every(g=>{if(g.hasMeshContent){if(g.childrenTiles.length>0)return A=!1,!1;if(!g.inFrustum)return!0;if(!g.materialVisibility||g.meshesToDisplay!=g.meshesDisplayed)return A=!1,!1}else if(!g.areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}isReady(){if(!this.inFrustum)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent||this.meshContent.size==0||!this.materialVisibility){if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(g=>!!g.isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.size<this.hasMeshContent)&&!!this.materialVisibility}changeContentVisibility(A){this.materialVisibility=A}calculateUpdateMetric(A,g){if(this.boundingVolume instanceof cg){if(Eg.copy(this.boundingVolume.sphere),Eg.applyMatrix4(this.matrixWorld),!g.intersectsSphere(Eg))return-1}else{if(!(this.boundingVolume instanceof V.Sphere))return console.error("unsupported shape"),-1;if(Eg.copy(this.boundingVolume),Eg.applyMatrix4(this.matrixWorld),!g.intersectsSphere(Eg))return-1}let I=Math.max(0,A.position.distanceTo(Eg.center)-Eg.radius);if(I=Math.pow(I,this.distanceBias),I==0)return 0;const Q=this.matrixWorld.getMaxScaleOnAxis();this.master._renderSize(oQ);let C=oQ.y,E=A.fov;A.aspect<1&&(E*=A.aspect,C=oQ.x);let a=2*Math.tan(.5*E*.017453292519943295)*I;return 16*window.devicePixelRatio*a/(C*Q)}getSiblings(){const A=this,g=[];if(!A.parentTile)return g;let I=A.parentTile;for(;!I.hasMeshContent&&I.parentTile;)I=I.parentTile;return I.childrenTiles.forEach(Q=>{if(Q&&Q!=A){for(;!Q.hasMeshContent&&Q.childrenTiles[0];)Q=Q.childrenTiles[0];g.push(Q)}}),g}calculateDistanceToCamera(A){return this.boundingVolume instanceof cg?(Eg.copy(this.boundingVolume.sphere),Eg.applyMatrix4(this.matrixWorld)):this.boundingVolume instanceof V.Sphere?(Eg.copy(this.boundingVolume),Eg.applyMatrix4(this.matrixWorld)):console.error("unsupported shape"),Math.max(0,A.position.distanceTo(Eg.center)-Eg.radius)}getWorldMatrix(){return this.matrixWorld}transformWGS84ToCartesian(A,g,I,Q){const C=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(g),2)),E=Math.cos(g),a=Math.cos(A),i=Math.sin(g),t=C+I,e=t*E*a,o=t*E*Math.sin(A),r=(.993305615557957*C+I)*i;Q.set(e,o,r)}}class Ao extends V.Object3D{constructor(A){super(),A.master=this,A.domWidth&&A.domHeight?this.rendererSize=new V.Vector2(A.domWidth,A.domHeight):this.rendererSize=new V.Vector2(1e3,1e3),this.renderer=A.renderer,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.tileset=new YQ(A),A.static&&(this.matrixAutoUpdate=!1),this.tileLoader=A.tileLoader}_renderSize(A){this.renderer?this.renderer.getDrawingBufferSize(A):A.copy(this.rendererSize)}setCanvasSize(A,g){this.rendererSize.set(A,g)}update(A,g){if(g)this.tileset._update(A,g);else{const I=new V.Frustum;I.setFromProjectionMatrix(new V.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse)),this.tileset._update(A,I)}}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A||1}}class go{constructor(A){const g=this;g.scene=A,g.instancedTiles=[],g.instancedMesh,g.reuseableMatrix=new V.Matrix4}addInstance(A){const g=this;A.added=!0,A.listOMesh=g.instancedTiles,g.instancedTiles.push(A),g.instancedMesh&&A.loadMesh(g.instancedMesh)}addToScene(){const A=this;A.instancedMesh.setMatrixAt(0,new V.Matrix4),A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.count=1,A.scene.add(A.instancedMesh),A.instancedMesh.onAfterRender=()=>{delete A.instancedMesh.onAfterRender,A.instancedMesh.displayedOnce=!0}}setObject(A){const g=this;g.instancedMesh=A,g.instancedMesh.matrixAutoUpdate=!1,g.instancedMesh.matrixWorldAutoUpdate=!1,g.scene.children.includes(A)||this.addToScene();for(let I=0;I<g.instancedTiles.length;I++)g.instancedTiles[I].loadMesh(g.instancedMesh)}update(){const A=this;for(let g=A.instancedTiles.length-1;g>=0;g--)A.instancedTiles[g].deleted&&A.instancedTiles.splice(g,1);if(A.instancedMesh){A.instancedMesh.count=0,A.instancedMesh.instancedTiles=[];for(let g=0;g<A.instancedTiles.length;g++)A.instancedTiles[g].meshContent.add(A.instancedMesh),A.instancedTiles[g].materialVisibility&&(A.instancedMesh.count++,A.reuseableMatrix.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),A.reuseableMatrix.multiply(A.instancedTiles[g].matrixWorld),A.reuseableMatrix.multiply(A.instancedMesh.baseMatrix),A.instancedMesh.setMatrixAt(A.instancedMesh.count-1,A.reuseableMatrix),A.instancedMesh.instancedTiles.push(A.instancedTiles[g]));A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.needsUpdate=!0,A.instancedMesh.computeBoundingSphere()}}getCount(){return this.instancedTiles.length}dispose(){const A=this;return!(A.instancedTiles.length>0)&&!!A.instancedMesh&&(A.scene.remove(A.instancedMesh),A.instancedMesh.traverse(g=>{if(g.dispose&&g.dispose(),g.material)if(g.material.length)for(let I=0;I<g.material.length;++I)g.material[I].dispose();else g.material.dispose();g.geometry&&g.geometry.dispose()}),A.instancedMesh.dispose(),!0)}}class Io{constructor(){const A=this;A.count=0,A.json,A.instancedTiles=[]}addInstance(A){this.instancedTiles.push(A),this.json&&A.loadJson(this.json,this.url)}setObject(A,g){const I=this;I.json=A,I.url=g;for(let Q=0;Q<I.instancedTiles.length;Q++)I.instancedTiles[Q].loadJson(I.json,I.url)}getCount(){return this.instancedTiles.length}update(){const A=this;for(let g=A.instancedTiles.length-1;g>=0;g--)A.instancedTiles[g].deleted&&A.instancedTiles.splice(g,1)}dispose(){return!(!this.json||this.instancedTiles.length!=0)}}let QI=0;async function Bo(B){return new Promise(A=>{const g=setInterval(()=>{B.hasDracoLoader&&!B.dracoLoader||B.hasKTX2Loader&&!B.ktx2Loader||(clearInterval(g),A())},10)})}exports.InstancedOGC3DTile=Ao,exports.InstancedTileLoader=class{constructor(B,A){if(this.zUpToYUpMatrix=new V.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.maxInstances=1,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems&&(this.maxCachedItems=A.maxCachedItems),A.maxInstances&&(this.maxInstances=A.maxInstances)),this.gltfLoader=new _C,A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const g=new gE;g.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),this.gltfLoader.setDRACOLoader(g),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const g=new hg;g.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.gltfLoader.setKTX2Loader(g),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(HE),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new XC(this.gltfLoader),this.cache=new VC,this.scene=B,this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const B=this;B._checkSize(),B.cache._data.forEach(A=>{A.update()}),QI<8&&B._download(),B._loadBatch()}_download(){const B=this;if(B.nextDownloads.length!=0||(B._getNextDownloads(),B.nextDownloads.length!=0))for(;B.nextDownloads.length>0;){const g=B.nextDownloads.shift();if(g){if(g.path.includes(".b3dm")&&(A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),QI++,A().then(I=>{if(!I.ok)throw console.error("could not load tile with path : "+g.path),new Error(`couldn't load "${g.path}". Request failed with status ${I.status} : ${I.statusText}`);return I.arrayBuffer()}).then(I=>this.b3dmDecoder.parseB3DMInstanced(I,Q=>{B.meshCallback(Q,g.geometricError)},B.maxInstances,g.sceneZupToYup,g.meshZupToYup)).then(I=>{I.frustumCulled=!1,g.tile.setObject(I),B.ready.unshift(g)}).catch(I=>console.error(I)).finally(()=>{QI--})),g.path.includes(".glb")||g.path.includes(".gltf"))A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),QI++,A().then(I=>{if(!I.ok)throw new Error("missing content");return I.arrayBuffer()}).then(async I=>{await Bo(this.gltfLoader),this.gltfLoader.parse(I,null,Q=>{let C;Q.scene.asset=Q.asset,g.sceneZupToYup&&Q.scene.applyMatrix4(this.zUpToYUpMatrix),Q.scene.traverse(E=>{E.geometricError=g.geometricError,E.isMesh&&(g.meshZupToYup&&E.applyMatrix4(this.zUpToYUpMatrix),B.meshCallback&&B.meshCallback(E,E.geometricError)),E.isPoints&&console.error("instanced point cloud is not supported")}),Q.scene.updateWorldMatrix(!1,!0),Q.scene.traverse(E=>{E.isMesh&&(C=new V.InstancedMesh(E.geometry,E.material,B.maxInstances),C.baseMatrix=E.matrixWorld)}),B.ready.unshift(g),C?(C.frustumCulled=!1,g.tile.setObject(C)):Q.scene.traverse(E=>{E.dispose&&E.dispose(),E.material&&E.material.dispose()})})},I=>{console.error("could not load tile : "+g.path)}).finally(()=>{QI--});else if(g.path.includes(".json")){var A;A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),QI++,A().then(I=>{if(!I.ok)throw console.error("could not load tile with path : "+g.path),new Error(`couldn't load "${g.path}". Request failed with status ${I.status} : ${I.statusText}`);return I.json()}).then(I=>GQ(I,g.path)).then(I=>{g.tile.setObject(I,g.path),B.ready.unshift(g)}).catch(I=>console.error(I)).finally(()=>{QI--})}}}}_loadBatch(){return this.nextReady.length==0&&(this._getNextReady(),this.nextReady.length==0)?0:this.nextReady.shift()?1:0}_getNextReady(){let B=Number.MAX_VALUE,A=-1;for(let g=this.ready.length-1;g>=0;g--)this.ready[g].distanceFunction||this.nextReady.push(this.ready.splice(g,1)[0]);if(!(this.nextReady.length>0)){for(let g=this.ready.length-1;g>=0;g--){const I=this.ready[g].distanceFunction()*this.ready[g].level;I<B&&(B=I,A=g)}if(A>=0){const g=this.ready.splice(A,1).pop();this.nextReady.push(g);const I=g.getSiblings();for(let Q=this.ready.length-1;Q>=0;Q--)I.includes(this.ready[Q].uuid)&&this.nextready.push(this.ready.splice(Q,1).pop())}}}get(B,A,g,I,Q,C,E,a,i,t){const e=this,o=function(n){for(var s=n.split("/"),c=[],D=0,b=0;b<s.length;b++){var h=s[b];h!=="."&&h!==""&&h!==".."?c[D++]=h:h===".."&&D>0&&D--}if(D===0)return"/";var w="";for(b=0;b<D;b++)w+="/"+c[b];return w}(A);if(!(A.includes(".b3dm")||A.includes(".json")||A.includes(".glb")||A.includes(".gltf")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");const r=e.cache.get(o);if(r)r.addInstance(I);else if(A.includes(".b3dm")||A.includes(".glb")||A.includes(".gltf")){const n=new go(e.scene);n.addInstance(I),e.cache.put(o,n);const s=new AbortController;B.signal.addEventListener("abort",()=>{n.getCount()==0&&s.abort()}),this.downloads.push({abortController:s,tile:n,key:o,path:A,distanceFunction:Q,getSiblings:C,level:E,uuid:g,sceneZupToYup:a,meshZupToYup:i,geometricError:t,shouldDoDownload:()=>!0})}else if(A.includes(".json")){const n=new Io;n.addInstance(I),e.cache.put(o,n);const s=new AbortController;B.signal.addEventListener("abort",()=>{n.getCount()==0&&s.abort()}),this.downloads.push({abortController:s,tile:n,key:o,path:A,distanceFunction:Q,getSiblings:C,level:E,shouldDoDownload:()=>!0})}}_getNextDownloads(){let B=Number.MAX_VALUE,A=-1;for(let g=this.downloads.length-1;g>=0;g--){const I=this.downloads[g];I.shouldDoDownload()?I.distanceFunction||this.nextDownloads.push(this.downloads.splice(g,1)[0]):this.downloads.splice(g,1)}if(!(this.nextDownloads.length>0)){for(let g=this.downloads.length-1;g>=0;g--){const I=this.downloads[g],Q=I.distanceFunction()*I.level;Q<B&&(B=Q,A=g)}if(A>=0){const g=this.downloads.splice(A,1).pop();this.nextDownloads.push(g);const I=g.getSiblings();for(let Q=this.downloads.length-1;Q>=0;Q--)I.includes(this.downloads[Q].uuid)&&this.nextDownloads.push(this.downloads.splice(Q,1).pop())}}}_checkSize(){const B=this;let A=0;for(;B.cache.size()>B.maxCachedItems&&A<B.cache.size();){A++;const g=B.cache.head();B.cache.remove(g.key),g.value.dispose()||B.cache.put(g.key,g.value)}}},exports.OBB=cg,exports.OGC3DTile=JQ,exports.OcclusionCullingService=class{constructor(){this.cullMap=[],this.cullMaterial=new V.MeshBasicMaterial({vertexColors:!0}),this.cullMaterial.side=V.FrontSide,this.cullTarget=this._createCullTarget(),this.cullPixels=new Uint8Array(4*this.cullTarget.width*this.cullTarget.height)}setSide(B){this.cullMaterial.side=B}_createCullTarget(){const B=new V.WebGLRenderTarget(Math.floor(.05*window.innerWidth),Math.floor(.05*window.innerHeight));return B.texture.format=V.RGBAFormat,B.texture.colorSpace=V.LinearSRGBColorSpace,B.texture.minFilter=V.NearestFilter,B.texture.magFilter=V.NearestFilter,B.texture.generateMipmaps=!1,B.stencilBuffer=!1,B.depthBuffer=!0,B.depthTexture=new V.DepthTexture,B.depthTexture.format=V.DepthFormat,B.depthTexture.type=V.UnsignedShortType,B}update(B,A,g){let I=A.getRenderTarget(),Q=B.overrideMaterial;B.overrideMaterial=this.cullMaterial,A.setRenderTarget(this.cullTarget),A.render(B,g),B.overrideMaterial=Q,A.setRenderTarget(I),A.readRenderTargetPixels(this.cullTarget,0,0,this.cullTarget.width,this.cullTarget.height,this.cullPixels),this.cullMap=[];for(let C=0;C<this.cullPixels.length;C+=4){const E=V.MathUtils.clamp(this.cullPixels[C],0,255)<<16^V.MathUtils.clamp(this.cullPixels[C+1],0,255)<<8^V.MathUtils.clamp(this.cullPixels[C+2],0,255);this.cullMap[E]=!0}}hasID(B){return this.cullMap[B]}},exports.SplatsMesh=fa,exports.TileLoader=KE,exports.getOGC3DTilesCopyrightInfo=Ma,exports.splatsFragmentShader=ya,exports.splatsVertexShader=Fa;
|
|
1398
1398
|
//# sourceMappingURL=threedtiles.cjs.js.map
|