/*! * ONNX Runtime Web v1.26.0-dev.20260416-b7804b056c * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ var Dr=Object.defineProperty;var Vi=Object.getOwnPropertyDescriptor;var Hi=Object.getOwnPropertyNames;var qi=Object.prototype.hasOwnProperty;var Pr=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(t,a)=>(typeof require<"u"?require:t)[a]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var R=(o,t)=>()=>(o&&(t=o(o=0)),t);var bt=(o,t)=>{for(var a in t)Dr(o,a,{get:t[a],enumerable:!0})},Yi=(o,t,a,u)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Hi(t))!qi.call(o,i)&&i!==a&&Dr(o,i,{get:()=>t[i],enumerable:!(u=Vi(t,i))||u.enumerable});return o};var Pt=o=>Yi(Dr({},"__esModule",{value:!0}),o);var Ut,He,qe,Ji,bo,Ur=R(()=>{"use strict";Ut=new Map,He=[],qe=(o,t,a)=>{if(t&&typeof t.init=="function"&&typeof t.createInferenceSessionHandler=="function"){let u=Ut.get(o);if(u===void 0)Ut.set(o,{backend:t,priority:a});else{if(u.priority>a)return;if(u.priority===a&&u.backend!==t)throw new Error(`cannot register backend "${o}" using priority ${a}`)}if(a>=0){let i=He.indexOf(o);i!==-1&&He.splice(i,1);for(let c=0;c{let t=Ut.get(o);if(!t)return"backend not found.";if(t.initialized)return t.backend;if(t.aborted)return t.error;{let a=!!t.initPromise;try{return a||(t.initPromise=t.backend.init(o)),await t.initPromise,t.initialized=!0,t.backend}catch(u){return a||(t.error=`${u}`,t.aborted=!0),t.error}finally{delete t.initPromise}}},bo=async o=>{let t=o.executionProviders||[],a=t.map(h=>typeof h=="string"?h:h.name),u=a.length===0?He:a,i,c=[],l=new Set;for(let h of u){let g=await Ji(h);typeof g=="string"?c.push({name:h,err:g}):(i||(i=g),i===g&&l.add(h))}if(!i)throw new Error(`no available backend found. ERR: ${c.map(h=>`[${h.name}] ${h.err}`).join(", ")}`);for(let{name:h,err:g}of c)a.includes(h)&&console.warn(`removing requested execution provider "${h}" from session options because it is not available: ${g}`);let d=t.filter(h=>l.has(typeof h=="string"?h:h.name));return[i,new Proxy(o,{get:(h,g)=>g==="executionProviders"?d:Reflect.get(h,g)})]}});var To=R(()=>{"use strict";Ur()});var vo,Eo=R(()=>{"use strict";vo="1.24.0-dev.20251116-b39e144322"});var _o,ee,Rr=R(()=>{"use strict";Eo();_o="warning",ee={wasm:{},webgl:{},webgpu:{},versions:{common:vo},set logLevel(o){if(o!==void 0){if(typeof o!="string"||["verbose","info","warning","error","fatal"].indexOf(o)===-1)throw new Error(`Unsupported logging level: ${o}`);_o=o}},get logLevel(){return _o}};Object.defineProperty(ee,"logLevel",{enumerable:!0})});var X,So=R(()=>{"use strict";Rr();X=ee});var Ao,Io,xo=R(()=>{"use strict";Ao=(o,t)=>{let a=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);a.width=o.dims[3],a.height=o.dims[2];let u=a.getContext("2d");if(u!=null){let i,c;t?.tensorLayout!==void 0&&t.tensorLayout==="NHWC"?(i=o.dims[2],c=o.dims[3]):(i=o.dims[3],c=o.dims[2]);let l=t?.format!==void 0?t.format:"RGB",d=t?.norm,h,g;d===void 0||d.mean===void 0?h=[255,255,255,255]:typeof d.mean=="number"?h=[d.mean,d.mean,d.mean,d.mean]:(h=[d.mean[0],d.mean[1],d.mean[2],0],d.mean[3]!==void 0&&(h[3]=d.mean[3])),d===void 0||d.bias===void 0?g=[0,0,0,0]:typeof d.bias=="number"?g=[d.bias,d.bias,d.bias,d.bias]:(g=[d.bias[0],d.bias[1],d.bias[2],0],d.bias[3]!==void 0&&(g[3]=d.bias[3]));let w=c*i,b=0,v=w,E=w*2,O=-1;l==="RGBA"?(b=0,v=w,E=w*2,O=w*3):l==="RGB"?(b=0,v=w,E=w*2):l==="RBG"&&(b=0,E=w,v=w*2);for(let P=0;P{let a=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),u;if(a!=null){let i,c,l;t?.tensorLayout!==void 0&&t.tensorLayout==="NHWC"?(i=o.dims[2],c=o.dims[1],l=o.dims[3]):(i=o.dims[3],c=o.dims[2],l=o.dims[1]);let d=t!==void 0&&t.format!==void 0?t.format:"RGB",h=t?.norm,g,w;h===void 0||h.mean===void 0?g=[255,255,255,255]:typeof h.mean=="number"?g=[h.mean,h.mean,h.mean,h.mean]:(g=[h.mean[0],h.mean[1],h.mean[2],255],h.mean[3]!==void 0&&(g[3]=h.mean[3])),h===void 0||h.bias===void 0?w=[0,0,0,0]:typeof h.bias=="number"?w=[h.bias,h.bias,h.bias,h.bias]:(w=[h.bias[0],h.bias[1],h.bias[2],0],h.bias[3]!==void 0&&(w[3]=h.bias[3]));let b=c*i;if(t!==void 0&&(t.format!==void 0&&l===4&&t.format!=="RGBA"||l===3&&t.format!=="RGB"&&t.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let v=4,E=0,O=1,P=2,j=3,L=0,x=b,U=b*2,M=-1;d==="RGBA"?(L=0,x=b,U=b*2,M=b*3):d==="RGB"?(L=0,x=b,U=b*2):d==="RBG"&&(L=0,U=b,x=b*2),u=a.createImageData(i,c);for(let F=0;F{"use strict";Rt();kr=(o,t)=>{if(o===void 0)throw new Error("Image buffer must be defined");if(t.height===void 0||t.width===void 0)throw new Error("Image height and width must be defined");if(t.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:a,width:u}=t,i=t.norm??{mean:255,bias:0},c,l;typeof i.mean=="number"?c=[i.mean,i.mean,i.mean,i.mean]:c=[i.mean[0],i.mean[1],i.mean[2],i.mean[3]??255],typeof i.bias=="number"?l=[i.bias,i.bias,i.bias,i.bias]:l=[i.bias[0],i.bias[1],i.bias[2],i.bias[3]??0];let d=t.format!==void 0?t.format:"RGBA",h=t.tensorFormat!==void 0&&t.tensorFormat!==void 0?t.tensorFormat:"RGB",g=a*u,w=h==="RGBA"?new Float32Array(g*4):new Float32Array(g*3),b=4,v=0,E=1,O=2,P=3,j=0,L=g,x=g*2,U=-1;d==="RGB"&&(b=3,v=0,E=1,O=2,P=-1),h==="RGBA"?U=g*3:h==="RBG"?(j=0,x=g,L=g*2):h==="BGR"&&(x=0,L=g,j=g*2);for(let F=0;F{let a=typeof HTMLImageElement<"u"&&o instanceof HTMLImageElement,u=typeof ImageData<"u"&&o instanceof ImageData,i=typeof ImageBitmap<"u"&&o instanceof ImageBitmap,c=typeof o=="string",l,d=t??{},h=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},g=w=>typeof HTMLCanvasElement<"u"&&w instanceof HTMLCanvasElement||w instanceof OffscreenCanvas?w.getContext("2d"):null;if(a){let w=h();w.width=o.width,w.height=o.height;let b=g(w);if(b!=null){let v=o.height,E=o.width;if(t!==void 0&&t.resizedHeight!==void 0&&t.resizedWidth!==void 0&&(v=t.resizedHeight,E=t.resizedWidth),t!==void 0){if(d=t,t.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");d.tensorFormat="RGBA",d.height=v,d.width=E}else d.tensorFormat="RGBA",d.height=v,d.width=E;b.drawImage(o,0,0),l=b.getImageData(0,0,E,v).data}else throw new Error("Can not access image data")}else if(u){let w,b;if(t!==void 0&&t.resizedWidth!==void 0&&t.resizedHeight!==void 0?(w=t.resizedHeight,b=t.resizedWidth):(w=o.height,b=o.width),t!==void 0&&(d=t),d.format="RGBA",d.height=w,d.width=b,t!==void 0){let v=h();v.width=b,v.height=w;let E=g(v);if(E!=null)E.putImageData(o,0,0),l=E.getImageData(0,0,b,w).data;else throw new Error("Can not access image data")}else l=o.data}else if(i){if(t===void 0)throw new Error("Please provide image config with format for Imagebitmap");let w=h();w.width=o.width,w.height=o.height;let b=g(w);if(b!=null){let v=o.height,E=o.width;return b.drawImage(o,0,0,E,v),l=b.getImageData(0,0,E,v).data,d.height=v,d.width=E,kr(l,d)}else throw new Error("Can not access image data")}else{if(c)return new Promise((w,b)=>{let v=h(),E=g(v);if(!o||!E)return b();let O=new Image;O.crossOrigin="Anonymous",O.src=o,O.onload=()=>{v.width=O.width,v.height=O.height,E.drawImage(O,0,0,v.width,v.height);let P=E.getImageData(0,0,v.width,v.height);d.height=v.height,d.width=v.width,w(kr(P.data,d))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(l!==void 0)return kr(l,d);throw new Error("Input data provided is not supported - aborted tensor creation")},Lo=(o,t)=>{let{width:a,height:u,download:i,dispose:c}=t,l=[1,u,a,4];return new oe({location:"texture",type:"float32",texture:o,dims:l,download:i,dispose:c})},Bo=(o,t)=>{let{dataType:a,dims:u,download:i,dispose:c}=t;return new oe({location:"gpu-buffer",type:a??"float32",gpuBuffer:o,dims:u,download:i,dispose:c})},Co=(o,t)=>{let{dataType:a,dims:u,download:i,dispose:c}=t;return new oe({location:"ml-tensor",type:a??"float32",mlTensor:o,dims:u,download:i,dispose:c})},Mo=(o,t,a)=>new oe({location:"cpu-pinned",type:o,data:t,dims:a??[t.length]})});var Ye,Tt,Po,Uo,Ro=R(()=>{"use strict";Ye=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Tt=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Po=!1,Uo=()=>{if(!Po){Po=!0;let o=typeof BigInt64Array<"u"&&BigInt64Array.from,t=typeof BigUint64Array<"u"&&BigUint64Array.from,a=globalThis.Float16Array,u=typeof a<"u"&&a.from;o&&(Ye.set("int64",BigInt64Array),Tt.set(BigInt64Array,"int64")),t&&(Ye.set("uint64",BigUint64Array),Tt.set(BigUint64Array,"uint64")),u?(Ye.set("float16",a),Tt.set(a,"float16")):Ye.set("float16",Uint16Array)}}});var ko,No,Wo=R(()=>{"use strict";Rt();ko=o=>{let t=1;for(let a=0;a{switch(o.location){case"cpu":return new oe(o.type,o.data,t);case"cpu-pinned":return new oe({location:"cpu-pinned",data:o.data,type:o.type,dims:t});case"texture":return new oe({location:"texture",texture:o.texture,type:o.type,dims:t});case"gpu-buffer":return new oe({location:"gpu-buffer",gpuBuffer:o.gpuBuffer,type:o.type,dims:t});case"ml-tensor":return new oe({location:"ml-tensor",mlTensor:o.mlTensor,type:o.type,dims:t});default:throw new Error(`tensorReshape: tensor location ${o.location} is not supported`)}}});var oe,Rt=R(()=>{"use strict";xo();Do();Ro();Wo();oe=class{constructor(t,a,u){Uo();let i,c;if(typeof t=="object"&&"location"in t)switch(this.dataLocation=t.location,i=t.type,c=t.dims,t.location){case"cpu-pinned":{let d=Ye.get(i);if(!d)throw new TypeError(`unsupported type "${i}" to create tensor from pinned buffer`);if(!(t.data instanceof d))throw new TypeError(`buffer should be of type ${d.name}`);this.cpuData=t.data;break}case"texture":{if(i!=="float32")throw new TypeError(`unsupported type "${i}" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case"gpu-buffer":{if(i!=="float32"&&i!=="float16"&&i!=="int32"&&i!=="int64"&&i!=="uint32"&&i!=="uint8"&&i!=="bool"&&i!=="uint4"&&i!=="int4")throw new TypeError(`unsupported type "${i}" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}case"ml-tensor":{if(i!=="float32"&&i!=="float16"&&i!=="int32"&&i!=="int64"&&i!=="uint32"&&i!=="uint64"&&i!=="int8"&&i!=="uint8"&&i!=="bool"&&i!=="uint4"&&i!=="int4")throw new TypeError(`unsupported type "${i}" to create tensor from MLTensor`);this.mlTensorData=t.mlTensor,this.downloader=t.download,this.disposer=t.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let d,h;if(typeof t=="string")if(i=t,h=u,t==="string"){if(!Array.isArray(a))throw new TypeError("A string tensor's data must be a string array.");d=a}else{let g=Ye.get(t);if(g===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(a)){if(t==="float16"&&g===Uint16Array||t==="uint4"||t==="int4")throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${g.name} as data.`);t==="uint64"||t==="int64"?d=g.from(a,BigInt):d=g.from(a)}else if(a instanceof g)d=a;else if(a instanceof Uint8ClampedArray)if(t==="uint8")d=Uint8Array.from(a);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(t==="float16"&&a instanceof Uint16Array&&g!==Uint16Array)d=new globalThis.Float16Array(a.buffer,a.byteOffset,a.length);else throw new TypeError(`A ${i} tensor's data must be type of ${g}`)}else if(h=a,Array.isArray(t)){if(t.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let g=typeof t[0];if(g==="string")i="string",d=t;else if(g==="boolean")i="bool",d=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${g}.`)}else if(t instanceof Uint8ClampedArray)i="uint8",d=Uint8Array.from(t);else{let g=Tt.get(t.constructor);if(g===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);i=g,d=t}if(h===void 0)h=[d.length];else if(!Array.isArray(h))throw new TypeError("A tensor's dims must be a number array");c=h,this.cpuData=d,this.dataLocation="cpu"}let l=ko(c);if(this.cpuData&&l!==this.cpuData.length&&!((i==="uint4"||i==="int4")&&Math.ceil(l/2)===this.cpuData.length))throw new Error(`Tensor's size(${l}) does not match data length(${this.cpuData.length}).`);this.type=i,this.dims=c,this.size=l}static async fromImage(t,a){return Oo(t,a)}static fromTexture(t,a){return Lo(t,a)}static fromGpuBuffer(t,a){return Bo(t,a)}static fromMLTensor(t,a){return Co(t,a)}static fromPinnedBuffer(t,a,u){return Mo(t,a,u)}toDataURL(t){return Ao(this,t)}toImageData(t){return Io(this,t)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(t){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let a=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=a,t&&this.disposer&&(this.disposer(),this.disposer=void 0),a}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(t){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return No(this,t)}}});var ve,Nr=R(()=>{"use strict";Rt();ve=oe});var Fo,Go,Je,Xe,Re,ke,Wr=R(()=>{"use strict";Rr();Fo=(o,t)=>{(typeof ee.trace>"u"?!ee.wasm.trace:!ee.trace)||console.timeStamp(`${o}::ORT::${t}`)},Go=(o,t)=>{let a=new Error().stack?.split(/\r\n|\r|\n/g)||[],u=!1;for(let i=0;i{(typeof ee.trace>"u"?!ee.wasm.trace:!ee.trace)||Go("BEGIN",o)},Xe=o=>{(typeof ee.trace>"u"?!ee.wasm.trace:!ee.trace)||Go("END",o)},Re=o=>{(typeof ee.trace>"u"?!ee.wasm.trace:!ee.trace)||console.time(`ORT::${o}`)},ke=o=>{(typeof ee.trace>"u"?!ee.wasm.trace:!ee.trace)||console.timeEnd(`ORT::${o}`)}});var kt,$o=R(()=>{"use strict";Ur();Nr();Wr();kt=class o{constructor(t){this.handler=t}async run(t,a,u){Je(),Re("InferenceSession.run");let i={},c={};if(typeof t!="object"||t===null||t instanceof ve||Array.isArray(t))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let l=!0;if(typeof a=="object"){if(a===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(a instanceof ve)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(a)){if(a.length===0)throw new TypeError("'fetches' cannot be an empty array.");l=!1;for(let g of a){if(typeof g!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(g)===-1)throw new RangeError(`'fetches' contains invalid output name: ${g}.`);i[g]=null}if(typeof u=="object"&&u!==null)c=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else{let g=!1,w=Object.getOwnPropertyNames(a);for(let b of this.outputNames)if(w.indexOf(b)!==-1){let v=a[b];(v===null||v instanceof ve)&&(g=!0,l=!1,i[b]=v)}if(g){if(typeof u=="object"&&u!==null)c=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else c=a}}else if(typeof a<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let g of this.inputNames)if(typeof t[g]>"u")throw new Error(`input '${g}' is missing in 'feeds'.`);if(l)for(let g of this.outputNames)i[g]=null;let d=await this.handler.run(t,i,c),h={};for(let g in d)if(Object.hasOwnProperty.call(d,g)){let w=d[g];w instanceof ve?h[g]=w:h[g]=new ve(w.type,w.data,w.dims)}return ke("InferenceSession.run"),Xe(),h}async release(){return this.handler.dispose()}static async create(t,a,u,i){Je(),Re("InferenceSession.create");let c,l={};if(typeof t=="string"){if(c=t,typeof a=="object"&&a!==null)l=a;else if(typeof a<"u")throw new TypeError("'options' must be an object.")}else if(t instanceof Uint8Array){if(c=t,typeof a=="object"&&a!==null)l=a;else if(typeof a<"u")throw new TypeError("'options' must be an object.")}else if(t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer){let w=t,b=0,v=t.byteLength;if(typeof a=="object"&&a!==null)l=a;else if(typeof a=="number"){if(b=a,!Number.isSafeInteger(b))throw new RangeError("'byteOffset' must be an integer.");if(b<0||b>=w.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${w.byteLength}).`);if(v=t.byteLength-b,typeof u=="number"){if(v=u,!Number.isSafeInteger(v))throw new RangeError("'byteLength' must be an integer.");if(v<=0||b+v>w.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${w.byteLength-b}].`);if(typeof i=="object"&&i!==null)l=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(typeof u<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof a<"u")throw new TypeError("'options' must be an object.");c=new Uint8Array(w,b,v)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[d,h]=await bo(l),g=await d.createInferenceSessionHandler(c,h);return ke("InferenceSession.create"),Xe(),new o(g)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}}});var Xi,zo=R(()=>{"use strict";$o();Xi=kt});var jo=R(()=>{"use strict"});var Vo=R(()=>{"use strict"});var Ho=R(()=>{"use strict"});var qo=R(()=>{"use strict"});var Fr={};bt(Fr,{InferenceSession:()=>Xi,TRACE:()=>Fo,TRACE_EVENT_BEGIN:()=>Re,TRACE_EVENT_END:()=>ke,TRACE_FUNC_BEGIN:()=>Je,TRACE_FUNC_END:()=>Xe,Tensor:()=>ve,env:()=>X,registerBackend:()=>qe});var Ne=R(()=>{"use strict";To();So();zo();Nr();jo();Vo();Wr();Ho();qo()});var Nt=R(()=>{"use strict"});var Zo={};bt(Zo,{default:()=>Zi});var Jo,Xo,Zi,Qo=R(()=>{"use strict";Gr();We();Wt();Jo="ort-wasm-proxy-worker",Xo=globalThis.self?.name===Jo;Xo&&(self.onmessage=o=>{let{type:t,in:a}=o.data;try{switch(t){case"init-wasm":Ft(a.wasm).then(()=>{Gt(a).then(()=>{postMessage({type:t})},u=>{postMessage({type:t,err:u})})},u=>{postMessage({type:t,err:u})});break;case"init-ep":{let{epName:u,env:i}=a;$t(i,u).then(()=>{postMessage({type:t})},c=>{postMessage({type:t,err:c})});break}case"copy-from":{let{buffer:u}=a,i=vt(u);postMessage({type:t,out:i});break}case"create":{let{model:u,options:i}=a;zt(u,i).then(c=>{postMessage({type:t,out:c})},c=>{postMessage({type:t,err:c})});break}case"release":jt(a),postMessage({type:t});break;case"run":{let{sessionId:u,inputIndices:i,inputs:c,outputIndices:l,options:d}=a;Vt(u,i,c,l,new Array(l.length).fill(null),d).then(h=>{h.some(g=>g[3]!=="cpu")?postMessage({type:t,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:t,out:h},qt([...c,...h]))},h=>{postMessage({type:t,err:h})});break}case"end-profiling":Ht(a),postMessage({type:t});break;default:}}catch(u){postMessage({type:t,err:u})}});Zi=Xo?null:o=>new Worker(o??ge,{type:"module",name:Jo})});var ea={};bt(ea,{default:()=>Qi});async function Ko(o={}){var t=o,a=!!globalThis.window,u=!!globalThis.WorkerGlobalScope,i=u&&self.name?.startsWith("em-pthread");t.mountExternalData=(e,r)=>{e.startsWith("./")&&(e=e.substring(2)),(t.o||(t.o=new Map)).set(e,r)},t.unmountExternalData=()=>{delete t.o},globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;var c,l,d=(e,r)=>{throw r},h=import.meta.url,g="";if(a||u){try{g=new URL(".",h).href}catch{}u&&(l=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),c=async e=>{if(F(e))return new Promise((n,s)=>{var f=new XMLHttpRequest;f.open("GET",e,!0),f.responseType="arraybuffer",f.onload=()=>{f.status==200||f.status==0&&f.response?n(f.response):s(f.status)},f.onerror=s,f.send(null)});var r=await fetch(e,{credentials:"same-origin"});if(r.ok)return r.arrayBuffer();throw Error(r.status+" : "+r.url)}}var w,b,v,E,O,P,j=console.log.bind(console),L=console.error.bind(console),x=j,U=L,M=!1,F=e=>e.startsWith("file://");function p(){Ue.buffer!=H.buffer&&q()}if(i){var te=!1;async function e(r){try{var n=r.data,s=n.i;if(s==="load"){let f=[];self.onmessage=m=>f.push(m),P=()=>{postMessage({i:"loaded"});for(let m of f)e(m);self.onmessage=e};for(let m of n.H)t[m]&&!t[m].proxy||(t[m]=(...T)=>{postMessage({i:"callHandler",G:m,args:T})},m=="print"&&(x=t[m]),m=="printErr"&&(U=t[m]));Ue=n.N,q(),b=n.O,$e(),Dt()}else if(s==="run"){(function(f){var m=(p(),_)[f+52>>>2>>>0];f=(p(),_)[f+56>>>2>>>0],yo(m,m-f),de(m)})(n.h),Or(n.h,0,0,1,0,0),on(),mr(n.h),te||(Zn(),te=!0);try{await Ga(n.L,n.u)}catch(f){if(f!="unwind")throw f}}else n.target!=="setimmediate"&&(s==="checkMailbox"?te&&xt():s&&(U(`worker: received unknown command ${s}`),U(n)))}catch(f){throw co(),f}}self.onunhandledrejection=r=>{throw r.reason||r},self.onmessage=e}var H,G,se,De,S,_,Ge,B,Z,nt,V,le=!1;function q(){var e=Ue.buffer;t.HEAP8=H=new Int8Array(e),se=new Int16Array(e),t.HEAPU8=G=new Uint8Array(e),De=new Uint16Array(e),t.HEAP32=S=new Int32Array(e),t.HEAPU32=_=new Uint32Array(e),Ge=new Float32Array(e),B=new Float64Array(e),Z=new BigInt64Array(e),nt=new BigUint64Array(e)}function K(){le=!0,i?P():Me.__wasm_call_ctors()}function ot(e){throw U(e="Aborted("+e+")"),M=!0,e+=". Build with -sASSERTIONS for more info.",le&&go(),e=new WebAssembly.RuntimeError(e),O?.(e),e}function at(){if(!(wt={__pthread_create_js:fn,__syscall_fcntl64:dn,__syscall_fstat64:mn,__syscall_getcwd:hn,__syscall_getdents64:gn,__syscall_ioctl:yn,__syscall_lstat64:wn,__syscall_mkdirat:bn,__syscall_newfstatat:Tn,__syscall_openat:vn,__syscall_readlinkat:En,__syscall_rmdir:_n,__syscall_stat64:Sn,__syscall_unlinkat:An,_abort_js:$a,_embind_register_bigint:ja,_embind_register_bool:Va,_embind_register_emval:qa,_embind_register_float:Ja,_embind_register_integer:Xa,_embind_register_memory_view:Za,_embind_register_std_string:Qa,_embind_register_std_wstring:as,_embind_register_void:ss,_emscripten_init_main_thread_js:is,_emscripten_notify_mailbox_postmessage:fs,_emscripten_receive_on_main_thread_js:cs,_emscripten_runtime_keepalive_clear:ls,_emscripten_thread_cleanup:ps,_emscripten_thread_mailbox_await:mr,_emscripten_thread_set_strongref:ds,_emval_await:Bn,_emval_create_invoker:bs,_emval_decref:pr,_emval_equals:Ts,_emval_get_global:vs,_emval_get_module_property:Es,_emval_get_property:_s,_emval_incref:Ss,_emval_invoke:Cn,_emval_invoke_i64:As,_emval_new_array:Is,_emval_new_array_from_memory_view:xs,_emval_new_cstring:Os,_emval_new_object:Ls,_emval_run_destructors:Bs,_emval_set_property:Cs,_gmtime_js:Ms,_localtime_js:Ds,_mktime_js:Ps,_mmap_js:Un,_munmap_js:Rn,_setitimer_js:kn,_tzset_js:Rs,clock_time_get:Ws,emscripten_asm_const_int:Fs,emscripten_asm_const_ptr:Gs,emscripten_check_blocking_allowed:$s,emscripten_date_now:ks,emscripten_errn:zs,emscripten_exit_with_live_runtime:js,emscripten_get_heap_max:Vs,emscripten_get_now:Us,emscripten_has_asyncify:Hs,emscripten_num_logical_cores:qs,emscripten_resize_heap:Ys,emwgpuAdapterRequestDevice:ni,emwgpuBufferDestroy:oi,emwgpuBufferGetConstMappedRange:ai,emwgpuBufferGetMappedRange:si,emwgpuBufferMapAsync:ii,emwgpuBufferUnmap:ui,emwgpuDelete:fi,emwgpuDeviceCreateBuffer:ci,emwgpuDeviceCreateComputePipelineAsync:li,emwgpuDeviceCreateShaderModule:pi,emwgpuDeviceDestroy:di,emwgpuDevicePopErrorScope:mi,emwgpuInstanceRequestAdapter:hi,emwgpuWaitAny:$n,environ_get:jn,environ_sizes_get:Vn,exit:ur,fd_close:Hn,fd_read:qn,fd_seek:Yn,fd_write:Jn,memory:Ue,proc_exit:ze,wgpuAdapterGetLimits:yi,wgpuAdapterHasFeature:wi,wgpuBufferGetSize:bi,wgpuBufferGetUsage:Ti,wgpuCommandEncoderBeginComputePass:vi,wgpuCommandEncoderClearBuffer:Ei,wgpuCommandEncoderCopyBufferToBuffer:_i,wgpuCommandEncoderFinish:Si,wgpuCommandEncoderResolveQuerySet:Ai,wgpuComputePassEncoderDispatchWorkgroups:Ii,wgpuComputePassEncoderDispatchWorkgroupsIndirect:xi,wgpuComputePassEncoderEnd:Oi,wgpuComputePassEncoderSetBindGroup:Li,wgpuComputePassEncoderSetPipeline:Bi,wgpuComputePassEncoderWriteTimestamp:Ci,wgpuComputePipelineGetBindGroupLayout:Mi,wgpuDeviceCreateBindGroup:Di,wgpuDeviceCreateCommandEncoder:Pi,wgpuDeviceCreateQuerySet:Ui,wgpuDeviceGetAdapterInfo:Ri,wgpuDeviceGetFeatures:Ni,wgpuDeviceGetLimits:Wi,wgpuDevicePushErrorScope:Fi,wgpuQueueSubmit:Gi,wgpuQueueWriteBuffer:$i}).F){wt.F=!0;var e=wt,r=/^(invoke_.*|__asyncjs__.*)$/;for(let[n,s]of Object.entries(e))typeof s=="function"&&(s.v||r.test(n))&&(e[n]=s=new WebAssembly.Suspending(s))}return{env:wt,wasi_snapshot_preview1:wt}}async function $e(){function e(s,f){s=Me=s.exports;var m=/^(OrtAppendExecutionProvider|OrtCreateSession|OrtRun|OrtRunWithBinding|OrtBindInput|main|__main_argc_argv)$/;gr=new Set;var T={};for(let[y,A]of Object.entries(s))typeof A=="function"?(m.test(y)&&(gr.add(A),A=WebAssembly.promising(A)),T[y]=ms(A)):T[y]=A;return Me=T,Me=function(){var y=Me,A=z=>J=>z(J)>>>0,C=z=>()=>z()>>>0;return(y=Object.assign({},y)).__getTypeName=A(y.__getTypeName),y.pthread_self=C(y.pthread_self),y.malloc=A(y.malloc),y.memalign=(z=>(J,ie)=>z(J,ie)>>>0)(y.memalign),y._emscripten_stack_alloc=A(y._emscripten_stack_alloc),y.emscripten_stack_get_current=C(y.emscripten_stack_get_current),y}(),rn.push(Me._emscripten_tls_init),Xn=(s=Me).__getTypeName,Zn=s._embind_initialize_bindings,t._OrtInit=s.OrtInit,t._OrtGetLastError=s.OrtGetLastError,t._OrtCreateSessionOptions=s.OrtCreateSessionOptions,t._OrtAppendExecutionProvider=s.OrtAppendExecutionProvider,t._OrtAddFreeDimensionOverride=s.OrtAddFreeDimensionOverride,t._OrtAddSessionConfigEntry=s.OrtAddSessionConfigEntry,t._OrtReleaseSessionOptions=s.OrtReleaseSessionOptions,t._OrtCreateSession=s.OrtCreateSession,t._OrtReleaseSession=s.OrtReleaseSession,t._OrtGetInputOutputCount=s.OrtGetInputOutputCount,t._OrtGetInputOutputMetadata=s.OrtGetInputOutputMetadata,t._OrtFree=s.OrtFree,t._OrtCreateTensor=s.OrtCreateTensor,t._OrtGetTensorData=s.OrtGetTensorData,t._OrtReleaseTensor=s.OrtReleaseTensor,t._OrtCreateRunOptions=s.OrtCreateRunOptions,t._OrtAddRunConfigEntry=s.OrtAddRunConfigEntry,t._OrtReleaseRunOptions=s.OrtReleaseRunOptions,t._OrtCreateBinding=s.OrtCreateBinding,t._OrtBindInput=s.OrtBindInput,t._OrtBindOutput=s.OrtBindOutput,t._OrtClearBoundOutputs=s.OrtClearBoundOutputs,t._OrtReleaseBinding=s.OrtReleaseBinding,t._OrtRunWithBinding=s.OrtRunWithBinding,t._OrtRun=s.OrtRun,t._OrtEndProfiling=s.OrtEndProfiling,Er=t._OrtGetWebGpuDevice=s.OrtGetWebGpuDevice,Ct=s.pthread_self,Ie=t._free=s.free,gt=t._malloc=s.malloc,Qn=t._wgpuBufferRelease=s.wgpuBufferRelease,Kn=t._wgpuCreateInstance=s.wgpuCreateInstance,eo=s.emwgpuCreateBindGroup,to=s.emwgpuCreateBindGroupLayout,ro=s.emwgpuCreateCommandBuffer,no=s.emwgpuCreateCommandEncoder,oo=s.emwgpuCreateComputePassEncoder,ao=s.emwgpuCreateQuerySet,so=s.emwgpuCreateBuffer,io=s.emwgpuCreateDevice,uo=s.emwgpuCreateQueue,_r=s.emwgpuOnCreateComputePipelineCompleted,Sr=s.emwgpuOnDeviceLostCompleted,Ar=s.emwgpuOnMapAsyncCompleted,Ir=s.emwgpuOnPopErrorScopeCompleted,yt=s.emwgpuOnRequestAdapterCompleted,xr=s.emwgpuOnRequestDeviceCompleted,fo=s.emwgpuOnUncapturedError,Or=s._emscripten_thread_init,co=s._emscripten_thread_crashed,lo=s._emscripten_run_js_on_main_thread,po=s._emscripten_thread_free_data,Lr=s._emscripten_thread_exit,mo=s._emscripten_timeout,ho=s._emscripten_check_mailbox,Br=s.memalign,go=s.__trap,yo=s.emscripten_stack_set_limits,de=s._emscripten_stack_restore,Mt=s._emscripten_stack_alloc,me=s.emscripten_stack_get_current,wo=s.__indirect_function_table,b=f,Me}var r,n=at();return t.instantiateWasm?new Promise(s=>{t.instantiateWasm(n,(f,m)=>{s(e(f,m))})}):i?e(new WebAssembly.Instance(b,at()),b):(V??=t.locateFile?t.locateFile?t.locateFile("ort-wasm-simd-threaded.jspi.wasm",g):g+"ort-wasm-simd-threaded.jspi.wasm":new URL("ort-wasm-simd-threaded.jspi.wasm",import.meta.url).href,r=await async function(s){var f=V;if(!w&&!F(f))try{var m=fetch(f,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(m,s)}catch(T){U(`wasm streaming compile failed: ${T}`),U("falling back to ArrayBuffer instantiation")}return async function(T,y){try{var A=await async function(C){if(!w)try{var z=await c(C);return new Uint8Array(z)}catch{}if(C==V&&w)C=new Uint8Array(w);else{if(!l)throw"both async and sync fetching of the wasm failed";C=l(C)}return C}(T);return await WebAssembly.instantiate(A,y)}catch(C){U(`failed to asynchronously prepare wasm: ${C}`),ot(C)}}(f,s)}(n),e(r.instance,r.module))}class st{name="ExitStatus";constructor(r){this.message=`Program terminated with exit(${r})`,this.status=r}}var It=e=>{e.terminate(),e.onmessage=()=>{}},Ee=()=>{for(var e=be;0{Pe.length==0&&(sn(),an(Pe[0]));var r=Pe.pop();if(!r)return 6;dt.push(r),je[e.h]=r,r.h=e.h;var n={i:"run",L:e.K,u:e.u,h:e.h};return r.postMessage(n,e.A),0},k=0,$=(e,r,...n)=>{var s,f=16*n.length,m=me(),T=Mt(f),y=T>>>3;for(s of n)typeof s=="bigint"?((p(),Z)[y++>>>0]=1n,(p(),Z)[y++>>>0]=s):((p(),Z)[y++>>>0]=0n,(p(),B)[y++>>>0]=s);return e=lo(e,0,f,T,r),de(m),e};function ze(e){if(i)return $(0,1,e);if(v=e,!(0{if(v=e,i)throw ir(e),"unwind";ze(e)},Pe=[],dt=[],rn=[],je={},nn=e=>{var r=e.h;delete je[r],Pe.push(e),dt.splice(dt.indexOf(e),1),e.h=0,po(r)};function on(){rn.forEach(e=>e())}var an=e=>new Promise(r=>{e.onmessage=f=>{var m=f.data;if(f=m.i,m.s&&m.s!=Ct()){var T=je[m.s];T?T.postMessage(m,m.A):U(`Internal error! Worker sent a message "${f}" to target pthread ${m.s}, but that thread no longer exists!`)}else f==="checkMailbox"?xt():f==="spawnThread"?Y(m):f==="cleanupThread"?pe(()=>{nn(je[m.M])}):f==="loaded"?(e.loaded=!0,r(e)):m.target==="setimmediate"?e.postMessage(m):f==="uncaughtException"?e.onerror(m.error):f==="callHandler"?t[m.G](...m.args):f&&U(`worker sent an unknown command ${f}`)},e.onerror=f=>{throw U(`worker sent an error! ${f.filename}:${f.lineno}: ${f.message}`),f};var n,s=[];for(n of[])t.propertyIsEnumerable(n)&&s.push(n);e.postMessage({i:"load",H:s,N:Ue,O:b})});function sn(){var e=new Worker((()=>{let r=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new r("ort.jspi.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});Pe.push(e)}var Ue,fr=[],Ga=async(e,r)=>{k=0;var n=WebAssembly,s=n.promising,f=fr[e];f||(fr[e]=f=wo.get(e),gr?.has(f)&&(fr[e]=f=WebAssembly.promising(f))),e=s.call(n,f)(r),e=await e,0-9007199254740992>e||9007199254740992>>=0,r>>>=0,n>>>=0,s>>>=0,!globalThis.SharedArrayBuffer)return 6;var f=[];return i&&f.length===0?un(e,r,n,s):(e={K:n,h:e,u:s,A:f},i?(e.i="spawnThread",postMessage(e,f),0):Y(e))}var cn=globalThis.TextDecoder&&new TextDecoder,ln=(e,r,n,s)=>{if(n=r+n,s)return n;for(;e[r]&&!(r>=n);)++r;return r},pn=(e,r=0,n,s)=>{if(16<(n=ln(e,r>>>=0,n,s))-r&&e.buffer&&cn)return cn.decode(e.buffer instanceof ArrayBuffer?e.subarray(r,n):e.slice(r,n));for(s="";r(f=(240&f)==224?(15&f)<<12|m<<6|T:(7&f)<<18|m<<12|T<<6|63&e[r++])?s+=String.fromCharCode(f):(f-=65536,s+=String.fromCharCode(55296|f>>10,56320|1023&f))}}else s+=String.fromCharCode(f)}return s},it=(e,r,n)=>(e>>>=0)?pn((p(),G),e,r,n):"";function dn(e,r,n){return i?$(3,1,e,r,n):0}function mn(e,r){if(i)return $(4,1,e,r)}function hn(e,r){if(i)return $(5,1,e,r)}function gn(e,r,n){if(i)return $(6,1,e,r,n)}function yn(e,r,n){return i?$(7,1,e,r,n):0}function wn(e,r){if(i)return $(8,1,e,r)}function bn(e,r,n){if(i)return $(9,1,e,r,n)}function Tn(e,r,n,s){if(i)return $(10,1,e,r,n,s)}function vn(e,r,n,s){if(i)return $(11,1,e,r,n,s)}function En(e,r,n,s){if(i)return $(12,1,e,r,n,s)}function _n(e){if(i)return $(13,1,e)}function Sn(e,r){if(i)return $(14,1,e,r)}function An(e,r,n){if(i)return $(15,1,e,r,n)}var $a=()=>ot(""),Se=e=>{e>>>=0;for(var r="";;){var n=(p(),G)[e++>>>0];if(!n)return r;r+=String.fromCharCode(n)}},cr={},lr={},za={},ut=class extends Error{constructor(e){super(e),this.name="BindingError"}};function xe(e,r,n={}){return function(s,f,m={}){var T=f.name;if(!s)throw new ut(`type "${T}" must have a positive integer typeid pointer`);if(lr.hasOwnProperty(s)){if(m.I)return;throw new ut(`Cannot register type '${T}' twice`)}lr[s]=f,delete za[s],cr.hasOwnProperty(s)&&(f=cr[s],delete cr[s],f.forEach(y=>y()))}(e,r,n)}var In=(e,r,n)=>{switch(r){case 1:return n?s=>(p(),H)[s>>>0]:s=>(p(),G)[s>>>0];case 2:return n?s=>(p(),se)[s>>>1>>>0]:s=>(p(),De)[s>>>1>>>0];case 4:return n?s=>(p(),S)[s>>>2>>>0]:s=>(p(),_)[s>>>2>>>0];case 8:return n?s=>(p(),Z)[s>>>3>>>0]:s=>(p(),nt)[s>>>3>>>0];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}};function ja(e,r,n,s,f){e>>>=0,n>>>=0,r=Se(r>>>0);let m=T=>T;if(s=s===0n){let T=8*n;m=y=>BigInt.asUintN(T,y),f=m(f)}xe(e,{name:r,g:m,l:(T,y)=>(typeof y=="number"&&(y=BigInt(y)),y),j:In(r,n,!s),m:null})}function Va(e,r,n,s){xe(e>>>=0,{name:r=Se(r>>>0),g:function(f){return!!f},l:function(f,m){return m?n:s},j:function(f){return this.g((p(),G)[f>>>0])},m:null})}var xn=[],Ve=[0,1,,1,null,1,!0,1,!1,1];function pr(e){9<(e>>>=0)&&--Ve[e+1]==0&&(Ve[e]=void 0,xn.push(e))}var ye=e=>{if(!e)throw new ut(`Cannot use deleted val. handle = ${e}`);return Ve[e]},Te=e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let r=xn.pop()||Ve.length;return Ve[r]=e,Ve[r+1]=1,r}};function dr(e){return this.g((p(),_)[e>>>2>>>0])}var Ha={name:"emscripten::val",g:e=>{var r=ye(e);return pr(e),r},l:(e,r)=>Te(r),j:dr,m:null};function qa(e){return xe(e>>>0,Ha)}var Ya=(e,r)=>{switch(r){case 4:return function(n){return this.g((p(),Ge)[n>>>2>>>0])};case 8:return function(n){return this.g((p(),B)[n>>>3>>>0])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}};function Ja(e,r,n){n>>>=0,xe(e>>>=0,{name:r=Se(r>>>0),g:s=>s,l:(s,f)=>f,j:Ya(r,n),m:null})}function Xa(e,r,n,s,f){e>>>=0,n>>>=0,r=Se(r>>>0);let m=y=>y;if(s===0){var T=32-8*n;m=y=>y<>>T,f=m(f)}xe(e,{name:r,g:m,l:(y,A)=>A,j:In(r,n,s!==0),m:null})}function Za(e,r,n){function s(m){var T=(p(),_)[m>>>2>>>0];return m=(p(),_)[m+4>>>2>>>0],new f((p(),H).buffer,m,T)}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][r];xe(e>>>=0,{name:n=Se(n>>>0),g:s,j:s},{I:!0})}var Oe=(e,r,n)=>{var s=(p(),G);if(r>>>=0,0=T){if(r>=n)break;s[r++>>>0]=T}else if(2047>=T){if(r+1>=n)break;s[r++>>>0]=192|T>>6,s[r++>>>0]=128|63&T}else if(65535>=T){if(r+2>=n)break;s[r++>>>0]=224|T>>12,s[r++>>>0]=128|T>>6&63,s[r++>>>0]=128|63&T}else{if(r+3>=n)break;s[r++>>>0]=240|T>>18,s[r++>>>0]=128|T>>12&63,s[r++>>>0]=128|T>>6&63,s[r++>>>0]=128|63&T,m++}}s[r>>>0]=0,e=r-f}else e=0;return e},Le=e=>{for(var r=0,n=0;n=s?r++:2047>=s?r+=2:55296<=s&&57343>=s?(r+=4,++n):r+=3}return r};function Qa(e,r){xe(e>>>=0,{name:r=Se(r>>>0),g(n){var s=(p(),_)[n>>>2>>>0];return s=it(n+4,s,!0),Ie(n),s},l(n,s){s instanceof ArrayBuffer&&(s=new Uint8Array(s));var f=typeof s=="string";if(!(f||ArrayBuffer.isView(s)&&s.BYTES_PER_ELEMENT==1))throw new ut("Cannot pass non-string to std::string");var m=f?Le(s):s.length,T=gt(4+m+1),y=T+4;return(p(),_)[T>>>2>>>0]=m,f?Oe(s,y,m+1):(p(),G).set(s,y>>>0),n!==null&&n.push(Ie,T),T},j:dr,m(n){Ie(n)}})}var On=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Ka=(e,r,n)=>{if(e>>>=1,16<(r=ln((p(),De),e,r/2,n))-e&&On)return On.decode((p(),De).slice(e,r));for(n="";e>>0];n+=String.fromCharCode(s)}return n},es=(e,r,n)=>{if(n??=2147483647,2>n)return 0;var s=r;n=(n-=2)<2*e.length?n/2:e.length;for(var f=0;f>>1>>>0]=m,r+=2}return(p(),se)[r>>>1>>>0]=0,r-s},ts=e=>2*e.length,rs=(e,r,n)=>{var s="";e>>>=2;for(var f=0;!(f>=r/4);f++){var m=(p(),_)[e+f>>>0];if(!m&&!n)break;s+=String.fromCodePoint(m)}return s},ns=(e,r,n)=>{if(r>>>=0,n??=2147483647,4>n)return 0;var s=r;n=s+n-4;for(var f=0;f>>2>>>0]=m,(r+=4)+4>n)break}return(p(),S)[r>>>2>>>0]=0,r-s},os=e=>{for(var r=0,n=0;n>>=0,r>>>=0,n=Se(n>>>=0),r===2)var s=Ka,f=es,m=ts;else s=rs,f=ns,m=os;xe(e,{name:n,g:T=>{var y=(p(),_)[T>>>2>>>0];return y=s(T+4,y*r,!0),Ie(T),y},l:(T,y)=>{if(typeof y!="string")throw new ut(`Cannot pass non-string to C++ string type ${n}`);var A=m(y),C=gt(4+A+r);return(p(),_)[C>>>2>>>0]=A/r,f(y,C+4,A+r),T!==null&&T.push(Ie,C),C},j:dr,m(T){Ie(T)}})}function ss(e,r){xe(e>>>=0,{J:!0,name:r=Se(r>>>0),g:()=>{},l:()=>{}})}function is(e){Or(e>>>0,!u,1,!a,131072,!1),on()}var pe=e=>{if(!M)try{if(e(),!(0Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function mr(e){e>>>=0,us||(Atomics.waitAsync((p(),S),e>>>2,e).value.then(xt),e+=128,Atomics.store((p(),S),e>>>2,1))}var xt=()=>pe(()=>{var e=Ct();e&&(mr(e),ho())});function fs(e,r){(e>>>=0)==r>>>0?setTimeout(xt):i?postMessage({s:e,i:"checkMailbox"}):(e=je[e])&&e.postMessage({i:"checkMailbox"})}var hr=[];function cs(e,r,n,s,f){for(r>>>=0,f>>>=0,hr.length=0,n=f>>>3,s=f+s>>>3;n>>0]?(p(),Z)[n++>>>0]:(p(),B)[n++>>>0],hr.push(m)}return(r?Cr[r]:zi[e])(...hr)}var ls=()=>{k=0};function ps(e){e>>>=0,i?postMessage({i:"cleanupThread",M:e}):nn(je[e])}function ds(e){}function ms(e){return(...r)=>e(...r)}var gr=null,Ln=async e=>{k+=1;try{return await e()}finally{--k}};function Bn(e){return e>>>=0,Ln(async()=>{var r=await ye(e);return Te(r)})}Bn.v=!0;var yr=[],hs=e=>{var r=yr.length;return yr.push(e),r},gs=(e,r)=>{for(var n=Array(e),s=0;s>>2>>>0],T=lr[m];if(T===void 0)throw e=`parameter ${s}`,m=Xn(m),r=Se(m),Ie(m),new ut(`${e} has unknown type ${r}`);n[f]=T}return n},ys=(e,r,n)=>{var s=[];return e=e(s,n),s.length&&((p(),_)[r>>>2>>>0]=Te(s)),e},ws={},Ot=e=>{var r=ws[e];return r===void 0?Se(e):r};function bs(e,r,n){var[s,...f]=gs(e,r>>>0);r=s.l.bind(s);var m=f.map(A=>A.j.bind(A));e--;var T={toValue:ye};switch(e=m.map((A,C)=>{var z=`argFromPtr${C}`;return T[z]=A,`${z}(args${C?"+"+8*C:""})`}),n){case 0:var y="toValue(handle)";break;case 2:y="new (toValue(handle))";break;case 3:y="";break;case 1:T.getStringOrSymbol=Ot,y="toValue(handle)[getStringOrSymbol(methodName)]"}return y+=`(${e})`,s.J||(T.toReturnWire=r,T.emval_returnValue=ys,y=`return emval_returnValue(toReturnWire, destructorsRef, ${y})`),y=`return function (handle, methodName, destructorsRef, args) { ${y} }`,n=new Function(Object.keys(T),y)(...Object.values(T)),y=`methodCaller<(${f.map(A=>A.name)}) => ${s.name}>`,hs(Object.defineProperty(n,"name",{value:y}))}function Ts(e,r){return r>>>=0,(e=ye(e>>>0))==ye(r)}function vs(e){return(e>>>=0)?(e=Ot(e),Te(globalThis[e])):Te(globalThis)}function Es(e){return e=Ot(e>>>0),Te(t[e])}function _s(e,r){return r>>>=0,e=ye(e>>>0),r=ye(r),Te(e[r])}function Ss(e){9<(e>>>=0)&&(Ve[e+1]+=1)}function Cn(e,r,n,s,f){return yr[e>>>0](r>>>0,n>>>0,s>>>0,f>>>0)}function As(e,r,n,s,f){return Cn(e>>>0,r>>>0,n>>>0,s>>>0,f>>>0)}function Is(){return Te([])}function xs(e){e=ye(e>>>0);for(var r=Array(e.length),n=0;n>>0))}function Ls(){return Te({})}function Bs(e){for(var r=ye(e>>>=0);r.length;){var n=r.pop();r.pop()(n)}pr(e)}function Cs(e,r,n){r>>>=0,n>>>=0,e=ye(e>>>0),r=ye(r),n=ye(n),e[r]=n}function Ms(e,r){e=re(e),r>>>=0,e=new Date(1e3*e),(p(),S)[r>>>2>>>0]=e.getUTCSeconds(),(p(),S)[r+4>>>2>>>0]=e.getUTCMinutes(),(p(),S)[r+8>>>2>>>0]=e.getUTCHours(),(p(),S)[r+12>>>2>>>0]=e.getUTCDate(),(p(),S)[r+16>>>2>>>0]=e.getUTCMonth(),(p(),S)[r+20>>>2>>>0]=e.getUTCFullYear()-1900,(p(),S)[r+24>>>2>>>0]=e.getUTCDay(),e=(e.getTime()-Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,(p(),S)[r+28>>>2>>>0]=e}var Mn=e=>e%4==0&&(e%100!=0||e%400==0),Dn=[0,31,60,91,121,152,182,213,244,274,305,335],Pn=[0,31,59,90,120,151,181,212,243,273,304,334];function Ds(e,r){e=re(e),r>>>=0,e=new Date(1e3*e),(p(),S)[r>>>2>>>0]=e.getSeconds(),(p(),S)[r+4>>>2>>>0]=e.getMinutes(),(p(),S)[r+8>>>2>>>0]=e.getHours(),(p(),S)[r+12>>>2>>>0]=e.getDate(),(p(),S)[r+16>>>2>>>0]=e.getMonth(),(p(),S)[r+20>>>2>>>0]=e.getFullYear()-1900,(p(),S)[r+24>>>2>>>0]=e.getDay();var n=(Mn(e.getFullYear())?Dn:Pn)[e.getMonth()]+e.getDate()-1|0;(p(),S)[r+28>>>2>>>0]=n,(p(),S)[r+36>>>2>>>0]=-60*e.getTimezoneOffset(),n=new Date(e.getFullYear(),6,1).getTimezoneOffset();var s=new Date(e.getFullYear(),0,1).getTimezoneOffset();e=0|(n!=s&&e.getTimezoneOffset()==Math.min(s,n)),(p(),S)[r+32>>>2>>>0]=e}function Ps(e){e>>>=0;var r=new Date((p(),S)[e+20>>>2>>>0]+1900,(p(),S)[e+16>>>2>>>0],(p(),S)[e+12>>>2>>>0],(p(),S)[e+8>>>2>>>0],(p(),S)[e+4>>>2>>>0],(p(),S)[e>>>2>>>0],0),n=(p(),S)[e+32>>>2>>>0],s=r.getTimezoneOffset(),f=new Date(r.getFullYear(),6,1).getTimezoneOffset(),m=new Date(r.getFullYear(),0,1).getTimezoneOffset(),T=Math.min(m,f);return 0>n?(p(),S)[e+32>>>2>>>0]=+(f!=m&&T==s):0>>2>>>0]=r.getDay(),n=(Mn(r.getFullYear())?Dn:Pn)[r.getMonth()]+r.getDate()-1|0,(p(),S)[e+28>>>2>>>0]=n,(p(),S)[e>>>2>>>0]=r.getSeconds(),(p(),S)[e+4>>>2>>>0]=r.getMinutes(),(p(),S)[e+8>>>2>>>0]=r.getHours(),(p(),S)[e+12>>>2>>>0]=r.getDate(),(p(),S)[e+16>>>2>>>0]=r.getMonth(),(p(),S)[e+20>>>2>>>0]=r.getYear(),e=r.getTime(),BigInt(isNaN(e)?-1:e/1e3)}function Un(e,r,n,s,f,m,T){return i?$(16,1,e,r,n,s,f,m,T):-52}function Rn(e,r,n,s,f,m){if(i)return $(17,1,e,r,n,s,f,m)}var mt={},Us=()=>performance.timeOrigin+performance.now();function kn(e,r){if(i)return $(18,1,e,r);if(mt[e]&&(clearTimeout(mt[e].id),delete mt[e]),!r)return 0;var n=setTimeout(()=>{delete mt[e],pe(()=>mo(e,performance.timeOrigin+performance.now()))},r);return mt[e]={id:n,V:r},0}function Rs(e,r,n,s){e>>>=0,r>>>=0,n>>>=0,s>>>=0;var f=new Date().getFullYear(),m=new Date(f,0,1).getTimezoneOffset();f=new Date(f,6,1).getTimezoneOffset();var T=Math.max(m,f);(p(),_)[e>>>2>>>0]=60*T,(p(),S)[r>>>2>>>0]=+(m!=f),e=(r=y=>{var A=Math.abs(y);return`UTC${0<=y?"-":"+"}${String(Math.floor(A/60)).padStart(2,"0")}${String(A%60).padStart(2,"0")}`})(m),r=r(f),fDate.now(),Ns=1;function Ws(e,r,n){if(n>>>=0,!(0<=e&&3>=e))return 28;if(e===0)e=Date.now();else{if(!Ns)return 52;e=performance.timeOrigin+performance.now()}return e=Math.round(1e6*e),(p(),Z)[n>>>3>>>0]=BigInt(e),0}var wr=[],Nn=(e,r)=>{wr.length=0;for(var n;n=(p(),G)[e++>>>0];){var s=n!=105;r+=(s&=n!=112)&&r%8?4:0,wr.push(n==112?(p(),_)[r>>>2>>>0]:n==106?(p(),Z)[r>>>3>>>0]:n==105?(p(),S)[r>>>2>>>0]:(p(),B)[r>>>3>>>0]),r+=s?8:4}return wr};function Fs(e,r,n){return e>>>=0,r=Nn(r>>>0,n>>>0),Cr[e](...r)}function Gs(e,r,n){return e>>>=0,r=Nn(r>>>0,n>>>0),Cr[e](...r)}var $s=()=>{};function zs(e,r){return U(it(e>>>0,r>>>0))}var js=()=>{throw k+=1,"unwind"};function Vs(){return 4294901760}var Hs=()=>2,qs=()=>navigator.hardwareConcurrency;function Ys(e){e>>>=0;var r=(p(),G).length;if(e<=r||4294901760=n;n*=2){var s=r*(1+.2/n);s=Math.min(s,e+100663296);e:{s=(Math.min(4294901760,65536*Math.ceil(Math.max(e,s)/65536))-Ue.buffer.byteLength+65535)/65536|0;try{Ue.grow(s),q();var f=1;break e}catch{}f=void 0}if(f)return!0}return!1}var Ae=e=>{var r=Le(e)+1,n=Mt(r);return Oe(e,n,r),n},br=(e,r)=>{(p(),_)[e>>>2>>>0]=r;var n=(p(),_)[e>>>2>>>0];(p(),_)[e+4>>>2>>>0]=(r-n)/4294967296},ht=e=>(p(),_)[e>>>2>>>0]+4294967296*(p(),S)[e+4>>>2>>>0],ne=[],Js=(e,r)=>{ne[e>>>0]=r},Be=[],Lt=[],ft=(e,r)=>{Lt[e]=new Promise(n=>r.finally(()=>n(e)))},I=e=>{if(e)return ne[e>>>0]},Xs=(e,r)=>{for(e=(p(),_)[e>>>2>>>0];e;e=(p(),_)[e>>>2>>>0])r[(p(),S)[e+4>>>2>>>0]](e)},Bt=(e,r,n)=>{(p(),_)[e>>>2>>>0]=r,(p(),_)[e+4>>>2>>>0]=n},Wn=e=>{var r=(p(),_)[e>>>2>>>0];return e=(p(),_)[e+4>>>2>>>0],it(r,e)},Ce=e=>{var r=(p(),_)[e>>>2>>>0];return e=(p(),_)[e+4>>>2>>>0],r?it(r,e):e===0?"":void 0},Zs=e=>{var r=Ce(e+4),n=(n=(p(),_)[e+12>>>2>>>0])?I(n):"auto";if(e+=16){var s=I((p(),_)[e+4>>>2>>>0]),f=(p(),_)[e+16>>>2>>>0],m=(p(),_)[e+20>>>2>>>0];if(f){for(var T={},y=0;y>>3>>>0]}f=T}else f=void 0;e={module:s,constants:f,entryPoint:Ce(e+8)}}else e=void 0;return{label:r,layout:n,compute:e}},Fn=(e,r)=>{function n(s,f){s=e[s],(p(),_)[r+f>>>2>>>0]=s}n("maxTextureDimension1D",4),n("maxTextureDimension2D",8),n("maxTextureDimension3D",12),n("maxTextureArrayLayers",16),n("maxBindGroups",20),n("maxBindGroupsPlusVertexBuffers",24),n("maxBindingsPerBindGroup",28),n("maxDynamicUniformBuffersPerPipelineLayout",32),n("maxDynamicStorageBuffersPerPipelineLayout",36),n("maxSampledTexturesPerShaderStage",40),n("maxSamplersPerShaderStage",44),n("maxStorageBuffersPerShaderStage",48),n("maxStorageTexturesPerShaderStage",52),n("maxUniformBuffersPerShaderStage",56),n("minUniformBufferOffsetAlignment",80),n("minStorageBufferOffsetAlignment",84),br(r+64,e.maxUniformBufferBindingSize),br(r+72,e.maxStorageBufferBindingSize),n("maxVertexBuffers",88),br(r+96,e.maxBufferSize),n("maxVertexAttributes",104),n("maxVertexBufferArrayStride",108),n("maxInterStageShaderVariables",112),n("maxColorAttachments",116),n("maxColorAttachmentBytesPerSample",120),n("maxComputeWorkgroupStorageSize",124),n("maxComputeInvocationsPerWorkgroup",128),n("maxComputeWorkgroupSizeX",132),n("maxComputeWorkgroupSizeY",136),n("maxComputeWorkgroupSizeZ",140),n("maxComputeWorkgroupsPerDimension",144),e.U!==void 0&&n("maxImmediateSize",148)},Qs=[,"validation","out-of-memory","internal"],Ks=[,"compatibility","core"],Gn={1:"core-features-and-limits",2:"depth-clip-control",3:"depth32float-stencil8",4:"texture-compression-bc",5:"texture-compression-bc-sliced-3d",6:"texture-compression-etc2",7:"texture-compression-astc",8:"texture-compression-astc-sliced-3d",9:"timestamp-query",10:"indirect-first-instance",11:"shader-f16",12:"rg11b10ufloat-renderable",13:"bgra8unorm-storage",14:"float32-filterable",15:"float32-blendable",16:"clip-distances",17:"dual-source-blending",18:"subgroups",19:"texture-formats-tier1",20:"texture-formats-tier2",21:"primitive-index",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},ei=[,"low-power","high-performance"],ti=[,"occlusion","timestamp"],ri={undefined:1,unknown:1,destroyed:2};function ni(e,r,n,s,f,m){r=re(r),n=re(n),s>>>=0,f>>>=0,m>>>=0;var T=I(e>>>0);if(e={},m){var y=(p(),_)[m+12>>>2>>>0];if(y){var A=(p(),_)[m+16>>>2>>>0];e.requiredFeatures=Array.from((p(),_).subarray(A>>>2>>>0,A+4*y>>>2>>>0),D=>Gn[D])}var C=(p(),_)[m+20>>>2>>>0];if(C){let D=function(he,fe,Mr=!1){fe=C+fe,(fe=(p(),_)[fe>>>2>>>0])==4294967295||Mr&&fe==0||(z[he]=fe)},ue=function(he,fe){fe=C+fe;var Mr=(p(),_)[fe>>>2>>>0],ji=(p(),_)[fe+4>>>2>>>0];Mr==4294967295&&ji==4294967295||(z[he]=ht(fe))};var J=D,ie=ue,z={};D("maxTextureDimension1D",4),D("maxTextureDimension2D",8),D("maxTextureDimension3D",12),D("maxTextureArrayLayers",16),D("maxBindGroups",20),D("maxBindGroupsPlusVertexBuffers",24),D("maxDynamicUniformBuffersPerPipelineLayout",32),D("maxDynamicStorageBuffersPerPipelineLayout",36),D("maxSampledTexturesPerShaderStage",40),D("maxSamplersPerShaderStage",44),D("maxStorageBuffersPerShaderStage",48),D("maxStorageTexturesPerShaderStage",52),D("maxUniformBuffersPerShaderStage",56),D("minUniformBufferOffsetAlignment",80),D("minStorageBufferOffsetAlignment",84),ue("maxUniformBufferBindingSize",64),ue("maxStorageBufferBindingSize",72),D("maxVertexBuffers",88),ue("maxBufferSize",96),D("maxVertexAttributes",104),D("maxVertexBufferArrayStride",108),D("maxInterStageShaderVariables",112),D("maxColorAttachments",116),D("maxColorAttachmentBytesPerSample",120),D("maxComputeWorkgroupStorageSize",124),D("maxComputeInvocationsPerWorkgroup",128),D("maxComputeWorkgroupSizeX",132),D("maxComputeWorkgroupSizeY",136),D("maxComputeWorkgroupSizeZ",140),D("maxComputeWorkgroupsPerDimension",144),D("maxImmediateSize",148,!0),e.requiredLimits=z}(y=(p(),_)[m+24>>>2>>>0])&&(y={label:Ce(y+4)},e.defaultQueue=y),e.label=Ce(m+4)}k+=1,ft(r,T.requestDevice(e).then(D=>{--k,pe(()=>{ne[f>>>0]=D.queue,ne[s>>>0]=D,k+=1,ft(n,D.lost.then(ue=>{pe(()=>{D.onuncapturederror=()=>{};var he=me(),fe=Ae(ue.message);Sr(n,ri[ue.reason],fe),de(he)}),--k})),D.onuncapturederror=ue=>{var he=5;ue.error instanceof GPUValidationError?he=2:ue.error instanceof GPUOutOfMemoryError?he=3:ue.error instanceof GPUInternalError&&(he=4);var fe=me();ue=Ae(ue.error.message),fo(s,he,ue),de(fe)},"adapterInfo"in D||(D.adapterInfo=T.info),xr(r,1,s,0)})},D=>{--k,pe(()=>{var ue=me(),he=Ae(D.message);xr(r,3,s,he),n&&Sr(n,4,he),de(ue)})}))}function oi(e){var r=I(e>>>=0),n=Be[e];if(n){for(var s=0;s>>=0;var s=I(e>>>=0);n==4294967295&&(n=void 0);try{var f=s.getMappedRange(r>>>0,n)}catch{return 0}var m=Br(16,f.byteLength);return(p(),G).set(new Uint8Array(f),m>>>0),Be[e].push(()=>Ie(m)),m}function si(e,r,n){n>>>=0;var s=I(e>>>=0);n==4294967295&&(n=void 0);try{var f=s.getMappedRange(r>>>0,n)}catch{return 0}var m=Br(16,f.byteLength);return(p(),G).fill(0,m,f.byteLength),Be[e].push(()=>{new Uint8Array(f).set((p(),G).subarray(m>>>0,m+f.byteLength>>>0)),Ie(m)}),m}function ii(e,r,n,s,f){e>>>=0,r=re(r),n=re(n),f>>>=0;var m=I(e);Be[e]=[],f==4294967295&&(f=void 0),k+=1,ft(r,m.mapAsync(n,s>>>0,f).then(()=>{--k,pe(()=>{Ar(r,1,0)})},T=>{--k,pe(()=>{me();var y=Ae(T.message);Ar(r,T.name==="AbortError"?4:T.name==="OperationError"?3:0,y),delete Be[e]})}))}function ui(e){var r=I(e>>>=0),n=Be[e];if(n){for(var s=0;s>>0]}function ci(e,r,n){e>>>=0,r>>>=0,n>>>=0;var s=!!(p(),_)[r+32>>>2>>>0];r={label:Ce(r+4),usage:(p(),_)[r+16>>>2>>>0],size:ht(r+24),mappedAtCreation:s},e=I(e);try{var f=e.createBuffer(r)}catch{return!1}return ne[n>>>0]=f,s&&(Be[n]=[]),!0}function li(e,r,n,s){e>>>=0,r=re(r),s>>>=0,n=Zs(n>>>0),e=I(e),k+=1,ft(r,e.createComputePipelineAsync(n).then(f=>{--k,pe(()=>{ne[s>>>0]=f,_r(r,1,s,0)})},f=>{--k,pe(()=>{var m=me(),T=Ae(f.message);_r(r,f.reason==="validation"?3:f.reason==="internal"?4:0,s,T),de(m)})}))}function pi(e,r,n){e>>>=0,r>>>=0,n>>>=0;var s=(p(),_)[r>>>2>>>0],f=(p(),S)[s+4>>>2>>>0];r={label:Ce(r+4),code:""},f===2&&(r.code=Wn(s+8)),e=I(e).createShaderModule(r),ne[n>>>0]=e}var di=e=>{(e=I(e)).onuncapturederror=null,e.destroy()};function mi(e,r){r=re(r),e=I(e>>>0),k+=1,ft(r,e.popErrorScope().then(n=>{--k,pe(()=>{var s=5;n?n instanceof GPUValidationError?s=2:n instanceof GPUOutOfMemoryError?s=3:n instanceof GPUInternalError&&(s=4):s=1;var f=me(),m=n?Ae(n.message):0;Ir(r,1,s,m),de(f)})},n=>{--k,pe(()=>{var s=me(),f=Ae(n.message);Ir(r,1,5,f),de(s)})}))}function hi(e,r,n,s){if(r=re(r),s>>>=0,n>>>=0){var f={featureLevel:Ks[(p(),S)[n+4>>>2>>>0]],powerPreference:ei[(p(),S)[n+8>>>2>>>0]],forceFallbackAdapter:!!(p(),_)[n+12>>>2>>>0]};(e=(p(),_)[n>>>2>>>0])!==0&&(p(),f.X=!!(p(),_)[e+8>>>2>>>0])}"gpu"in navigator?(k+=1,ft(r,navigator.gpu.requestAdapter(f).then(m=>{--k,pe(()=>{if(m)ne[s>>>0]=m,yt(r,1,s,0);else{var T=me(),y=Ae("WebGPU not available on this browser (requestAdapter returned null)");yt(r,3,s,y),de(T)}})},m=>{--k,pe(()=>{var T=me(),y=Ae(m.message);yt(r,4,s,y),de(T)})}))):(f=me(),e=Ae("WebGPU not available on this browser (navigator.gpu is not available)"),yt(r,3,s,e),de(f))}function $n(e,r,n){return e>>>=0,r>>>=0,n>>>=0,Ln(async()=>{var s=[];if(n){var f=(p(),S)[n>>>2>>>0];s.length=r+1,s[r]=new Promise(y=>setTimeout(y,f,0))}else s.length=r;for(var m=0;m{if(!Tr){var e,r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"};for(e in vr)vr[e]===void 0?delete r[e]:r[e]=vr[e];var n=[];for(e in r)n.push(`${e}=${r[e]}`);Tr=n}return Tr};function jn(e,r){if(i)return $(19,1,e,r);e>>>=0,r>>>=0;var n,s=0,f=0;for(n of zn()){var m=r+s;(p(),_)[e+f>>>2>>>0]=m,s+=Oe(n,m,1/0)+1,f+=4}return 0}function Vn(e,r){if(i)return $(20,1,e,r);e>>>=0,r>>>=0;var n=zn();for(var s of((p(),_)[e>>>2>>>0]=n.length,e=0,n))e+=Le(s)+1;return(p(),_)[r>>>2>>>0]=e,0}function Hn(e){return i?$(21,1,e):52}function qn(e,r,n,s){return i?$(22,1,e,r,n,s):52}function Yn(e,r,n,s){return i?$(23,1,e,r,n,s):70}var gi=[null,[],[]];function Jn(e,r,n,s){if(i)return $(24,1,e,r,n,s);r>>>=0,n>>>=0,s>>>=0;for(var f=0,m=0;m>>2>>>0],y=(p(),_)[r+4>>>2>>>0];r+=8;for(var A=0;A>>0],J=gi[C];z===0||z===10?((C===1?x:U)(pn(J)),J.length=0):J.push(z)}f+=y}return(p(),_)[s>>>2>>>0]=f,0}function yi(e,r){return Fn(I(e>>>0).limits,r>>>0),1}function wi(e,r){return I(e>>>0).features.has(Gn[r])}function bi(e){return BigInt(I(e>>>0).size)}function Ti(e){return BigInt(I(e>>>0).usage)}function vi(e,r){if(e>>>=0,r>>>=0){var n=Ce(r+4);n={label:n,timestampWrites:r=(r=(p(),_)[r+12>>>2>>>0])!==0?{querySet:I((p(),_)[r+4>>>2>>>0]),beginningOfPassWriteIndex:(p(),_)[r+8>>>2>>>0],endOfPassWriteIndex:(p(),_)[r+12>>>2>>>0]}:void 0}}return r=I(e),e=oo(0),n=r.beginComputePass(n),ne[e>>>0]=n,e}function Ei(e,r,n,s){n=re(n),(s=re(s))==-1&&(s=void 0),(e=I(e>>>0)).clearBuffer(I(r>>>0),n,s)}function _i(e,r,n,s,f,m){n=re(n),f=re(f),m=re(m),I(e>>>0).copyBufferToBuffer(I(r>>>0),n,I(s>>>0),f,m)}function Si(e){var r=I(e>>>0);return e=ro(0),r=r.finish(),ne[e>>>0]=r,e}function Ai(e,r,n,s,f,m){m=re(m),I(e>>>0).resolveQuerySet(I(r>>>0),n,s,I(f>>>0),m)}function Ii(e,r,n,s){I(e>>>0).dispatchWorkgroups(r,n,s)}function xi(e,r,n){n=re(n),I(e>>>0).dispatchWorkgroupsIndirect(I(r>>>0),n)}function Oi(e){I(e>>>0).end()}function Li(e,r,n,s,f){s>>>=0,f>>>=0,e=I(e>>>0),n=I(n>>>0),s==0?e.setBindGroup(r,n):e.setBindGroup(r,n,(p(),_),f>>>2,s)}function Bi(e,r){I(e>>>0).setPipeline(I(r>>>0))}function Ci(e,r,n){I(e>>>0).W(I(r>>>0),n)}function Mi(e,r){var n=I(e>>>0);return e=to(0),r=n.getBindGroupLayout(r),ne[e>>>0]=r,e}function Di(e,r){function n(f){var m=(p(),_)[f+8>>>2>>>0],T=(p(),_)[f+32>>>2>>>0],y=(p(),_)[f+36>>>2>>>0],A=0;return Xs(f,{327681:C=>{A=(p(),_)[C+8>>>2>>>0]}}),m?((T=ht(f+24))==-1&&(T=void 0),m={buffer:I(m),offset:ht(f+16),size:T}):m=I(T||y||A),{binding:(p(),_)[f+4>>>2>>>0],resource:m}}e>>>=0,r={label:Ce(4+(r>>>=0)),layout:I((p(),_)[r+12>>>2>>>0]),entries:function(f,m){for(var T=[],y=0;y>>2>>>0],(p(),_)[r+20>>>2>>>0])},e=I(e);var s=eo(0);return Js(s,e.createBindGroup(r)),s}function Pi(e,r){var n;return e>>>=0,(r>>>=0)&&(n={label:Ce(r+4)}),r=I(e),e=no(0),n=r.createCommandEncoder(n),ne[e>>>0]=n,e}function Ui(e,r){e>>>=0,r>>>=0,r={type:ti[(p(),S)[r+12>>>2>>>0]],count:(p(),_)[r+16>>>2>>>0]};var n=I(e);return e=ao(0),r=n.createQuerySet(r),ne[e>>>0]=r,e}function Ri(e,r){e=I(e>>>0).adapterInfo,r>>>=0,(p(),_)[r+52>>>2>>>0]=e.subgroupMinSize,(p(),_)[r+56>>>2>>>0]=e.subgroupMaxSize;var n=e.vendor+e.architecture+e.device+e.description,s=Le(n)+1,f=gt(s);return f&&Oe(n,f,s),n=f,s=Le(e.vendor),Bt(r+4,n,s),n+=s,s=Le(e.architecture),Bt(r+12,n,s),n+=s,s=Le(e.device),Bt(r+20,n,s),Bt(r+28,n+s,Le(e.description)),(p(),S)[r+36>>>2>>>0]=2,e=e.isFallbackAdapter?3:4,(p(),S)[r+40>>>2>>>0]=e,(p(),_)[r+44>>>2>>>0]=0,(p(),_)[r+48>>>2>>>0]=0,1}var ki={"core-features-and-limits":1,"depth-clip-control":2,"depth32float-stencil8":3,"texture-compression-bc":4,"texture-compression-bc-sliced-3d":5,"texture-compression-etc2":6,"texture-compression-astc":7,"texture-compression-astc-sliced-3d":8,"timestamp-query":9,"indirect-first-instance":10,"shader-f16":11,"rg11b10ufloat-renderable":12,"bgra8unorm-storage":13,"float32-filterable":14,"float32-blendable":15,"clip-distances":16,"dual-source-blending":17,subgroups:18,"texture-formats-tier1":19,"texture-formats-tier2":20,"primitive-index":21,"texture-component-swizzle":22,"chromium-experimental-unorm16-texture-formats":327692,"chromium-experimental-multi-draw-indirect":327729};function Ni(e,r){r>>>=0;var n=I(e>>>0);e=gt(4*n.features.size);var s=0,f=0;for(let m of n.features)0<=(n=ki[m])&&((p(),S)[e+s>>>2>>>0]=n,s+=4,f++);(p(),_)[r+4>>>2>>>0]=e,(p(),_)[r>>>2>>>0]=f}function Wi(e,r){return Fn(I(e>>>0).limits,r>>>0),1}function Fi(e,r){I(e>>>0).pushErrorScope(Qs[r])}function Gi(e,r,n){r>>>=0,n>>>=0,e=I(e>>>0),r=Array.from((p(),S).subarray(n>>>2>>>0,n+4*r>>>2>>>0),s=>I(s)),e.submit(r)}function $i(e,r,n,s,f){n=re(n),s>>>=0,f>>>=0,e=I(e>>>0),r=I(r>>>0),s=(p(),G).subarray(s>>>0,s+f>>>0),e.writeBuffer(r,n,s,0,f)}i||function(){for(var e=t.numThreads-1;e--;)sn();be.push(async()=>{var r=async function(){if(!i)return Promise.all(Pe.map(an))}();_e++,await r,--_e==0&&Q&&(r=Q,Q=null,r())})}(),i||(Ue=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),q()),t.wasmBinary&&(w=t.wasmBinary),t.stackSave=()=>me(),t.stackRestore=e=>de(e),t.stackAlloc=e=>Mt(e),t.setValue=function(e,r,n="i8"){switch(n.endsWith("*")&&(n="*"),n){case"i1":case"i8":(p(),H)[e>>>0]=r;break;case"i16":(p(),se)[e>>>1>>>0]=r;break;case"i32":(p(),S)[e>>>2>>>0]=r;break;case"i64":(p(),Z)[e>>>3>>>0]=BigInt(r);break;case"float":(p(),Ge)[e>>>2>>>0]=r;break;case"double":(p(),B)[e>>>3>>>0]=r;break;case"*":(p(),_)[e>>>2>>>0]=r;break;default:ot(`invalid type for setValue: ${n}`)}},t.getValue=function(e,r="i8"){switch(r.endsWith("*")&&(r="*"),r){case"i1":case"i8":return(p(),H)[e>>>0];case"i16":return(p(),se)[e>>>1>>>0];case"i32":return(p(),S)[e>>>2>>>0];case"i64":return(p(),Z)[e>>>3>>>0];case"float":return(p(),Ge)[e>>>2>>>0];case"double":return(p(),B)[e>>>3>>>0];case"*":return(p(),_)[e>>>2>>>0];default:ot(`invalid type for getValue: ${r}`)}},t.UTF8ToString=it,t.stringToUTF8=Oe,t.lengthBytesUTF8=Le;var Xn,Zn,Er,Ct,Ie,gt,Qn,Kn,eo,to,ro,no,oo,ao,so,io,uo,_r,Sr,Ar,Ir,yt,xr,fo,Or,co,lo,po,Lr,mo,ho,Br,go,yo,de,Mt,me,wo,wt,Me,zi=[ze,ir,un,dn,mn,hn,gn,yn,wn,bn,Tn,vn,En,_n,Sn,An,Un,Rn,kn,jn,Vn,Hn,qn,Yn,Jn],Cr={984896:(e,r,n,s,f)=>{if(t===void 0||!t.o)return 1;if((e=it(Number(e>>>0))).startsWith("./")&&(e=e.substring(2)),!(e=t.o.get(e)))return 2;if(r=Number(r>>>0),n=Number(n>>>0),s=Number(s>>>0),r+n>e.byteLength)return 3;try{let m=e.subarray(r,r+n);switch(f){case 0:(p(),G).set(m,s>>>0);break;case 1:t.B?t.B(s,m):t.T(s,m);break;default:return 4}return 0}catch{return 4}},985720:(e,r,n)=>{t.D(e,(p(),G).subarray(r>>>0,r+n>>>0))},985784:()=>t.R(),985826:e=>{t.C(e)},985863:()=>typeof wasmOffsetConverter<"u"};function Dt(){0<_e?Q=Dt:i?(E?.(t),K()):(Ee(),0<_e?Q=Dt:async function(){t.calledRun=!0,M||(K(),E?.(t))}())}return i||(Me=await $e(),Dt()),t.PTR_SIZE=4,t.webgpuInit=e=>{let r=new WeakMap,n,s,f=1;t.webgpuRegisterDevice=y=>{if(s!==void 0)throw Error("another WebGPU EP inference session is being created.");if(y){var A=r.get(y);if(!A){let C=((z,J=0)=>{var ie=uo(J);return J=io(J,ie),ne[ie>>>0]=z.queue,ne[J>>>0]=z,J})(y,A=Kn(0));A=[f++,A,C],r.set(y,A)}return n=y,s=A[0],A}n=void 0,s=0};let m=new Map;t.webgpuOnCreateSession=y=>{if(s!==void 0){var A=s;if(s=void 0,y){let C=Er(A);m.set(y,C),A===0&&e(n??I(C))}n=void 0}},t.webgpuOnReleaseSession=y=>{m.delete(y)};let T=Symbol("gpuBufferMetadata");t.webgpuRegisterBuffer=(y,A,C)=>{if(C)return y[T]=[C,NaN],C;if(C=y[T])return C[1]++,C[0];if((A=m.get(A))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");return A=((z,J=0)=>(z.mapState==="unmapped"||ot(),J=so(J),ne[J>>>0]=z,J))(y,A),y[T]=[A,1],A},t.webgpuUnregisterBuffer=y=>{let A=y[T];if(!A)throw Error("Buffer is not registered");A[1]--,A[1]===0&&(Qn(A[0]),delete y[T])},t.webgpuGetBuffer=y=>I(y),t.webgpuCreateDownloader=(y,A,C)=>{if((C=m.get(C))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");let z=I(C),J=16*Math.ceil(Number(A)/16);return async()=>{let ie=z.createBuffer({size:J,usage:9});try{let D=z.createCommandEncoder();return D.copyBufferToBuffer(y,0,ie,0,J),z.queue.submit([D.finish()]),await ie.mapAsync(GPUMapMode.READ),ie.getMappedRange().slice(0,A)}finally{ie.destroy()}}},t.B=(y,A)=>{var C=A.buffer;let z=A.byteOffset,J=A.byteLength;if(A=16*Math.ceil(Number(J)/16),y=I(y),!n){var ie=Er(s);n=I(ie)}let D=(ie=n.createBuffer({mappedAtCreation:!0,size:A,usage:6})).getMappedRange();new Uint8Array(D).set(new Uint8Array(C,z,J)),ie.unmap(),(C=n.createCommandEncoder()).copyBufferToBuffer(ie,0,y,0,A),n.queue.submit([C.finish()]),ie.destroy()}},t.webnnInit=e=>{let r=e[0];[t.R,t.C,t.webnnEnsureTensor,t.D,t.webnnDownloadTensor,t.P,t.webnnEnableTraceEvent]=e.slice(1),t.webnnReleaseTensorId=t.C,t.webnnUploadTensor=t.D,t.webnnRegisterMLContext=t.P,t.webnnOnRunStart=n=>r.onRunStart(n),t.webnnOnRunEnd=r.onRunEnd.bind(r),t.webnnOnReleaseSession=n=>{r.onReleaseSession(n)},t.webnnCreateMLTensorDownloader=(n,s)=>r.createMLTensorDownloader(n,s),t.webnnRegisterMLTensor=(n,s,f,m)=>r.registerMLTensor(n,s,f,m),t.webnnCreateMLContext=n=>r.createMLContext(n),t.webnnRegisterMLConstant=(n,s,f,m,T,y)=>r.registerMLConstant(n,s,f,m,T,t.o,y),t.webnnRegisterGraphInput=r.registerGraphInput.bind(r),t.webnnIsGraphInput=r.isGraphInput.bind(r),t.webnnRegisterGraphOutput=r.registerGraphOutput.bind(r),t.webnnIsGraphOutput=r.isGraphOutput.bind(r),t.webnnCreateTemporaryTensor=r.createTemporaryTensor.bind(r),t.webnnIsGraphInputOutputTypeSupported=r.isGraphInputOutputTypeSupported.bind(r)},le?t:new Promise((e,r)=>{E=e,O=r})}var Qi,Ki,ta=R(()=>{"use strict";Qi=Ko,Ki=globalThis.self?.name?.startsWith("em-pthread");Ki&&Ko()});var oa,zr,eu,ge,aa,$r,tu,ru,sa,nu,ra,ia,na,ua,Wt=R(()=>{"use strict";Nt();oa=typeof location>"u"?void 0:location.origin,zr=import.meta.url>"file:"&&import.meta.url<"file;",eu=()=>{if(!!1){if(zr){let o=URL;return new URL(new o("ort.jspi.bundle.min.mjs",import.meta.url).href,oa).href}return import.meta.url}},ge=eu(),aa=()=>{if(ge&&!ge.startsWith("blob:"))return ge.substring(0,ge.lastIndexOf("/")+1)},$r=(o,t)=>{try{let a=t??ge;return(a?new URL(o,a):new URL(o)).origin===oa}catch{return!1}},tu=(o,t)=>{let a=t??ge;try{return(a?new URL(o,a):new URL(o)).href}catch{return}},ru=(o,t)=>`${t??"./"}${o}`,sa=async o=>{let a=await(await fetch(o,{credentials:"same-origin"})).blob();return URL.createObjectURL(a)},nu=async o=>(await import(/*webpackIgnore:true*/ /*@vite-ignore*/o)).default,ra=(Qo(),Pt(Zo)).default,ia=async()=>{if(!ge)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if($r(ge))return[void 0,ra()];let o=await sa(ge);return[o,ra(o)]},na=(ta(),Pt(ea)).default,ua=async(o,t,a,u)=>{let i=na&&!(o||t);if(i)if(ge)i=$r(ge)||u&&!a;else if(u&&!a)i=!0;else throw new Error("cannot determine the script source URL.");if(i)return[void 0,na];{let c="ort-wasm-simd-threaded.jspi.mjs",l=o??tu(c,t),d=!!1&&a&&l&&!$r(l,t),h=d?await sa(l):l??ru(c,t);return[d?h:void 0,await nu(h)]}}});var jr,Vr,Yt,fa,ou,au,su,Ft,W,We=R(()=>{"use strict";Wt();Vr=!1,Yt=!1,fa=!1,ou=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},au=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},su=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},Ft=async o=>{if(Vr)return Promise.resolve();if(Yt)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(fa)throw new Error("previous call to 'initializeWebAssembly()' failed.");Yt=!0;let t=o.initTimeout,a=o.numThreads;if(o.simd!==!1){if(o.simd==="relaxed"){if(!su())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!au())throw new Error("WebAssembly SIMD is not supported in the current environment.")}if(!("Suspending"in WebAssembly))throw new Error("WebAssembly JSPI is not supported in the current environment.");let u=ou();a>1&&!u&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+a+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),o.numThreads=a=1);let i=o.wasmPaths,c=typeof i=="string"?i:void 0,l=i?.mjs,d=l?.href??l,h=i?.wasm,g=h?.href??h,w=o.wasmBinary,[b,v]=await ua(d,c,a>1,!!w||!!g),E=!1,O=[];if(t>0&&O.push(new Promise(P=>{setTimeout(()=>{E=!0,P()},t)})),O.push(new Promise((P,j)=>{let L={numThreads:a};if(w)L.wasmBinary=w,L.locateFile=x=>x;else if(g||c)L.locateFile=x=>g??c+x;else if(d&&d.indexOf("blob:")!==0)L.locateFile=x=>new URL(x,d).href;else if(b){let x=aa();x&&(L.locateFile=U=>x+U)}v(L).then(x=>{Yt=!1,Vr=!0,jr=x,P(),b&&URL.revokeObjectURL(b)},x=>{Yt=!1,fa=!0,j(x)})})),await Promise.race(O),E)throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`)},W=()=>{if(Vr&&jr)return jr;throw new Error("WebAssembly is not initialized yet.")}});var ce,Et,N,Jt=R(()=>{"use strict";We();ce=(o,t)=>{let a=W(),u=a.lengthBytesUTF8(o)+1,i=a._malloc(u);return a.stringToUTF8(o,i,u),t.push(i),i},Et=(o,t,a,u)=>{if(typeof o=="object"&&o!==null){if(a.has(o))throw new Error("Circular reference in options");a.add(o)}Object.entries(o).forEach(([i,c])=>{let l=t?t+i:i;if(typeof c=="object")Et(c,l+".",a,u);else if(typeof c=="string"||typeof c=="number")u(l,c.toString());else if(typeof c=="boolean")u(l,c?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof c}`)})},N=o=>{let t=W(),a=t.stackSave();try{let u=t.PTR_SIZE,i=t.stackAlloc(2*u);t._OrtGetLastError(i,i+u);let c=Number(t.getValue(i,u===4?"i32":"i64")),l=t.getValue(i+u,"*"),d=l?t.UTF8ToString(l):"";throw new Error(`${o} ERROR_CODE: ${c}, ERROR_MESSAGE: ${d}`)}finally{t.stackRestore(a)}}});var ca,la=R(()=>{"use strict";We();Jt();ca=o=>{let t=W(),a=0,u=[],i=o||{};try{if(o?.logSeverityLevel===void 0)i.logSeverityLevel=2;else if(typeof o.logSeverityLevel!="number"||!Number.isInteger(o.logSeverityLevel)||o.logSeverityLevel<0||o.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${o.logSeverityLevel}`);if(o?.logVerbosityLevel===void 0)i.logVerbosityLevel=0;else if(typeof o.logVerbosityLevel!="number"||!Number.isInteger(o.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${o.logVerbosityLevel}`);o?.terminate===void 0&&(i.terminate=!1);let c=0;return o?.tag!==void 0&&(c=ce(o.tag,u)),a=t._OrtCreateRunOptions(i.logSeverityLevel,i.logVerbosityLevel,!!i.terminate,c),a===0&&N("Can't create run options."),o?.extra!==void 0&&Et(o.extra,"",new WeakSet,(l,d)=>{let h=ce(l,u),g=ce(d,u);t._OrtAddRunConfigEntry(a,h,g)!==0&&N(`Can't set a run config entry: ${l} - ${d}.`)}),[a,u]}catch(c){throw a!==0&&t._OrtReleaseRunOptions(a),u.forEach(l=>t._free(l)),c}}});var iu,uu,fu,Hr,Qe,cu,pa,da=R(()=>{"use strict";We();Jt();iu=o=>{switch(o){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"layout":return 3;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${o}`)}},uu=o=>{switch(o){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${o}`)}},fu=o=>{o.extra||(o.extra={}),o.extra.session||(o.extra.session={});let t=o.extra.session;t.use_ort_model_bytes_directly||(t.use_ort_model_bytes_directly="1"),o.executionProviders&&o.executionProviders.some(a=>(typeof a=="string"?a:a.name)==="webgpu")&&(o.enableMemPattern=!1)},Hr=(o,t,a,u)=>{let i=ce(t,u),c=ce(a,u);W()._OrtAddSessionConfigEntry(o,i,c)!==0&&N(`Can't set a session config entry: ${t} - ${a}.`)},Qe=(o,t,a,u)=>{let i=ce(t,u),c=ce(a,u);o.push([i,c])},cu=async(o,t,a)=>{let u=t.executionProviders;for(let i of u){let c=typeof i=="string"?i:i.name,l=[];switch(c){case"webnn":if(c="WEBNN",typeof i!="string"){let v=i?.deviceType;v&&Hr(o,"deviceType",v,a)}break;case"webgpu":{c="WebGPU";let b;if(typeof i!="string"){let E=i;if(E.device)if(typeof GPUDevice<"u"&&E.device instanceof GPUDevice)b=E.device;else throw new Error("Invalid GPU device set in WebGPU EP options.");let{enableGraphCapture:O}=t;if(typeof O=="boolean"&&O&&Qe(l,"enableGraphCapture","1",a),typeof E.preferredLayout=="string"&&Qe(l,"preferredLayout",E.preferredLayout,a),E.forceCpuNodeNames){let P=Array.isArray(E.forceCpuNodeNames)?E.forceCpuNodeNames:[E.forceCpuNodeNames];Qe(l,"forceCpuNodeNames",P.join(` `),a)}E.validationMode&&Qe(l,"validationMode",E.validationMode,a)}let v=W().webgpuRegisterDevice(b);if(v){let[E,O,P]=v;Qe(l,"deviceId",E.toString(),a),Qe(l,"webgpuInstance",O.toString(),a),Qe(l,"webgpuDevice",P.toString(),a)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${c}`)}let d=ce(c,a),h=l.length,g=0,w=0;if(h>0){g=W()._malloc(h*W().PTR_SIZE),a.push(g),w=W()._malloc(h*W().PTR_SIZE),a.push(w);for(let b=0;b{let t=W(),a=0,u=[],i=o||{};fu(i);try{let c=iu(i.graphOptimizationLevel??"all"),l=uu(i.executionMode??"sequential"),d=typeof i.logId=="string"?ce(i.logId,u):0,h=i.logSeverityLevel??2;if(!Number.isInteger(h)||h<0||h>4)throw new Error(`log severity level is not valid: ${h}`);let g=i.logVerbosityLevel??0;if(!Number.isInteger(g)||g<0||g>4)throw new Error(`log verbosity level is not valid: ${g}`);let w=typeof i.optimizedModelFilePath=="string"?ce(i.optimizedModelFilePath,u):0;if(a=t._OrtCreateSessionOptions(c,!!i.enableCpuMemArena,!!i.enableMemPattern,l,!!i.enableProfiling,0,d,h,g,w),a===0&&N("Can't create session options."),i.executionProviders&&await cu(a,i,u),i.enableGraphCapture!==void 0){if(typeof i.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${i.enableGraphCapture}`);Hr(a,"enableGraphCapture",i.enableGraphCapture.toString(),u)}if(i.freeDimensionOverrides)for(let[b,v]of Object.entries(i.freeDimensionOverrides)){if(typeof b!="string")throw new Error(`free dimension override name must be a string: ${b}`);if(typeof v!="number"||!Number.isInteger(v)||v<0)throw new Error(`free dimension override value must be a non-negative integer: ${v}`);let E=ce(b,u);t._OrtAddFreeDimensionOverride(a,E,v)!==0&&N(`Can't set a free dimension override: ${b} - ${v}.`)}return i.extra!==void 0&&Et(i.extra,"",new WeakSet,(b,v)=>{Hr(a,b,v,u)}),[a,u]}catch(c){throw a!==0&&t._OrtReleaseSessionOptions(a)!==0&&N("Can't release session options."),u.forEach(l=>t._free(l)),c}}});var Fe,Xt,ct,Ke,_t,Zt,Qt,qr,et=R(()=>{"use strict";Fe=o=>{switch(o){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${o}`)}},Xt=o=>{switch(o){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${o}`)}},ct=(o,t)=>{let a=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][o],u=typeof t=="number"?t:t.reduce((i,c)=>i*c,1);return a>0?Math.ceil(u*a):void 0},Ke=o=>{switch(o){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${o}`)}},_t=o=>{switch(o){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${o}`)}},Zt=o=>o==="float32"||o==="float16"||o==="int32"||o==="int64"||o==="uint32"||o==="uint8"||o==="bool"||o==="uint4"||o==="int4",Qt=o=>o==="float32"||o==="float16"||o==="int32"||o==="int64"||o==="uint32"||o==="uint64"||o==="int8"||o==="uint8"||o==="bool"||o==="uint4"||o==="int4",qr=o=>{switch(o){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${o}`)}}});var St,Yr=R(()=>{"use strict";Nt();St=async o=>{if(typeof o=="string")if(!1)try{let{readFile:t}=Pr("node:fs/promises");return new Uint8Array(await t(o))}catch(t){if(t.code==="ERR_FS_FILE_TOO_LARGE"){let{createReadStream:a}=Pr("node:fs"),u=a(o),i=[];for await(let c of u)i.push(c);return new Uint8Array(Buffer.concat(i))}throw t}else{let t=await fetch(o);if(!t.ok)throw new Error(`failed to load external data file: ${o}`);let a=t.headers.get("Content-Length"),u=a?parseInt(a,10):0;if(u<1073741824)return new Uint8Array(await t.arrayBuffer());{if(!t.body)throw new Error(`failed to load external data file: ${o}, no response body.`);let i=t.body.getReader(),c;try{c=new ArrayBuffer(u)}catch(d){if(d instanceof RangeError){let h=Math.ceil(u/65536);c=new WebAssembly.Memory({initial:h,maximum:h}).buffer}else throw d}let l=0;for(;;){let{done:d,value:h}=await i.read();if(d)break;let g=h.byteLength;new Uint8Array(c,l,g).set(h),l+=g}return new Uint8Array(c,0,u)}}else return o instanceof Blob?new Uint8Array(await o.arrayBuffer()):o instanceof Uint8Array?o:new Uint8Array(o)}});var ma,ha=R(()=>{"use strict";et();ma=(o,t)=>new(Ke(t))(o)});var lu,pu,ga,ya,wa,du,ae,Jr=R(()=>{"use strict";et();lu=["V","I","W","E","F"],pu=(o,t)=>{console.log(`[${lu[o]},${new Date().toISOString()}]${t}`)},wa=(o,t)=>{ga=o,ya=t},du=(o,t)=>{let a=_t(o),u=_t(ga);a>=u&&pu(a,typeof t=="function"?t():t)},ae=(...o)=>{ya&&du(...o)}});var Ta,Zr,va,mu,ba,hu,Ea,Kt,er,Xr,_a,Sa=R(()=>{"use strict";et();Jr();Ta=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),Zr=(o,t)=>{if(t==="int32")return o;let a=Ta.get(t);if(!a)throw new Error(`WebNN backend does not support data type: ${t}`);let u=a/8;if(o.byteLength%u!==0)throw new Error(`Invalid Uint8Array length - must be a multiple of ${u}.`);let i=o.byteLength/u,c=new(Ke(t))(o.buffer,o.byteOffset,i);switch(t){case"int64":case"uint64":{let l=new Int32Array(i);for(let d=0;d2147483647n||h<-2147483648n)throw new Error("Can not convert int64 data to int32 - value out of range.");l[d]=Number(h)}return new Uint8Array(l.buffer)}case"int8":case"uint8":case"uint32":{if(t==="uint32"&&c.some(d=>d>2147483647))throw new Error("Can not convert uint32 data to int32 - value out of range.");let l=Int32Array.from(c,Number);return new Uint8Array(l.buffer)}default:throw new Error(`Unsupported data conversion from ${t} to 'int32'`)}},va=(o,t)=>{if(t==="int32")return o;if(o.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (int32).");let a=o.byteLength/4,u=new Int32Array(o.buffer,o.byteOffset,a);switch(t){case"int64":{let i=BigInt64Array.from(u,BigInt);return new Uint8Array(i.buffer)}case"uint64":{if(u.some(c=>c<0))throw new Error("Can not convert int32 data to uin64 - negative value found.");let i=BigUint64Array.from(u,BigInt);return new Uint8Array(i.buffer)}case"int8":{if(u.some(c=>c<-128||c>127))throw new Error("Can not convert int32 data to int8 - value out of range.");let i=Int8Array.from(u,Number);return new Uint8Array(i.buffer)}case"uint8":{if(u.some(i=>i<0||i>255))throw new Error("Can not convert int32 data to uint8 - value out of range.");return Uint8Array.from(u,Number)}case"uint32":{if(u.some(c=>c<0))throw new Error("Can not convert int32 data to uint32 - negative value found.");let i=Uint32Array.from(u,Number);return new Uint8Array(i.buffer)}default:throw new Error(`Unsupported data conversion from 'int32' to ${t}`)}},mu=1,ba=()=>mu++,hu=new Map([["int8","int32"],["uint8","int32"],["uint32","int32"],["int64","int32"]]),Ea=(o,t)=>{let a=Ta.get(o);if(!a)throw new Error(`WebNN backend does not support data type: ${o}`);return t.length>0?Math.ceil(t.reduce((u,i)=>u*i)*a/8):0},Kt=class{constructor(t){this.isDataConverted=!1;let{sessionId:a,context:u,tensor:i,dataType:c,shape:l,fallbackDataType:d}=t;this.sessionId=a,this.mlContext=u,this.mlTensor=i,this.dataType=c,this.tensorShape=l,this.fallbackDataType=d}get tensor(){return this.mlTensor}get type(){return this.dataType}get fallbackType(){return this.fallbackDataType}get shape(){return this.tensorShape}get byteLength(){return Ea(this.dataType,this.tensorShape)}destroy(){ae("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(t){this.mlContext.writeTensor(this.mlTensor,t)}async read(t){if(this.fallbackDataType){let a=await this.mlContext.readTensor(this.mlTensor),u=va(new Uint8Array(a),this.dataType);if(t){(t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)).set(u);return}else return u.buffer}else return t?this.mlContext.readTensor(this.mlTensor,t):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(t,a,u){return this.mlContext===t&&this.dataType===a&&this.tensorShape.length===u.length&&this.tensorShape.every((i,c)=>i===u[c])}setIsDataConverted(t){this.isDataConverted=t}},er=class{constructor(t,a){this.tensorManager=t;this.wrapper=a}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(t,a,u,i){let c=this.tensorManager.getMLContext(t),l=this.tensorManager.getMLOpSupportLimits(t),d;if(!l?.input.dataTypes.includes(a)){if(d=hu.get(a),!d||l?.input.dataTypes.includes(d))throw new Error(`WebNN backend does not support data type: ${a}`);ae("verbose",()=>`[WebNN] TensorIdTracker.ensureTensor: fallback dataType from ${a} to ${d}`)}if(this.wrapper){if(this.wrapper.canReuseTensor(c,a,u))return this.wrapper.tensor;if(i){if(this.wrapper.byteLength!==Ea(a,u))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let h=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(t,a,u,h,!0,!0,d),i&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(t){let a=t;if(this.wrapper){if(this.wrapper.fallbackType)if(this.wrapper.fallbackType==="int32")a=Zr(t,this.wrapper.type),this.wrapper.setIsDataConverted(!0);else throw new Error(`Unsupported fallback data type: ${this.wrapper.fallbackType}`);if(t.byteLength===this.wrapper.byteLength){this.wrapper.write(a);return}else ae("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor()}this.activeUpload?this.activeUpload.set(a):this.activeUpload=new Uint8Array(a)}async download(t){if(this.activeUpload){let a=this.wrapper?.isDataConverted?va(this.activeUpload,this.wrapper?.type):this.activeUpload;if(t){t instanceof ArrayBuffer?new Uint8Array(t).set(a):new Uint8Array(t.buffer,t.byteOffset,t.byteLength).set(a);return}else return a.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return t?this.wrapper.read(t):this.wrapper.read()}},Xr=class{constructor(t){this.backend=t;this.tensorTrackersById=new Map;this.freeTensors=[];this.externalTensors=new Set}getMLContext(t){let a=this.backend.getMLContext(t);if(!a)throw new Error("MLContext not found for session.");return a}getMLOpSupportLimits(t){return this.backend.getMLOpSupportLimits(t)}reserveTensorId(){let t=ba();return this.tensorTrackersById.set(t,new er(this)),t}releaseTensorId(t){let a=this.tensorTrackersById.get(t);a&&(this.tensorTrackersById.delete(t),a.tensorWrapper&&this.releaseTensor(a.tensorWrapper))}async ensureTensor(t,a,u,i,c){ae("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${a}, dataType: ${u}, shape: ${i}, copyOld: ${c}}`);let l=this.tensorTrackersById.get(a);if(!l)throw new Error("Tensor not found.");return l.ensureTensor(t,u,i,c)}upload(t,a){let u=this.tensorTrackersById.get(t);if(!u)throw new Error("Tensor not found.");u.upload(a)}async download(t,a){ae("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${t}, dstBuffer: ${a?.byteLength}}`);let u=this.tensorTrackersById.get(t);if(!u)throw new Error("Tensor not found.");return u.download(a)}releaseTensorsForSession(t){for(let a of this.freeTensors)a.sessionId===t&&a.destroy();this.freeTensors=this.freeTensors.filter(a=>a.sessionId!==t)}registerTensor(t,a,u,i){let c=this.getMLContext(t),l=ba(),d=new Kt({sessionId:t,context:c,tensor:a,dataType:u,shape:i});return this.tensorTrackersById.set(l,new er(this,d)),this.externalTensors.add(d),l}async getCachedTensor(t,a,u,i,c,l,d){let h=this.getMLContext(t);for(let[w,b]of this.freeTensors.entries())if(b.canReuseTensor(h,a,u)){ae("verbose",()=>`[WebNN] Reusing tensor {dataType: ${a}, ${d?`fallbackDataType: ${d},`:""} shape: ${u}`);let v=this.freeTensors.splice(w,1)[0];return v.sessionId=t,v}ae("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${a}, ${d?`fallbackDataType: ${d},`:""} shape: ${u}}`);let g=await h.createTensor({dataType:d??a,shape:u,dimensions:u,usage:i,writable:c,readable:l});return new Kt({sessionId:t,context:h,tensor:g,dataType:a,shape:u,fallbackDataType:d})}releaseTensor(t){this.externalTensors.has(t)&&this.externalTensors.delete(t),this.freeTensors.push(t)}},_a=(...o)=>new Xr(...o)});var Aa={};bt(Aa,{WebNNBackend:()=>Qr});var tr,gu,Qr,Ia=R(()=>{"use strict";et();We();ha();Sa();Jr();tr=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),gu=(o,t)=>{if(o===t)return!0;if(o===void 0||t===void 0)return!1;let a=Object.keys(o).sort(),u=Object.keys(t).sort();return a.length===u.length&&a.every((i,c)=>i===u[c]&&o[i]===t[i])},Qr=class{constructor(t){this.tensorManager=_a(this);this.mlContextBySessionId=new Map;this.sessionIdsByMLContext=new Map;this.mlContextCache=[];this.sessionGraphInputs=new Map;this.sessionGraphOutputs=new Map;this.temporaryGraphInputs=[];this.temporaryGraphOutputs=[];this.temporarySessionTensorIds=new Map;this.mlOpSupportLimitsBySessionId=new Map;wa(t.logLevel,!!t.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(t){ae("verbose",()=>`[WebNN] onRunStart {sessionId: ${t}}`),this.activeSessionId=t}onRunEnd(t){ae("verbose",()=>`[WebNN] onRunEnd {sessionId: ${t}}`);let a=this.temporarySessionTensorIds.get(t);if(a){for(let u of a)ae("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${u}}`),this.tensorManager.releaseTensorId(u);this.temporarySessionTensorIds.delete(t),this.activeSessionId=void 0}}async createMLContext(t){if(t instanceof GPUDevice){let u=this.mlContextCache.findIndex(i=>i.gpuDevice===t);if(u!==-1)return this.mlContextCache[u].mlContext;{let i=await navigator.ml.createContext(t);return this.mlContextCache.push({gpuDevice:t,mlContext:i}),i}}else if(t===void 0){let u=this.mlContextCache.findIndex(i=>i.options===void 0&&i.gpuDevice===void 0);if(u!==-1)return this.mlContextCache[u].mlContext;{let i=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:i}),i}}let a=this.mlContextCache.findIndex(u=>gu(u.options,t));if(a!==-1)return this.mlContextCache[a].mlContext;{let u=await navigator.ml.createContext(t);return this.mlContextCache.push({options:t,mlContext:u}),u}}registerMLContext(t,a){this.mlContextBySessionId.set(t,a);let u=this.sessionIdsByMLContext.get(a);u||(u=new Set,this.sessionIdsByMLContext.set(a,u)),u.add(t),this.mlOpSupportLimitsBySessionId.has(t)||this.mlOpSupportLimitsBySessionId.set(t,a.opSupportLimits()),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(t,this.temporaryGraphInputs),this.temporaryGraphInputs=[]),this.temporaryGraphOutputs.length>0&&(this.sessionGraphOutputs.set(t,this.temporaryGraphOutputs),this.temporaryGraphOutputs=[])}onReleaseSession(t){this.sessionGraphInputs.delete(t),this.sessionGraphOutputs.delete(t);let a=this.mlContextBySessionId.get(t);if(!a)return;this.tensorManager.releaseTensorsForSession(t),this.mlContextBySessionId.delete(t),this.mlOpSupportLimitsBySessionId.delete(t);let u=this.sessionIdsByMLContext.get(a);if(u.delete(t),u.size===0){this.sessionIdsByMLContext.delete(a);let i=this.mlContextCache.findIndex(c=>c.mlContext===a);i!==-1&&this.mlContextCache.splice(i,1)}}getMLContext(t){return this.mlContextBySessionId.get(t)}getMLOpSupportLimits(t){return this.mlOpSupportLimitsBySessionId.get(t)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(t){ae("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${t}}`),this.tensorManager.releaseTensorId(t)}async ensureTensor(t,a,u,i,c){let l=tr.get(u);if(!l)throw new Error(`Unsupported ONNX data type: ${u}`);return this.tensorManager.ensureTensor(t??this.currentSessionId,a,l,i,c)}async createTemporaryTensor(t,a,u){ae("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${a}, shape: ${u}}`);let i=tr.get(a);if(!i)throw new Error(`Unsupported ONNX data type: ${a}`);let c=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(t,c,i,u,!1);let l=this.temporarySessionTensorIds.get(t);return l?l.push(c):this.temporarySessionTensorIds.set(t,[c]),c}uploadTensor(t,a){if(!W().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");ae("verbose",()=>`[WebNN] uploadTensor {tensorId: ${t}, data: ${a.byteLength}}`),this.tensorManager.upload(t,a)}async downloadTensor(t,a){return this.tensorManager.download(t,a)}createMLTensorDownloader(t,a){return async()=>{let u=await this.tensorManager.download(t);return ma(u,a)}}registerMLTensor(t,a,u,i){let c=tr.get(u);if(!c)throw new Error(`Unsupported ONNX data type: ${u}`);let l=this.tensorManager.registerTensor(t,a,c,i);return ae("verbose",()=>`[WebNN] registerMLTensor {tensor: ${a}, dataType: ${c}, dimensions: ${i}} -> {tensorId: ${l}}`),l}registerMLConstant(t,a,u,i,c,l,d=!1){if(!l)throw new Error("External mounted files are not available.");let h=t;t.startsWith("./")&&(h=t.substring(2));let g=l.get(h);if(!g)throw new Error(`File with name ${h} not found in preloaded files.`);if(a+u>g.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let w=g.slice(a,a+u).buffer,b;switch(c.dataType){case"float32":b=new Float32Array(w);break;case"float16":b=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(w):new Uint16Array(w);break;case"int32":b=new Int32Array(w);break;case"uint32":b=new Uint32Array(w);break;case"int64":if(d){let v=Zr(new Uint8Array(w),"int64");b=new Int32Array(v.buffer),c.dataType="int32"}else b=new BigInt64Array(w);break;case"uint64":b=new BigUint64Array(w);break;case"int8":b=new Int8Array(w);break;case"int4":case"uint4":case"uint8":b=new Uint8Array(w);break;default:throw new Error(`Unsupported data type: ${c.dataType} in creating WebNN Constant from external data.`)}return ae("verbose",()=>`[WebNN] registerMLConstant {dataType: ${c.dataType}, shape: ${c.shape}}} ${d?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),i.constant(c,b)}registerGraphInput(t){this.temporaryGraphInputs.push(t)}registerGraphOutput(t){this.temporaryGraphOutputs.push(t)}isGraphInput(t,a){let u=this.sessionGraphInputs.get(t);return u?u.includes(a):!1}isGraphOutput(t,a){let u=this.sessionGraphOutputs.get(t);return u?u.includes(a):!1}isGraphInputOutputTypeSupported(t,a,u=!0){let i=tr.get(Fe(a)),c=this.mlOpSupportLimitsBySessionId.get(t);return typeof i>"u"?!1:u?!!c?.input.dataTypes.includes(i):!!c?.output.dataTypes.includes(i)}flush(){}}});var yu,Gt,$t,tt,wu,xa,vt,zt,jt,Oa,Vt,Ht,qt,Gr=R(()=>{"use strict";Ne();la();da();et();We();Jt();Yr();yu=(o,t)=>{W()._OrtInit(o,t)!==0&&N("Can't initialize onnxruntime.")},Gt=async o=>{yu(o.wasm.numThreads,_t(o.logLevel))},$t=async(o,t)=>{W().asyncInit?.();let a=o.webgpu.adapter;if(t==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");if(a){if(typeof a.limits!="object"||typeof a.features!="object"||typeof a.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let u=o.webgpu.powerPreference;if(u!==void 0&&u!=="low-power"&&u!=="high-performance")throw new Error(`Invalid powerPreference setting: "${u}"`);let i=o.webgpu.forceFallbackAdapter;if(i!==void 0&&typeof i!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${i}"`);if(a=await navigator.gpu.requestAdapter({powerPreference:u,forceFallbackAdapter:i}),!a)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}}if(t==="webnn"&&(typeof navigator>"u"||!navigator.ml))throw new Error("WebNN is not supported in current environment");if(t==="webgpu"&&W().webgpuInit(u=>{o.webgpu.device=u}),t==="webnn"){let u=new(Ia(),Pt(Aa)).WebNNBackend(o);W().webnnInit([u,()=>u.reserveTensorId(),i=>u.releaseTensorId(i),async(i,c,l,d,h)=>u.ensureTensor(i,c,l,d,h),(i,c)=>{u.uploadTensor(i,c)},async(i,c)=>u.downloadTensor(i,c),(i,c)=>u.registerMLContext(i,c),!!o.trace])}},tt=new Map,wu=o=>{let t=W(),a=t.stackSave();try{let u=t.PTR_SIZE,i=t.stackAlloc(2*u);t._OrtGetInputOutputCount(o,i,i+u)!==0&&N("Can't get session input/output count.");let l=u===4?"i32":"i64";return[Number(t.getValue(i,l)),Number(t.getValue(i+u,l))]}finally{t.stackRestore(a)}},xa=(o,t)=>{let a=W(),u=a.stackSave(),i=0;try{let c=a.PTR_SIZE,l=a.stackAlloc(2*c);a._OrtGetInputOutputMetadata(o,t,l,l+c)!==0&&N("Can't get session input/output metadata.");let h=Number(a.getValue(l,"*"));i=Number(a.getValue(l+c,"*"));let g=a.HEAP32[i/4];if(g===0)return[h,0];let w=a.HEAPU32[i/4+1],b=[];for(let v=0;v{let t=W(),a=t._malloc(o.byteLength);if(a===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${o.byteLength}.`);return t.HEAPU8.set(o,a),[a,o.byteLength]},zt=async(o,t)=>{let a,u,i=W();Array.isArray(o)?[a,u]=o:o.buffer===i.HEAPU8.buffer?[a,u]=[o.byteOffset,o.byteLength]:[a,u]=vt(o);let c=0,l=0,d=0,h=[],g=[],w=[];try{if([l,h]=await pa(t),t?.externalData&&i.mountExternalData){let M=[];for(let F of t.externalData){let p=typeof F=="string"?F:F.path;M.push(St(typeof F=="string"?F:F.data).then(te=>{i.mountExternalData(p,te)}))}await Promise.all(M)}for(let M of t?.executionProviders??[])if((typeof M=="string"?M:M.name)==="webnn"){if(i.shouldTransferToMLTensor=!1,typeof M!="string"){let p=M,te=p?.context,H=p?.gpuDevice,G=p?.deviceType,se=p?.powerPreference;te?i.currentContext=te:H?i.currentContext=await i.webnnCreateMLContext(H):i.currentContext=await i.webnnCreateMLContext({deviceType:G,powerPreference:se})}else i.currentContext=await i.webnnCreateMLContext();break}c=await i._OrtCreateSession(a,u,l),i.webgpuOnCreateSession?.(c),c===0&&N("Can't create a session."),i.jsepOnCreateSession?.(),i.currentContext&&(i.webnnRegisterMLContext(c,i.currentContext),i.currentContext=void 0,i.shouldTransferToMLTensor=!0);let[b,v]=wu(c),E=!!t?.enableGraphCapture,O=[],P=[],j=[],L=[],x=[];for(let M=0;MM==="gpu-buffer"||M==="ml-tensor"||M==="ml-tensor-cpu-output")&&(d=i._OrtCreateBinding(c),d===0&&N("Can't create IO binding."),U={handle:d,outputPreferredLocations:x,outputPreferredLocationsEncoded:x.map(M=>M==="ml-tensor-cpu-output"?"ml-tensor":M).map(M=>qr(M))}),tt.set(c,[c,g,w,U,E,!1]),[c,O,P,j,L]}catch(b){throw g.forEach(v=>i._OrtFree(v)),w.forEach(v=>i._OrtFree(v)),d!==0&&i._OrtReleaseBinding(d)!==0&&N("Can't release IO binding."),c!==0&&i._OrtReleaseSession(c)!==0&&N("Can't release session."),b}finally{i._free(a),l!==0&&i._OrtReleaseSessionOptions(l)!==0&&N("Can't release session options."),h.forEach(b=>i._free(b)),i.unmountExternalData?.()}},jt=o=>{let t=W(),a=tt.get(o);if(!a)throw new Error(`cannot release session. invalid session id: ${o}`);let[u,i,c,l,d]=a;l&&(d&&t._OrtClearBoundOutputs(l.handle)!==0&&N("Can't clear bound outputs."),t._OrtReleaseBinding(l.handle)!==0&&N("Can't release IO binding.")),t.jsepOnReleaseSession?.(o),t.webnnOnReleaseSession?.(o),t.webgpuOnReleaseSession?.(o),i.forEach(h=>t._OrtFree(h)),c.forEach(h=>t._OrtFree(h)),t._OrtReleaseSession(u)!==0&&N("Can't release session."),tt.delete(o)},Oa=async(o,t,a,u,i,c,l=!1)=>{if(!o){t.push(0);return}let d=W(),h=d.PTR_SIZE,g=o[0],w=o[1],b=o[3],v=b,E,O;if(g==="string"&&(b==="gpu-buffer"||b==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(l&&b!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${c} when enableGraphCapture is true.`);if(b==="gpu-buffer"){let L=o[2].gpuBuffer;O=ct(Fe(g),w);{let x=d.webgpuRegisterBuffer;if(!x)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');E=x(L,u)}}else if(b==="ml-tensor"){let L=o[2].mlTensor;O=ct(Fe(g),w);let x=d.webnnRegisterMLTensor;if(!x)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');E=x(u,L,Fe(g),w)}else{let L=o[2];if(Array.isArray(L)){O=h*L.length,E=d._malloc(O),a.push(E);for(let x=0;xd.setValue(j+U*h,x,h===4?"i32":"i64"));let L=d._OrtCreateTensor(Fe(g),E,O,j,w.length,qr(v));L===0&&N(`Can't create tensor for input/output. session=${u}, index=${c}.`),t.push(L)}finally{d.stackRestore(P)}},Vt=async(o,t,a,u,i,c)=>{let l=W(),d=l.PTR_SIZE,h=tt.get(o);if(!h)throw new Error(`cannot run inference. invalid session id: ${o}`);let g=h[0],w=h[1],b=h[2],v=h[3],E=h[4],O=h[5],P=t.length,j=u.length,L=0,x=[],U=[],M=[],F=[],p=[],te=l.stackSave(),H=l.stackAlloc(P*d),G=l.stackAlloc(P*d),se=l.stackAlloc(j*d),De=l.stackAlloc(j*d);try{[L,x]=ca(c),Re("wasm prepareInputOutputTensor");for(let B=0;BQ*Y,1);q=Xt($e);let _e=v?.outputPreferredLocations[u[B]];if(q==="string"){if(_e==="gpu-buffer"||_e==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Q=[];for(let Y=0;Y0){let Q=l.webgpuGetBuffer;if(!Q)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let Y=Q(K),k=ct($e,be);if(k===void 0||!Zt(q))throw new Error(`Unsupported data type: ${q}`);le=!0;{l.webgpuRegisterBuffer(Y,o,K);let $=l.webgpuCreateDownloader(Y,k,o);_.push([q,Ee,{gpuBuffer:Y,download:async()=>{let ze=await $();return new(Ke(q))(ze)},dispose:()=>{l._OrtReleaseTensor(Z)!==0&&N("Can't release tensor.")}},"gpu-buffer"])}}else if(_e==="ml-tensor"&&be>0){let Q=l.webnnEnsureTensor,Y=l.webnnIsGraphInputOutputTypeSupported;if(!Q||!Y)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(ct($e,be)===void 0||!Qt(q))throw new Error(`Unsupported data type: ${q}`);if(!Y(o,q,!1))throw new Error(`preferredLocation "ml-tensor" for ${q} output is not supported by current WebNN Context.`);let $=await Q(o,K,$e,Ee,!1);le=!0,_.push([q,Ee,{mlTensor:$,download:l.webnnCreateMLTensorDownloader(K,q),dispose:()=>{l.webnnReleaseTensorId(K),l._OrtReleaseTensor(Z)}},"ml-tensor"])}else if(_e==="ml-tensor-cpu-output"&&be>0){let Q=l.webnnCreateMLTensorDownloader(K,q)(),Y=_.length;le=!0,Ge.push((async()=>{let k=[Y,await Q];return l.webnnReleaseTensorId(K),l._OrtReleaseTensor(Z),k})()),_.push([q,Ee,[],"cpu"])}else{let Q=Ke(q),Y=new Q(be);new Uint8Array(Y.buffer,Y.byteOffset,Y.byteLength).set(l.HEAPU8.subarray(K,K+Y.byteLength)),_.push([q,Ee,Y,"cpu"])}}finally{l.stackRestore(nt),q==="string"&&K&&l._free(K),le||l._OrtReleaseTensor(Z)}}v&&!E&&(l._OrtClearBoundOutputs(v.handle)!==0&&N("Can't clear bound outputs."),tt.set(o,[g,w,b,v,E,!1]));for(let[B,Z]of await Promise.all(Ge))_[B][2]=Z;return ke("wasm ProcessOutputTensor"),_}finally{l.webnnOnRunEnd?.(g),l.stackRestore(te),a.forEach(S=>{S&&S[3]==="gpu-buffer"&&l.webgpuUnregisterBuffer(S[2].gpuBuffer)}),i.forEach(S=>{S&&S[3]==="gpu-buffer"&&l.webgpuUnregisterBuffer(S[2].gpuBuffer)}),U.forEach(S=>l._OrtReleaseTensor(S)),M.forEach(S=>l._OrtReleaseTensor(S)),F.forEach(S=>l._free(S)),L!==0&&l._OrtReleaseRunOptions(L),x.forEach(S=>l._free(S))}},Ht=o=>{let t=W(),a=tt.get(o);if(!a)throw new Error("invalid session id");let u=a[0],i=t._OrtEndProfiling(u);i===0&&N("Can't get an profile file name."),t._OrtFree(i)},qt=o=>{let t=[];for(let a of o){let u=a[2];!Array.isArray(u)&&"buffer"in u&&t.push(u.buffer)}return t}});var rt,we,At,nr,or,rr,Kr,en,lt,pt,Tu,La,Ba,Ca,Ma,Da,Pa,Ua,tn=R(()=>{"use strict";Ne();Gr();We();Wt();rt=()=>!!X.wasm.proxy&&typeof document<"u",At=!1,nr=!1,or=!1,en=new Map,lt=(o,t)=>{let a=en.get(o);a?a.push(t):en.set(o,[t])},pt=()=>{if(At||!nr||or||!we)throw new Error("worker not ready")},Tu=o=>{switch(o.data.type){case"init-wasm":At=!1,o.data.err?(or=!0,Kr[1](o.data.err)):(nr=!0,Kr[0]()),rr&&(URL.revokeObjectURL(rr),rr=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let t=en.get(o.data.type);o.data.err?t.shift()[1](o.data.err):t.shift()[0](o.data.out);break}default:}},La=async()=>{if(!nr){if(At)throw new Error("multiple calls to 'initWasm()' detected.");if(or)throw new Error("previous call to 'initWasm()' failed.");if(At=!0,rt())return new Promise((o,t)=>{we?.terminate(),ia().then(([a,u])=>{try{we=u,we.onerror=c=>t(c),we.onmessage=Tu,Kr=[o,t];let i={type:"init-wasm",in:X};!i.in.wasm.wasmPaths&&(a||zr)&&(i.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.jspi.wasm",import.meta.url).href}),we.postMessage(i),rr=a}catch(i){t(i)}},t)});try{await Ft(X.wasm),await Gt(X),nr=!0}catch(o){throw or=!0,o}finally{At=!1}}},Ba=async o=>{if(rt())return pt(),new Promise((t,a)=>{lt("init-ep",[t,a]);let u={type:"init-ep",in:{epName:o,env:X}};we.postMessage(u)});await $t(X,o)},Ca=async o=>rt()?(pt(),new Promise((t,a)=>{lt("copy-from",[t,a]);let u={type:"copy-from",in:{buffer:o}};we.postMessage(u,[o.buffer])})):vt(o),Ma=async(o,t)=>{if(rt()){if(t?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return pt(),new Promise((a,u)=>{lt("create",[a,u]);let i={type:"create",in:{model:o,options:{...t}}},c=[];o instanceof Uint8Array&&c.push(o.buffer),we.postMessage(i,c)})}else return zt(o,t)},Da=async o=>{if(rt())return pt(),new Promise((t,a)=>{lt("release",[t,a]);let u={type:"release",in:o};we.postMessage(u)});jt(o)},Pa=async(o,t,a,u,i,c)=>{if(rt()){if(a.some(l=>l[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(i.some(l=>l))throw new Error("pre-allocated output tensor is not supported for proxy.");return pt(),new Promise((l,d)=>{lt("run",[l,d]);let h=a,g={type:"run",in:{sessionId:o,inputIndices:t,inputs:h,outputIndices:u,options:c}};we.postMessage(g,qt(h))})}else return Vt(o,t,a,u,i,c)},Ua=async o=>{if(rt())return pt(),new Promise((t,a)=>{lt("end-profiling",[t,a]);let u={type:"end-profiling",in:o};we.postMessage(u)});Ht(o)}});var Ra,vu,ar,ka=R(()=>{"use strict";Ne();tn();et();Nt();Yr();Ra=(o,t)=>{switch(o.location){case"cpu":return[o.type,o.dims,o.data,"cpu"];case"gpu-buffer":return[o.type,o.dims,{gpuBuffer:o.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[o.type,o.dims,{mlTensor:o.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${o.location} for ${t()}`)}},vu=o=>{switch(o[3]){case"cpu":return new ve(o[0],o[2],o[1]);case"gpu-buffer":{let t=o[0];if(!Zt(t))throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);let{gpuBuffer:a,download:u,dispose:i}=o[2];return ve.fromGpuBuffer(a,{dataType:t,dims:o[1],download:u,dispose:i})}case"ml-tensor":{let t=o[0];if(!Qt(t))throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);let{mlTensor:a,download:u,dispose:i}=o[2];return ve.fromMLTensor(a,{dataType:t,dims:o[1],download:u,dispose:i})}default:throw new Error(`invalid data location: ${o[3]}`)}},ar=class{async fetchModelAndCopyToWasmMemory(t){return Ca(await St(t))}async loadModel(t,a){Je();let u;typeof t=="string"?u=await this.fetchModelAndCopyToWasmMemory(t):u=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await Ma(u,a),Xe()}async dispose(){return Da(this.sessionId)}async run(t,a,u){Je();let i=[],c=[];Object.entries(t).forEach(v=>{let E=v[0],O=v[1],P=this.inputNames.indexOf(E);if(P===-1)throw new Error(`invalid input '${E}'`);i.push(O),c.push(P)});let l=[],d=[];Object.entries(a).forEach(v=>{let E=v[0],O=v[1],P=this.outputNames.indexOf(E);if(P===-1)throw new Error(`invalid output '${E}'`);l.push(O),d.push(P)});let h=i.map((v,E)=>Ra(v,()=>`input "${this.inputNames[c[E]]}"`)),g=l.map((v,E)=>v?Ra(v,()=>`output "${this.outputNames[d[E]]}"`):null),w=await Pa(this.sessionId,c,h,d,g,u),b={};for(let v=0;vsr,initializeFlags:()=>Na,wasmBackend:()=>Eu});var Na,sr,Eu,Fa=R(()=>{"use strict";Ne();tn();ka();Na=()=>{(typeof X.wasm.initTimeout!="number"||X.wasm.initTimeout<0)&&(X.wasm.initTimeout=0);let o=X.wasm.simd;if(typeof o!="boolean"&&o!==void 0&&o!=="fixed"&&o!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${o}". Reset it to \`false\` and ignore SIMD feature checking.`),X.wasm.simd=!1),typeof X.wasm.proxy!="boolean"&&(X.wasm.proxy=!1),typeof X.wasm.trace!="boolean"&&(X.wasm.trace=!1),typeof X.wasm.numThreads!="number"||!Number.isInteger(X.wasm.numThreads)||X.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)X.wasm.numThreads=1;else{let t=typeof navigator>"u"?Pr("node:os").cpus().length:navigator.hardwareConcurrency;X.wasm.numThreads=Math.min(4,Math.ceil((t||1)/2))}},sr=class{async init(t){Na(),await La(),await Ba(t)}async createInferenceSessionHandler(t,a){let u=new ar;return await u.loadModel(t,a),u}},Eu=new sr});Ne();Ne();Ne();var Yo="1.26.0-dev.20260416-b7804b056c";var vc=Fr;{let o=(Fa(),Pt(Wa)).wasmBackend;qe("webgpu",o,5),qe("webnn",o,5),qe("cpu",o,10),qe("wasm",o,10)}Object.defineProperty(X.versions,"web",{value:Yo,enumerable:!0});export{Xi as InferenceSession,Fo as TRACE,Re as TRACE_EVENT_BEGIN,ke as TRACE_EVENT_END,Je as TRACE_FUNC_BEGIN,Xe as TRACE_FUNC_END,ve as Tensor,vc as default,X as env,qe as registerBackend}; //# sourceMappingURL=ort.jspi.bundle.min.mjs.map