UNPKG

onnxruntime-web

Version:

A Javascript library for running ONNX models on browsers

8 lines 666 kB
/*! * ONNX Runtime Web v1.17.3 * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ "use strict";var ort=(()=>{var Fn=Object.defineProperty;var cd=Object.getOwnPropertyDescriptor;var pd=Object.getOwnPropertyNames;var fd=Object.prototype.hasOwnProperty;var F=(e,t)=>()=>(e&&(t=e(e=0)),t);var rr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Lt=(e,t)=>{for(var r in t)Fn(e,r,{get:t[r],enumerable:!0})},md=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of pd(t))!fd.call(e,n)&&n!==r&&Fn(e,n,{get:()=>t[n],enumerable:!(a=cd(t,n))||a.enumerable});return e};var Bt=e=>md(Fn({},"__esModule",{value:!0}),e);var Xr,Ft,Dt,hd,Qr,Jr=F(()=>{"use strict";Xr=new Map,Ft=[],Dt=(e,t,r)=>{if(t&&typeof t.init=="function"&&typeof t.createInferenceSessionHandler=="function"){let a=Xr.get(e);if(a===void 0)Xr.set(e,{backend:t,priority:r});else{if(a.priority>r)return;if(a.priority===r&&a.backend!==t)throw new Error(`cannot register backend "${e}" using priority ${r}`)}if(r>=0){let n=Ft.indexOf(e);n!==-1&&Ft.splice(n,1);for(let o=0;o<Ft.length;o++)if(Xr.get(Ft[o]).priority<=r){Ft.splice(o,0,e);return}Ft.push(e)}return}throw new TypeError("not a valid backend")},hd=async e=>{let t=Xr.get(e);if(!t)return"backend not found.";if(t.initialized)return t.backend;if(t.aborted)return t.error;{let r=!!t.initPromise;try{return r||(t.initPromise=t.backend.init(e)),await t.initPromise,t.initialized=!0,t.backend}catch(a){return r||(t.error=`${a}`,t.aborted=!0),t.error}finally{delete t.initPromise}}},Qr=async e=>{let t=e.executionProviders||[],r=t.map(i=>typeof i=="string"?i:i.name),a=r.length===0?Ft:r,n,o=[],s=new Set;for(let i of a){let c=await hd(i);typeof c=="string"?o.push({name:i,err:c}):(n||(n=c),n===c&&s.add(i))}if(!n)throw new Error(`no available backend found. ERR: ${o.map(i=>`[${i.name}] ${i.err}`).join(", ")}`);for(let{name:i,err:c}of o)r.includes(i)&&console.warn(`removing requested execution provider "${i}" from session options because it is not available: ${c}`);let l=t.filter(i=>s.has(typeof i=="string"?i:i.name));return[n,new Proxy(e,{get:(i,c)=>c==="executionProviders"?l:Reflect.get(i,c)})]}});var ii=F(()=>{"use strict";Jr()});var oi,si=F(()=>{"use strict";oi="1.17.3"});var ui,st,qn=F(()=>{"use strict";si();ui="warning",st={wasm:{},webgl:{},webgpu:{},versions:{common:oi},set logLevel(e){if(e!==void 0){if(typeof e!="string"||["verbose","info","warning","error","fatal"].indexOf(e)===-1)throw new Error(`Unsupported logging level: ${e}`);ui=e}},get logLevel(){return ui}};Object.defineProperty(st,"logLevel",{enumerable:!0})});var Ee,li=F(()=>{"use strict";qn();Ee=st});var di,ci,pi=F(()=>{"use strict";di=(e,t)=>{let r=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);r.width=e.dims[3],r.height=e.dims[2];let a=r.getContext("2d");if(a!=null){let n,o;t?.tensorLayout!==void 0&&t.tensorLayout==="NHWC"?(n=e.dims[2],o=e.dims[3]):(n=e.dims[3],o=e.dims[2]);let s=t?.format!==void 0?t.format:"RGB",l=t?.norm,i,c;l===void 0||l.mean===void 0?i=[255,255,255,255]:typeof l.mean=="number"?i=[l.mean,l.mean,l.mean,l.mean]:(i=[l.mean[0],l.mean[1],l.mean[2],0],l.mean[3]!==void 0&&(i[3]=l.mean[3])),l===void 0||l.bias===void 0?c=[0,0,0,0]:typeof l.bias=="number"?c=[l.bias,l.bias,l.bias,l.bias]:(c=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(c[3]=l.bias[3]));let f=o*n,m=0,h=f,w=f*2,b=-1;s==="RGBA"?(m=0,h=f,w=f*2,b=f*3):s==="RGB"?(m=0,h=f,w=f*2):s==="RBG"&&(m=0,w=f,h=f*2);for(let $=0;$<o;$++)for(let I=0;I<n;I++){let S=(e.data[m++]-c[0])*i[0],v=(e.data[h++]-c[1])*i[1],E=(e.data[w++]-c[2])*i[2],A=b===-1?255:(e.data[b++]-c[3])*i[3];a.fillStyle="rgba("+S+","+v+","+E+","+A+")",a.fillRect(I,$,1,1)}if("toDataURL"in r)return r.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},ci=(e,t)=>{let r=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),a;if(r!=null){let n,o,s;t?.tensorLayout!==void 0&&t.tensorLayout==="NHWC"?(n=e.dims[2],o=e.dims[1],s=e.dims[3]):(n=e.dims[3],o=e.dims[2],s=e.dims[1]);let l=t!==void 0&&t.format!==void 0?t.format:"RGB",i=t?.norm,c,f;i===void 0||i.mean===void 0?c=[255,255,255,255]:typeof i.mean=="number"?c=[i.mean,i.mean,i.mean,i.mean]:(c=[i.mean[0],i.mean[1],i.mean[2],255],i.mean[3]!==void 0&&(c[3]=i.mean[3])),i===void 0||i.bias===void 0?f=[0,0,0,0]:typeof i.bias=="number"?f=[i.bias,i.bias,i.bias,i.bias]:(f=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(f[3]=i.bias[3]));let m=o*n;if(t!==void 0&&(t.format!==void 0&&s===4&&t.format!=="RGBA"||s===3&&t.format!=="RGB"&&t.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let h=4,w=0,b=1,$=2,I=3,S=0,v=m,E=m*2,A=-1;l==="RGBA"?(S=0,v=m,E=m*2,A=m*3):l==="RGB"?(S=0,v=m,E=m*2):l==="RBG"&&(S=0,E=m,v=m*2),a=r.createImageData(n,o);for(let k=0;k<o*n;w+=h,b+=h,$+=h,I+=h,k++)a.data[w]=(e.data[S++]-f[0])*c[0],a.data[b]=(e.data[v++]-f[1])*c[1],a.data[$]=(e.data[E++]-f[2])*c[2],a.data[I]=A===-1?255:(e.data[A++]-f[3])*c[3]}else throw new Error("Can not access image data");return a}});var jn,fi,mi,hi,gi,yi=F(()=>{"use strict";en();jn=(e,t)=>{if(e===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:r,width:a}=t,n=t.norm??{mean:255,bias:0},o,s;typeof n.mean=="number"?o=[n.mean,n.mean,n.mean,n.mean]:o=[n.mean[0],n.mean[1],n.mean[2],n.mean[3]??255],typeof n.bias=="number"?s=[n.bias,n.bias,n.bias,n.bias]:s=[n.bias[0],n.bias[1],n.bias[2],n.bias[3]??0];let l=t.format!==void 0?t.format:"RGBA",i=t.tensorFormat!==void 0&&t.tensorFormat!==void 0?t.tensorFormat:"RGB",c=r*a,f=i==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),m=4,h=0,w=1,b=2,$=3,I=0,S=c,v=c*2,E=-1;l==="RGB"&&(m=3,h=0,w=1,b=2,$=-1),i==="RGBA"?E=c*3:i==="RBG"?(I=0,v=c,S=c*2):i==="BGR"&&(v=0,S=c,I=c*2);for(let k=0;k<c;k++,h+=m,b+=m,w+=m,$+=m)f[I++]=(e[h]+s[0])/o[0],f[S++]=(e[w]+s[1])/o[1],f[v++]=(e[b]+s[2])/o[2],E!==-1&&$!==-1&&(f[E++]=(e[$]+s[3])/o[3]);return i==="RGBA"?new rt("float32",f,[1,4,r,a]):new rt("float32",f,[1,3,r,a])},fi=async(e,t)=>{let r=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,a=typeof ImageData<"u"&&e instanceof ImageData,n=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,o=typeof e=="string",s,l=t??{},i=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=f=>f instanceof HTMLCanvasElement||f instanceof OffscreenCanvas?f.getContext("2d"):null;if(r){let f=i();f.width=e.width,f.height=e.height;let m=c(f);if(m!=null){let h=e.height,w=e.width;if(t!==void 0&&t.resizedHeight!==void 0&&t.resizedWidth!==void 0&&(h=t.resizedHeight,w=t.resizedWidth),t!==void 0){if(l=t,t.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");l.tensorFormat="RGBA",l.height=h,l.width=w}else l.tensorFormat="RGBA",l.height=h,l.width=w;m.drawImage(e,0,0),s=m.getImageData(0,0,w,h).data}else throw new Error("Can not access image data")}else if(a){let f,m;if(t!==void 0&&t.resizedWidth!==void 0&&t.resizedHeight!==void 0?(f=t.resizedHeight,m=t.resizedWidth):(f=e.height,m=e.width),t!==void 0&&(l=t),l.format="RGBA",l.height=f,l.width=m,t!==void 0){let h=i();h.width=m,h.height=f;let w=c(h);if(w!=null)w.putImageData(e,0,0),s=w.getImageData(0,0,m,f).data;else throw new Error("Can not access image data")}else s=e.data}else if(n){if(t===void 0)throw new Error("Please provide image config with format for Imagebitmap");let f=i();f.width=e.width,f.height=e.height;let m=c(f);if(m!=null){let h=e.height,w=e.width;return m.drawImage(e,0,0,w,h),s=m.getImageData(0,0,w,h).data,l.height=h,l.width=w,jn(s,l)}else throw new Error("Can not access image data")}else{if(o)return new Promise((f,m)=>{let h=i(),w=c(h);if(!e||!w)return m();let b=new Image;b.crossOrigin="Anonymous",b.src=e,b.onload=()=>{h.width=b.width,h.height=b.height,w.drawImage(b,0,0,h.width,h.height);let $=w.getImageData(0,0,h.width,h.height);l.height=h.height,l.width=h.width,f(jn($.data,l))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(s!==void 0)return jn(s,l);throw new Error("Input data provided is not supported - aborted tensor creation")},mi=(e,t)=>{let{width:r,height:a,download:n,dispose:o}=t,s=[1,a,r,4];return new rt({location:"texture",type:"float32",texture:e,dims:s,download:n,dispose:o})},hi=(e,t)=>{let{dataType:r,dims:a,download:n,dispose:o}=t;return new rt({location:"gpu-buffer",type:r??"float32",gpuBuffer:e,dims:a,download:n,dispose:o})},gi=(e,t,r)=>new rt({location:"cpu-pinned",type:e,data:t,dims:r??[t.length]})});var qt,Sr,bi,wi,vi=F(()=>{"use strict";qt=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array]]),Sr=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),bi=!1,wi=()=>{if(!bi){bi=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,t=typeof BigUint64Array<"u"&&BigUint64Array.from,r=typeof Float16Array<"u"&&Float16Array.from;e&&(qt.set("int64",BigInt64Array),Sr.set(BigInt64Array,"int64")),t&&(qt.set("uint64",BigUint64Array),Sr.set(BigUint64Array,"uint64")),r?(qt.set("float16",Float16Array),Sr.set(Float16Array,"float16")):qt.set("float16",Uint16Array)}}});var $i,_i,xi=F(()=>{"use strict";en();$i=e=>{let t=1;for(let r=0;r<e.length;r++){let a=e[r];if(typeof a!="number"||!Number.isSafeInteger(a))throw new TypeError(`dims[${r}] must be an integer, got: ${a}`);if(a<0)throw new RangeError(`dims[${r}] must be a non-negative integer, got: ${a}`);t*=a}return t},_i=(e,t)=>{switch(e.location){case"cpu":return new rt(e.type,e.data,t);case"cpu-pinned":return new rt({location:"cpu-pinned",data:e.data,type:e.type,dims:t});case"texture":return new rt({location:"texture",texture:e.texture,type:e.type,dims:t});case"gpu-buffer":return new rt({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:t});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}});var rt,en=F(()=>{"use strict";pi();yi();vi();xi();rt=class{constructor(t,r,a){wi();let n,o;if(typeof t=="object"&&"location"in t)switch(this.dataLocation=t.location,n=t.type,o=t.dims,t.location){case"cpu-pinned":{let l=qt.get(n);if(!l)throw new TypeError(`unsupported type "${n}" to create tensor from pinned buffer`);if(!(t.data instanceof l))throw new TypeError(`buffer should be of type ${l.name}`);this.cpuData=t.data;break}case"texture":{if(n!=="float32")throw new TypeError(`unsupported type "${n}" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case"gpu-buffer":{if(n!=="float32"&&n!=="float16"&&n!=="int32"&&n!=="int64"&&n!=="uint32"&&n!=="uint8"&&n!=="bool")throw new TypeError(`unsupported type "${n}" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let l,i;if(typeof t=="string")if(n=t,i=a,t==="string"){if(!Array.isArray(r))throw new TypeError("A string tensor's data must be a string array.");l=r}else{let c=qt.get(t);if(c===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(r)){if(t==="float16"&&c===Uint16Array)throw new TypeError("Creating a float16 tensor from number array is not supported. Please use Uint16Array as data.");t==="uint64"||t==="int64"?l=c.from(r,BigInt):l=c.from(r)}else if(r instanceof c)l=r;else throw new TypeError(`A ${n} tensor's data must be type of ${c}`)}else if(i=r,Array.isArray(t)){if(t.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let c=typeof t[0];if(c==="string")n="string",l=t;else if(c==="boolean")n="bool",l=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${c}.`)}else{let c=Sr.get(t.constructor);if(c===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);n=c,l=t}if(i===void 0)i=[l.length];else if(!Array.isArray(i))throw new TypeError("A tensor's dims must be a number array");o=i,this.cpuData=l,this.dataLocation="cpu"}let s=$i(o);if(this.cpuData&&s!==this.cpuData.length)throw new Error(`Tensor's size(${s}) does not match data length(${this.cpuData.length}).`);this.type=n,this.dims=o,this.size=s}static async fromImage(t,r){return fi(t,r)}static fromTexture(t,r){return mi(t,r)}static fromGpuBuffer(t,r){return hi(t,r)}static fromPinnedBuffer(t,r,a){return gi(t,r,a)}toDataURL(t){return di(this,t)}toImageData(t){return ci(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}async getData(t){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":{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 r=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=r,t&&this.disposer&&(this.disposer(),this.disposer=void 0),r}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.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 _i(this,t)}}});var Ye,tn=F(()=>{"use strict";en();Ye=rt});var Cr,Si,at,nt,Kn=F(()=>{"use strict";qn();Cr=(e,t)=>{(typeof st.trace>"u"?!st.wasm.trace:!st.trace)||console.timeStamp(`${e}::ORT::${t}`)},Si=(e,t)=>{let r=new Error().stack?.split(/\r\n|\r|\n/g)||[],a=!1;for(let n=0;n<r.length;n++){if(a&&!r[n].includes("TRACE_FUNC")){let o=`FUNC_${e}::${r[n].trim().split(" ")[1]}`;t&&(o+=`::${t}`),Cr("CPU",o);return}r[n].includes("TRACE_FUNC")&&(a=!0)}},at=e=>{(typeof st.trace>"u"?!st.wasm.trace:!st.trace)||Si("BEGIN",e)},nt=e=>{(typeof st.trace>"u"?!st.wasm.trace:!st.trace)||Si("END",e)}});var rn,Ci=F(()=>{"use strict";Jr();tn();Kn();rn=class e{constructor(t){this.handler=t}async run(t,r,a){at();let n={},o={};if(typeof t!="object"||t===null||t instanceof Ye||Array.isArray(t))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let s=!0;if(typeof r=="object"){if(r===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(r instanceof Ye)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(r)){if(r.length===0)throw new TypeError("'fetches' cannot be an empty array.");s=!1;for(let c of r){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);n[c]=null}if(typeof a=="object"&&a!==null)o=a;else if(typeof a<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,f=Object.getOwnPropertyNames(r);for(let m of this.outputNames)if(f.indexOf(m)!==-1){let h=r[m];(h===null||h instanceof Ye)&&(c=!0,s=!1,n[m]=h)}if(c){if(typeof a=="object"&&a!==null)o=a;else if(typeof a<"u")throw new TypeError("'options' must be an object.")}else o=r}}else if(typeof r<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof t[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(s)for(let c of this.outputNames)n[c]=null;let l=await this.handler.run(t,n,o),i={};for(let c in l)if(Object.hasOwnProperty.call(l,c)){let f=l[c];f instanceof Ye?i[c]=f:i[c]=new Ye(f.type,f.data,f.dims)}return nt(),i}async release(){return this.handler.dispose()}static async create(t,r,a,n){at();let o,s={};if(typeof t=="string"){if(o=t,typeof r=="object"&&r!==null)s=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else if(t instanceof Uint8Array){if(o=t,typeof r=="object"&&r!==null)s=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else if(t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer){let f=t,m=0,h=t.byteLength;if(typeof r=="object"&&r!==null)s=r;else if(typeof r=="number"){if(m=r,!Number.isSafeInteger(m))throw new RangeError("'byteOffset' must be an integer.");if(m<0||m>=f.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${f.byteLength}).`);if(h=t.byteLength-m,typeof a=="number"){if(h=a,!Number.isSafeInteger(h))throw new RangeError("'byteLength' must be an integer.");if(h<=0||m+h>f.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${f.byteLength-m}].`);if(typeof n=="object"&&n!==null)s=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(typeof a<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof r<"u")throw new TypeError("'options' must be an object.");o=new Uint8Array(f,m,h)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[l,i]=await Qr(s),c=await l.createInferenceSessionHandler(o,i);return nt(),new e(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}});var Ii,Ei=F(()=>{"use strict";Ci();Ii=rn});var Ai=F(()=>{"use strict"});var Ti=F(()=>{"use strict"});var Oi=F(()=>{"use strict"});var ki=F(()=>{"use strict"});var gd,nn,Pi=F(()=>{"use strict";Jr();tn();gd="Training backend could not be resolved. Make sure you're using the correct configuration & WebAssembly files.",nn=class e{constructor(t,r,a){this.handler=t,this.hasOptimizerModel=r,this.hasEvalModel=a}get trainingInputNames(){return this.handler.inputNames}get trainingOutputNames(){return this.handler.outputNames}get evalInputNames(){if(this.hasEvalModel)return this.handler.evalInputNames;throw new Error("This training session has no evalModel loaded.")}get evalOutputNames(){if(this.hasEvalModel)return this.handler.evalOutputNames;throw new Error("This training session has no evalModel loaded.")}static async create(t,r){let a=t.evalModel||"",n=t.optimizerModel||"",o=r||{},[s,l]=await Qr(o);if(s.createTrainingSessionHandler){let i=await s.createTrainingSessionHandler(t.checkpointState,t.trainModel,a,n,l);return new e(i,!!t.optimizerModel,!!t.evalModel)}else throw new Error(gd)}typeNarrowingForRunStep(t,r,a,n,o){let s={},l={};if(typeof a!="object"||a===null||a instanceof Ye||Array.isArray(a))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let i=!0;if(typeof n=="object"){if(n===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(n instanceof Ye)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(n)){if(n.length===0)throw new TypeError("'fetches' cannot be an empty array.");i=!1;for(let c of n){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(r.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);s[c]=null}if(typeof o=="object"&&o!==null)l=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,f=Object.getOwnPropertyNames(n);for(let m of r)if(f.indexOf(m)!==-1){let h=n[m];(h===null||h instanceof Ye)&&(c=!0,i=!1,s[m]=h)}if(c){if(typeof o=="object"&&o!==null)l=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else l=n}}else if(typeof n<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of t)if(typeof a[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(i)for(let c of r)s[c]=null;return[s,l]}convertHandlerReturnTypeToMapOfTensors(t){let r={};for(let a in t)if(Object.hasOwnProperty.call(t,a)){let n=t[a];n instanceof Ye?r[a]=n:r[a]=new Ye(n.type,n.data,n.dims)}return r}async lazyResetGrad(){await this.handler.lazyResetGrad()}async runTrainStep(t,r,a){let[n,o]=this.typeNarrowingForRunStep(this.trainingInputNames,this.trainingOutputNames,t,r,a),s=await this.handler.runTrainStep(t,n,o);return this.convertHandlerReturnTypeToMapOfTensors(s)}async runOptimizerStep(t){if(this.hasOptimizerModel)await this.handler.runOptimizerStep(t||{});else throw new Error("This TrainingSession has no OptimizerModel loaded.")}async runEvalStep(t,r,a){if(this.hasEvalModel){let[n,o]=this.typeNarrowingForRunStep(this.evalInputNames,this.evalOutputNames,t,r,a),s=await this.handler.runEvalStep(t,n,o);return this.convertHandlerReturnTypeToMapOfTensors(s)}else throw new Error("This TrainingSession has no EvalModel loaded.")}async getParametersSize(t=!0){return this.handler.getParametersSize(t)}async loadParametersBuffer(t,r=!0){let a=await this.getParametersSize(r);if(t.length!==4*a)throw new Error("Size of the buffer passed into loadParametersBuffer must match the number of parameters in the model. Please use getParametersSize method to check.");return this.handler.loadParametersBuffer(t,r)}async getContiguousParameters(t=!0){return this.handler.getContiguousParameters(t)}async release(){return this.handler.dispose()}}});var Ri,zi=F(()=>{"use strict";Pi();Ri=nn});var Yn={};Lt(Yn,{InferenceSession:()=>Ii,TRACE:()=>Cr,TRACE_FUNC_BEGIN:()=>at,TRACE_FUNC_END:()=>nt,Tensor:()=>Ye,TrainingSession:()=>Ri,env:()=>Ee,registerBackend:()=>Dt});var lt=F(()=>{"use strict";ii();li();Ei();tn();Ai();Ti();Kn();Oi();ki();zi()});var Zn={};Lt(Zn,{createReadStream:()=>Di,readFile:()=>yd,readFileSync:()=>bd});var yd,bd,Di,Xn=F(()=>{yd=void 0,bd=void 0,Di=void 0});var Qn={};Lt(Qn,{join:()=>wd});var wd,Jn=F(()=>{wd=void 0});var Ni=rr((Ui,ea)=>{"use strict";var Mi=(()=>{var e=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(e=e||__filename),function(t={}){var r=t,a,n;r.ready=new Promise((d,g)=>{a=d,n=g}),r.mountExternalData=(d,g)=>{(r.Fa||(r.Fa=new Map)).set(d,g)},r.unmountExternalData=()=>{delete r.Fa};let o=()=>{let d=(_,C,O)=>(...W)=>{let j=ut,Q=C?.();W=_(...W);let oe=C?.();return Q!==oe&&(_=oe,O(Q),C=O=null),ut!=j?Wr():W},g=_=>async(...C)=>{try{if(r.Ea)throw Error("Session already started");let O=r.Ea={Za:C[0],errors:[]},W=await _(...C);if(r.Ea!==O)throw Error("Session mismatch");r.La?.flush();let j=O.errors;if(0<j.length){let Q=await Promise.all(j);if(Q=Q.filter(oe=>oe),0<Q.length)throw Error(Q.join(` `))}return W}finally{r.Ea=null}};r._OrtCreateSession=d(r._OrtCreateSession,()=>r._OrtCreateSession,_=>r._OrtCreateSession=_),r._OrtRun=g(d(r._OrtRun,()=>r._OrtRun,_=>r._OrtRun=_)),r._OrtRunWithBinding=g(d(r._OrtRunWithBinding,()=>r._OrtRunWithBinding,_=>r._OrtRunWithBinding=_)),r._OrtBindInput=d(r._OrtBindInput,()=>r._OrtBindInput,_=>r._OrtBindInput=_),o=void 0};r.jsepInit=(d,g)=>{if(o?.(),d==="webgpu"){[r.La,r.Ra,r.Va,r.Ma,r.Ua,r.sa,r.Wa,r.Ya,r.Sa,r.Ta,r.Xa]=g;let _=r.La;r.jsepRegisterBuffer=(C,O,W,j)=>_.registerBuffer(C,O,W,j),r.jsepGetBuffer=C=>_.getBuffer(C),r.jsepCreateDownloader=(C,O,W)=>_.createDownloader(C,O,W),r.jsepOnReleaseSession=C=>{_.onReleaseSession(C)},r.jsepOnRunStart=C=>_.onRunStart(C)}};var s=Object.assign({},r),l="./this.program",i=(d,g)=>{throw g},c=typeof window=="object",f=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",h="",w,b,$;if(m){var I=(Xn(),Bt(Zn)),S=(Jn(),Bt(Qn));h=f?S.dirname(h)+"/":__dirname+"/",w=(d,g)=>(d=Ae(d)?new URL(d):S.normalize(d),I.readFileSync(d,g?void 0:"utf8")),$=d=>(d=w(d,!0),d.buffer||(d=new Uint8Array(d)),d),b=(d,g,_,C=!0)=>{d=Ae(d)?new URL(d):S.normalize(d),I.readFile(d,C?void 0:"utf8",(O,W)=>{O?_(O):g(C?W.buffer:W)})},!r.thisProgram&&1<process.argv.length&&(l=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),i=(d,g)=>{throw process.exitCode=d,g},r.inspect=()=>"[Emscripten Module object]"}else(c||f)&&(f?h=self.location.href:typeof document<"u"&&document.currentScript&&(h=document.currentScript.src),e&&(h=e),h.indexOf("blob:")!==0?h=h.substr(0,h.replace(/[?#].*/,"").lastIndexOf("/")+1):h="",w=d=>{var g=new XMLHttpRequest;return g.open("GET",d,!1),g.send(null),g.responseText},f&&($=d=>{var g=new XMLHttpRequest;return g.open("GET",d,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}),b=(d,g,_)=>{var C=new XMLHttpRequest;C.open("GET",d,!0),C.responseType="arraybuffer",C.onload=()=>{C.status==200||C.status==0&&C.response?g(C.response):_()},C.onerror=_,C.send(null)});var v=console.log.bind(console),E=console.error.bind(console);Object.assign(r,s),s=null,typeof WebAssembly!="object"&&se("no native wasm support detected");var A,k=!1,U,N,H,z,L,pe,Ie;function we(){var d=A.buffer;r.HEAP8=N=new Int8Array(d),r.HEAP16=new Int16Array(d),r.HEAPU8=H=new Uint8Array(d),r.HEAPU16=new Uint16Array(d),r.HEAP32=z=new Int32Array(d),r.HEAPU32=L=new Uint32Array(d),r.HEAPF32=pe=new Float32Array(d),r.HEAPF64=Ie=new Float64Array(d)}var ne=[],Ue=[],X=[],xe=0,fe=null,ue=null;function se(d){throw d="Aborted("+d+")",E(d),k=!0,U=1,d=new WebAssembly.RuntimeError(d+". Build with -sASSERTIONS for more info."),n(d),d}var he=d=>d.startsWith("data:application/octet-stream;base64,"),Ae=d=>d.startsWith("file://"),Le;if(Le="ort-wasm-simd.wasm",!he(Le)){var G=Le;Le=r.locateFile?r.locateFile(G,h):h+G}function J(d){if($)return $(d);throw"both async and sync fetching of the wasm failed"}function Se(d){if(c||f){if(typeof fetch=="function"&&!Ae(d))return fetch(d,{credentials:"same-origin"}).then(g=>{if(!g.ok)throw"failed to load wasm binary file at '"+d+"'";return g.arrayBuffer()}).catch(()=>J(d));if(b)return new Promise((g,_)=>{b(d,C=>g(new Uint8Array(C)),_)})}return Promise.resolve().then(()=>J(d))}function Je(d,g,_){return Se(d).then(C=>WebAssembly.instantiate(C,g)).then(C=>C).then(_,C=>{E(`failed to asynchronously prepare wasm: ${C}`),se(C)})}function et(d,g){var _=Le;return typeof WebAssembly.instantiateStreaming!="function"||he(_)||Ae(_)||m||typeof fetch!="function"?Je(_,d,g):fetch(_,{credentials:"same-origin"}).then(C=>WebAssembly.instantiateStreaming(C,d).then(g,function(O){return E(`wasm streaming compile failed: ${O}`),E("falling back to ArrayBuffer instantiation"),Je(_,d,g)}))}var Fe,It={931760:(d,g,_,C)=>{if(typeof r>"u"||!r.Fa)return 1;if(d=je(d>>>0),d.startsWith("./")&&(d=d.substring(2)),d=r.Fa.get(d),!d)return 2;if(g>>>=0,_>>>=0,g+_>d.byteLength)return 3;try{return H.set(d.subarray(g,g+_),C>>>0>>>0),0}catch{return 4}},932261:()=>{r.Sa()},932292:()=>{r.Ta()},932321:()=>{r.Xa()},932346:d=>r.Ra(d),932379:d=>r.Va(d),932411:(d,g,_)=>{r.Ma(d,g,_,!0)},932450:(d,g,_)=>{r.Ma(d,g,_)},932483:d=>{r.sa("Abs",d,void 0)},932534:d=>{r.sa("Neg",d,void 0)},932585:d=>{r.sa("Floor",d,void 0)},932638:d=>{r.sa("Ceil",d,void 0)},932690:d=>{r.sa("Reciprocal",d,void 0)},932748:d=>{r.sa("Sqrt",d,void 0)},932800:d=>{r.sa("Exp",d,void 0)},932851:d=>{r.sa("Erf",d,void 0)},932902:d=>{r.sa("Sigmoid",d,void 0)},932957:(d,g,_)=>{r.sa("HardSigmoid",d,{alpha:g,beta:_})},933036:d=>{r.sa("Log",d,void 0)},933087:d=>{r.sa("Sin",d,void 0)},933138:d=>{r.sa("Cos",d,void 0)},933189:d=>{r.sa("Tan",d,void 0)},933240:d=>{r.sa("Asin",d,void 0)},933292:d=>{r.sa("Acos",d,void 0)},933344:d=>{r.sa("Atan",d,void 0)},933396:d=>{r.sa("Sinh",d,void 0)},933448:d=>{r.sa("Cosh",d,void 0)},933500:d=>{r.sa("Asinh",d,void 0)},933553:d=>{r.sa("Acosh",d,void 0)},933606:d=>{r.sa("Atanh",d,void 0)},933659:d=>{r.sa("Tanh",d,void 0)},933711:d=>{r.sa("Not",d,void 0)},933762:(d,g,_)=>{r.sa("Clip",d,{min:g,max:_})},933831:d=>{r.sa("Clip",d,void 0)},933883:(d,g)=>{r.sa("Elu",d,{alpha:g})},933941:d=>{r.sa("Relu",d,void 0)},933993:(d,g)=>{r.sa("LeakyRelu",d,{alpha:g})},934057:(d,g)=>{r.sa("ThresholdedRelu",d,{alpha:g})},934127:(d,g)=>{r.sa("Cast",d,{to:g})},934185:d=>{r.sa("Add",d,void 0)},934236:d=>{r.sa("Sub",d,void 0)},934287:d=>{r.sa("Mul",d,void 0)},934338:d=>{r.sa("Div",d,void 0)},934389:d=>{r.sa("Pow",d,void 0)},934440:d=>{r.sa("Equal",d,void 0)},934493:d=>{r.sa("Greater",d,void 0)},934548:d=>{r.sa("GreaterOrEqual",d,void 0)},934610:d=>{r.sa("Less",d,void 0)},934662:d=>{r.sa("LessOrEqual",d,void 0)},934721:(d,g,_,C,O)=>{r.sa("ReduceMean",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},934880:(d,g,_,C,O)=>{r.sa("ReduceMax",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},935038:(d,g,_,C,O)=>{r.sa("ReduceMin",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},935196:(d,g,_,C,O)=>{r.sa("ReduceProd",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},935355:(d,g,_,C,O)=>{r.sa("ReduceSum",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},935513:(d,g,_,C,O)=>{r.sa("ReduceL1",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},935670:(d,g,_,C,O)=>{r.sa("ReduceL2",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},935827:(d,g,_,C,O)=>{r.sa("ReduceLogSum",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},935988:(d,g,_,C,O)=>{r.sa("ReduceSumSquare",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},936152:(d,g,_,C,O)=>{r.sa("ReduceLogSumExp",d,{keepDims:!!g,noopWithEmptyAxes:!!_,axes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},936316:d=>{r.sa("Where",d,void 0)},936369:(d,g,_)=>{r.sa("Transpose",d,{perm:g?Array.from(z.subarray(g>>>0,_>>>0)):[]})},936477:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze,P,ae)=>{r.sa("ConvTranspose",d,{format:oe?"NHWC":"NCHW",autoPad:g,dilations:[_],group:C,kernel_shape:[O],pads:[W,j],strides:[Q],wIsConst:()=>!!N[le>>>0],outputPadding:me?Array.from(z.subarray(me>>>0,Pe>>>0)):[],outputShape:ze?Array.from(z.subarray(ze>>>0,P>>>0)):[],activation:je(ae)})},936879:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze,P)=>{r.sa("ConvTranspose",d,{format:Q?"NHWC":"NCHW",autoPad:g,dilations:Array.from(z.subarray(_>>>0,(_>>>0)+2>>>0)),group:C,kernelShape:Array.from(z.subarray(O>>>0,(O>>>0)+2>>>0)),pads:Array.from(z.subarray(W>>>0,(W>>>0)+4>>>0)),strides:Array.from(z.subarray(j>>>0,(j>>>0)+2>>>0)),wIsConst:()=>!!N[oe>>>0],outputPadding:le?Array.from(z.subarray(le>>>0,me>>>0)):[],outputShape:Pe?Array.from(z.subarray(Pe>>>0,ze>>>0)):[],activation:je(P)})},937444:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze,P,ae)=>{r.sa("ConvTranspose",d,{format:oe?"NHWC":"NCHW",autoPad:g,dilations:[_],group:C,kernel_shape:[O],pads:[W,j],strides:[Q],wIsConst:()=>!!N[le>>>0],outputPadding:me?Array.from(z.subarray(me>>>0,Pe>>>0)):[],outputShape:ze?Array.from(z.subarray(ze>>>0,P>>>0)):[],activation:je(ae)})},937846:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze,P)=>{r.sa("ConvTranspose",d,{format:Q?"NHWC":"NCHW",autoPad:g,dilations:Array.from(z.subarray(_>>>0,(_>>>0)+2>>>0)),group:C,kernelShape:Array.from(z.subarray(O>>>0,(O>>>0)+2>>>0)),pads:Array.from(z.subarray(W>>>0,(W>>>0)+4>>>0)),strides:Array.from(z.subarray(j>>>0,(j>>>0)+2>>>0)),wIsConst:()=>!!N[oe>>>0],outputPadding:le?Array.from(z.subarray(le>>>0,me>>>0)):[],outputShape:Pe?Array.from(z.subarray(Pe>>>0,ze>>>0)):[],activation:je(P)})},938411:(d,g)=>{r.sa("GlobalAveragePool",d,{format:g?"NHWC":"NCHW"})},938502:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze,P,ae,Ce)=>{r.sa("AveragePool",d,{format:Ce?"NHWC":"NCHW",auto_pad:g,ceil_mode:_,count_include_pad:C,storage_order:O,dilations:[W,j],kernel_shape:[Q,oe],pads:[le,me,Pe,ze],strides:[P,ae]})},938786:(d,g)=>{r.sa("GlobalAveragePool",d,{format:g?"NHWC":"NCHW"})},938877:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze,P,ae,Ce)=>{r.sa("AveragePool",d,{format:Ce?"NHWC":"NCHW",auto_pad:g,ceil_mode:_,count_include_pad:C,storage_order:O,dilations:[W,j],kernel_shape:[Q,oe],pads:[le,me,Pe,ze],strides:[P,ae]})},939161:(d,g)=>{r.sa("GlobalMaxPool",d,{format:g?"NHWC":"NCHW"})},939248:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze,P,ae,Ce)=>{r.sa("MaxPool",d,{format:Ce?"NHWC":"NCHW",auto_pad:g,ceil_mode:_,count_include_pad:C,storage_order:O,dilations:[W,j],kernel_shape:[Q,oe],pads:[le,me,Pe,ze],strides:[P,ae]})},939528:(d,g)=>{r.sa("GlobalMaxPool",d,{format:g?"NHWC":"NCHW"})},939615:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze,P,ae,Ce)=>{r.sa("MaxPool",d,{format:Ce?"NHWC":"NCHW",auto_pad:g,ceil_mode:_,count_include_pad:C,storage_order:O,dilations:[W,j],kernel_shape:[Q,oe],pads:[le,me,Pe,ze],strides:[P,ae]})},939895:(d,g,_,C,O)=>{r.sa("Gemm",d,{alpha:g,beta:_,transA:C,transB:O})},939999:d=>{r.sa("MatMul",d,void 0)},940053:(d,g,_,C)=>{r.sa("ArgMax",d,{keepDims:!!g,selectLastIndex:!!_,axis:C})},940161:(d,g,_,C)=>{r.sa("ArgMin",d,{keepDims:!!g,selectLastIndex:!!_,axis:C})},940269:(d,g)=>{r.sa("Softmax",d,{axis:g})},940332:(d,g)=>{r.sa("Concat",d,{axis:g})},940392:(d,g,_,C,O)=>{r.sa("Split",d,{axis:g,numOutputs:_,splitSizes:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},940532:d=>{r.sa("Expand",d,void 0)},940586:(d,g)=>{r.sa("Gather",d,{axis:Number(g)})},940657:(d,g)=>{r.sa("GatherElements",d,{axis:Number(g)})},940736:(d,g,_,C,O,W,j,Q,oe,le,me)=>{r.sa("Resize",d,{antialias:g,axes:_?Array.from(z.subarray(_>>>0,C>>>0)):[],coordinateTransformMode:je(O),cubicCoeffA:W,excludeOutside:j,extrapolationValue:Q,keepAspectRatioPolicy:je(oe),mode:je(le),nearestMode:je(me)})},941082:(d,g,_,C,O,W,j)=>{r.sa("Slice",d,{starts:g?Array.from(z.subarray(g>>>0,_>>>0)):[],ends:C?Array.from(z.subarray(C>>>0,O>>>0)):[],axes:W?Array.from(z.subarray(W>>>0,j>>>0)):[]})},941298:d=>{r.sa("Tile",d,void 0)},941350:(d,g,_)=>{r.sa("LayerNormalization",d,{axis:Number(g),epsilon:Number(_)})},941457:(d,g,_)=>{r.sa("InstanceNormalization",d,{epsilon:g,format:_?"NHWC":"NCHW"})},941571:(d,g,_)=>{r.sa("InstanceNormalization",d,{epsilon:g,format:_?"NHWC":"NCHW"})},941685:d=>{r.sa("Range",d,void 0)},941738:(d,g)=>{r.sa("Einsum",d,{equation:je(g)})},941819:(d,g,_,C,O)=>{r.sa("Pad",d,{mode:g,value:_,pads:C?Array.from(z.subarray(C>>>0,O>>>0)):[]})},941946:(d,g,_,C,O,W)=>{r.sa("BatchNormalization",d,{epsilon:g,momentum:_,spatial:!!O,trainingMode:!!C,format:W?"NHWC":"NCHW"})},942115:(d,g,_,C,O,W)=>{r.sa("BatchNormalization",d,{epsilon:g,momentum:_,spatial:!!O,trainingMode:!!C,format:W?"NHWC":"NCHW"})},942284:(d,g,_)=>{r.sa("CumSum",d,{exclusive:Number(g),reverse:Number(_)})},942381:(d,g,_,C,O,W,j,Q,oe)=>{r.sa("Attention",d,{numHeads:g,isUnidirectional:_,maskFilterValue:C,scale:O,doRotary:W,qkvHiddenSizes:j?Array.from(z.subarray(Number(Q)>>>0,Number(Q)+j>>>0)):[],pastPresentShareBuffer:!!oe})},942653:d=>{r.sa("BiasAdd",d,void 0)},942708:d=>{r.sa("BiasSplitGelu",d,void 0)},942769:d=>{r.sa("FastGelu",d,void 0)},942825:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze)=>{r.sa("Conv",d,{format:oe?"NHWC":"NCHW",auto_pad:g,dilations:[_],group:C,kernel_shape:[O],pads:W?Array.from(z.subarray(W>>>0,j>>>0)):[],strides:[Q],w_is_const:()=>!!N[le>>>0],activation:je(me),activation_params:Pe?Array.from(pe.subarray(Pe>>>0,ze>>>0)):[]})},943195:(d,g,_,C,O,W,j,Q,oe,le,me,Pe,ze,P,ae,Ce)=>{r.sa("Conv",d,{format:Pe?"NHWC":"NCHW",auto_pad:g,dilations:[_,C],group:O,kernel_shape:[W,j],pads:Q?Array.from(z.subarray(Q>>>0,oe>>>0)):[],strides:[le,me],w_is_const:()=>!!N[ze>>>0],activation:je(P),activation_params:ae?Array.from(pe.subarray(ae>>>0,Ce>>>0)):[]})},943586:d=>{r.sa("Gelu",d,void 0)},943638:(d,g,_,C,O,W)=>{r.sa("MatMulNBits",d,{k:g,n:_,accuracyLevel:C,bits:O,blockSize:W})},943765:(d,g,_,C,O,W)=>{r.sa("MultiHeadAttention",d,{numHeads:g,isUnidirectional:_,maskFilterValue:C,scale:O,doRotary:W})},943924:(d,g)=>{r.sa("SkipLayerNormalization",d,{epsilon:g})},944005:d=>{r.Wa(d)},944039:(d,g)=>r.Ya(d,g,r.Ea.Za,r.Ea.errors)};function Ve(d){this.name="ExitStatus",this.message=`Program terminated with exit(${d})`,this.status=d}function qe(d){this.Ja=d-24,this.Pa=function(g){L[this.Ja+4>>>2>>>0]=g},this.Oa=function(g){L[this.Ja+8>>>2>>>0]=g},this.eb=function(g,_){this.Na(),this.Pa(g),this.Oa(_)},this.Na=function(){L[this.Ja+16>>>2>>>0]=0}}var tt=0,Wt=0,Et=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Ot=(d,g,_)=>{g>>>=0;var C=g+_;for(_=g;d[_]&&!(_>=C);)++_;if(16<_-g&&d.buffer&&Et)return Et.decode(d.subarray(g,_));for(C="";g<_;){var O=d[g++];if(O&128){var W=d[g++]&63;if((O&224)==192)C+=String.fromCharCode((O&31)<<6|W);else{var j=d[g++]&63;O=(O&240)==224?(O&15)<<12|W<<6|j:(O&7)<<18|W<<12|j<<6|d[g++]&63,65536>O?C+=String.fromCharCode(O):(O-=65536,C+=String.fromCharCode(55296|O>>10,56320|O&1023))}}else C+=String.fromCharCode(O)}return C},je=(d,g)=>(d>>>=0)?Ot(H,d,g):"",ur=d=>{for(var g=0,_=0;_<d.length;++_){var C=d.charCodeAt(_);127>=C?g++:2047>=C?g+=2:55296<=C&&57343>=C?(g+=4,++_):g+=3}return g},Zt=(d,g,_,C)=>{if(_>>>=0,!(0<C))return 0;var O=_;C=_+C-1;for(var W=0;W<d.length;++W){var j=d.charCodeAt(W);if(55296<=j&&57343>=j){var Q=d.charCodeAt(++W);j=65536+((j&1023)<<10)|Q&1023}if(127>=j){if(_>=C)break;g[_++>>>0]=j}else{if(2047>=j){if(_+1>=C)break;g[_++>>>0]=192|j>>6}else{if(65535>=j){if(_+2>=C)break;g[_++>>>0]=224|j>>12}else{if(_+3>=C)break;g[_++>>>0]=240|j>>18,g[_++>>>0]=128|j>>12&63}g[_++>>>0]=128|j>>6&63}g[_++>>>0]=128|j&63}}return g[_>>>0]=0,_-O},kt=d=>d%4===0&&(d%100!==0||d%400===0),At=[0,31,60,91,121,152,182,213,244,274,305,335],Xt=[0,31,59,90,120,151,181,212,243,273,304,334],Qt=d=>{var g=ur(d)+1,_=tr(g);return _&&Zt(d,H,_,g),_},Vt=[],lr=(d,g)=>{Vt.length=0;for(var _;_=H[d++>>>0];){var C=_!=105;C&=_!=112,g+=C&&g%8?4:0,Vt.push(_==112?L[g>>>2>>>0]:_==105?z[g>>>2>>>0]:Ie[g>>>3>>>0]),g+=C?8:4}return Vt},pt={},dr=()=>{if(!Jt){var d={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l||"./this.program"},g;for(g in pt)pt[g]===void 0?delete d[g]:d[g]=pt[g];var _=[];for(g in d)_.push(`${g}=${d[g]}`);Jt=_}return Jt},Jt,Ke=[null,[],[]],Br=[31,29,31,30,31,30,31,31,30,31,30,31],Re=[31,28,31,30,31,30,31,31,30,31,30,31];function Dr(d){var g=Array(ur(d)+1);return Zt(d,g,0,g.length),g}function er(d,g,_,C){function O(P,ae,Ce){for(P=typeof P=="number"?P.toString():P||"";P.length<ae;)P=Ce[0]+P;return P}function W(P,ae){return O(P,ae,"0")}function j(P,ae){function Ce(Fr){return 0>Fr?-1:0<Fr?1:0}var bt;return(bt=Ce(P.getFullYear()-ae.getFullYear()))===0&&(bt=Ce(P.getMonth()-ae.getMonth()))===0&&(bt=Ce(P.getDate()-ae.getDate())),bt}function Q(P){switch(P.getDay()){case 0:return new Date(P.getFullYear()-1,11,29);case 1:return P;case 2:return new Date(P.getFullYear(),0,3);case 3:return new Date(P.getFullYear(),0,2);case 4:return new Date(P.getFullYear(),0,1);case 5:return new Date(P.getFullYear()-1,11,31);case 6:return new Date(P.getFullYear()-1,11,30)}}function oe(P){var ae=P.Ca;for(P=new Date(new Date(P.Da+1900,0,1).getTime());0<ae;){var Ce=P.getMonth(),bt=(kt(P.getFullYear())?Br:Re)[Ce];if(ae>bt-P.getDate())ae-=bt-P.getDate()+1,P.setDate(1),11>Ce?P.setMonth(Ce+1):(P.setMonth(0),P.setFullYear(P.getFullYear()+1));else{P.setDate(P.getDate()+ae);break}}return Ce=new Date(P.getFullYear()+1,0,4),ae=Q(new Date(P.getFullYear(),0,4)),Ce=Q(Ce),0>=j(ae,P)?0>=j(Ce,P)?P.getFullYear()+1:P.getFullYear():P.getFullYear()-1}d>>>=0,g>>>=0,_>>>=0,C>>>=0;var le=L[C+40>>>2>>>0];C={bb:z[C>>>2>>>0],ab:z[C+4>>>2>>>0],Ga:z[C+8>>>2>>>0],Ka:z[C+12>>>2>>>0],Ha:z[C+16>>>2>>>0],Da:z[C+20>>>2>>>0],xa:z[C+24>>>2>>>0],Ca:z[C+28>>>2>>>0],fb:z[C+32>>>2>>>0],$a:z[C+36>>>2>>>0],cb:le?je(le):""},_=je(_),le={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var me in le)_=_.replace(new RegExp(me,"g"),le[me]);var Pe="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ze="January February March April May June July August September October November December".split(" ");le={"%a":P=>Pe[P.xa].substring(0,3),"%A":P=>Pe[P.xa],"%b":P=>ze[P.Ha].substring(0,3),"%B":P=>ze[P.Ha],"%C":P=>W((P.Da+1900)/100|0,2),"%d":P=>W(P.Ka,2),"%e":P=>O(P.Ka,2," "),"%g":P=>oe(P).toString().substring(2),"%G":P=>oe(P),"%H":P=>W(P.Ga,2),"%I":P=>(P=P.Ga,P==0?P=12:12<P&&(P-=12),W(P,2)),"%j":P=>{for(var ae=0,Ce=0;Ce<=P.Ha-1;ae+=(kt(P.Da+1900)?Br:Re)[Ce++]);return W(P.Ka+ae,3)},"%m":P=>W(P.Ha+1,2),"%M":P=>W(P.ab,2),"%n":()=>` `,"%p":P=>0<=P.Ga&&12>P.Ga?"AM":"PM","%S":P=>W(P.bb,2),"%t":()=>" ","%u":P=>P.xa||7,"%U":P=>W(Math.floor((P.Ca+7-P.xa)/7),2),"%V":P=>{var ae=Math.floor((P.Ca+7-(P.xa+6)%7)/7);if(2>=(P.xa+371-P.Ca-2)%7&&ae++,ae)ae==53&&(Ce=(P.xa+371-P.Ca)%7,Ce==4||Ce==3&&kt(P.Da)||(ae=1));else{ae=52;var Ce=(P.xa+7-P.Ca-1)%7;(Ce==4||Ce==5&&kt(P.Da%400-1))&&ae++}return W(ae,2)},"%w":P=>P.xa,"%W":P=>W(Math.floor((P.Ca+7-(P.xa+6)%7)/7),2),"%y":P=>(P.Da+1900).toString().substring(2),"%Y":P=>P.Da+1900,"%z":P=>{P=P.$a;var ae=0<=P;return P=Math.abs(P)/60,(ae?"+":"-")+("0000"+(P/60*100+P%60)).slice(-4)},"%Z":P=>P.cb,"%%":()=>"%"},_=_.replace(/%%/g,"\0\0");for(me in le)_.includes(me)&&(_=_.replace(new RegExp(me,"g"),le[me](C)));return _=_.replace(/\0\0/g,"%"),me=Dr(_),me.length>g?0:(N.set(me,d>>>0),me.length-1)}var Pt=d=>{try{d()}catch(g){se(g)}};function Un(){var d=ee,g={};for(let[_,C]of Object.entries(d))g[_]=typeof C=="function"?function(){Tt.push(_);try{return C.apply(null,arguments)}finally{k||(Tt.pop(),ut&&ft===1&&Tt.length===0&&(ft=0,Pt($r),typeof Fibers<"u"&&Fibers.gb()))}}:C;return g}var ft=0,ut=null,te=0,Tt=[],cr={},Mr={},Ur=0,pr=null,Nr=[];function Wr(){return new Promise((d,g)=>{pr={resolve:d,reject:g}})}function Vr(){var d=tr(65548),g=d+12;L[d>>>2>>>0]=g,L[d+4>>>2>>>0]=g+65536,g=Tt[0];var _=cr[g];return _===void 0&&(_=Ur++,cr[g]=_,Mr[_]=g),z[d+8>>>2>>>0]=_,d}function Gr(d){if(!k){if(ft===0){var g=!1,_=!1;d((C=0)=>{if(!k&&(te=C,g=!0,_)){ft=2,Pt(()=>_r(ut)),typeof Browser<"u"&&Browser.Ia.Qa&&Browser.Ia.resume(),C=!1;try{var O=(0,ee[Mr[z[ut+8>>>2>>>0]]])()}catch(Q){O=Q,C=!0}var W=!1;if(!ut){var j=pr;j&&(pr=null,(C?j.reject:j.resolve)(O),W=!0)}if(C&&!W)throw O}}),_=!0,g||(ft=1,ut=Vr(),typeof Browser<"u"&&Browser.Ia.Qa&&Browser.Ia.pause(),Pt(()=>vr(ut)))}else ft===2?(ft=0,Pt(xr),hr(ut),ut=null,Nr.forEach(C=>{if(!k)try{C();try{U=U=C=U,r.onExit?.(C),k=!0,i(C,new Ve(C))}catch(O){O instanceof Ve||O=="unwind"||i(1,O)}}catch(O){O instanceof Ve||O=="unwind"||i(1,O)}})):se(`invalid state: ${ft}`);return te}}function fr(d){return Gr(g=>{d().then(g)})}var Hr={n:function(d,g,_){return fr(async()=>{await r.Ua(d,g,_)})},a:function(d,g,_){throw d>>>=0,new qe(d).eb(g>>>0,_>>>0),tt=d,Wt++,tt},g:function(){return 0},J:function(){},A:function(){},C:function(){},L:function(){return 0},H:function(){},D:function(){},G:function(){},l:function(){},B:function(){},y:function(){},I:function(){},z:function(){},m:()=>1,q:function(d,g,_){d=g+2097152>>>0<4194305-!!d?(d>>>0)+4294967296*g:NaN,_>>>=0,d=new Date(1e3*d),z[_>>>2>>>0]=d.getUTCSeconds(),z[_+4>>>2>>>0]=d.getUTCMinutes(),z[_+8>>>2>>>0]=d.getUTCHours(),z[_+12>>>2>>>0]=d.getUTCDate(),z[_+16>>>2>>>0]=d.getUTCMonth(),z[_+20>>>2>>>0]=d.getUTCFullYear()-1900,z[_+24>>>2>>>0]=d.getUTCDay(),z[_+28>>>2>>>0]=(d.getTime()-Date.UTC(d.getUTCFullYear(),0,1,0,0,0,0))/864e5|0},r:function(d,g,_){d=g+2097152>>>0<4194305-!!d?(d>>>0)+4294967296*g:NaN,_>>>=0,d=new Date(1e3*d),z[_>>>2>>>0]=d.getSeconds(),z[_+4>>>2>>>0]=d.getMinutes(),z[_+8>>>2>>>0]=d.getHours(),z[_+12>>>2>>>0]=d.getDate(),z[_+16>>>2>>>0]=d.getMonth(),z[_+20>>>2>>>0]=d.getFullYear()-1900,z[_+24>>>2>>>0]=d.getDay(),z[_+28>>>2>>>0]=(kt(d.getFullYear())?At:Xt)[d.getMonth()]+d.getDate()-1|0,z[_+36>>>2>>>0]=-(60*d.getTimezoneOffset()),g=new Date(d.getFullYear(),6,1).getTimezoneOffset();var C=new Date(d.getFullYear(),0,1).getTimezoneOffset();z[_+32>>>2>>>0]=(g!=C&&d.getTimezoneOffset()==Math.min(C,g))|0},s:function(d){d>>>=0;var g=new Date(z[d+20>>>2>>>0]+1900,z[d+16>>>2>>>0],z[d+12>>>2>>>0],z[d+8>>>2>>>0],z[d+4>>>2>>>0],z[d>>>2>>>0],0),_=z[d+32>>>2>>>0],C=g.getTimezoneOffset(),O=new Date(g.getFullYear(),6,1).getTimezoneOffset(),W=new Date(g.getFullYear(),0,1).getTimezoneOffset(),j=Math.min(W,O);return 0>_?z[d+32>>>2>>>0]=+(O!=W&&j==C):0<_!=(j==C)&&(O=Math.max(W,O),g.setTime(g.getTime()+6e4*((0<_?j:O)-C))),z[d+24>>>2>>>0]=g.getDay(),z[d+28>>>2>>>0]=(kt(g.getFullYear())?At:Xt)[g.getMonth()]+g.getDate()-1|0,z[d>>>2>>>0]=g.getSeconds(),z[d+4>>>2>>>0]=g.getMinutes(),z[d+8>>>2>>>0]=g.getHours(),z[d+12>>>2>>>0]=g.getDate(),z[d+16>>>2>>>0]=g.getMonth(),z[d+20>>>2>>>0]=g.getYear(),d=g.getTime(),isNaN(d)?(z[mr()>>>2>>>0]=61,d=-1):d/=1e3,gr((Fe=d,1<=+Math.abs(Fe)?0<Fe?+Math.floor(Fe/4294967296)>>>0:~~+Math.ceil((Fe-+(~~Fe>>>0))/4294967296)>>>0:0)),d>>>0},o:function(){return-52},p:function(){},w:function(d,g,_){function C(oe){return(oe=oe.toTimeString().match(/\(([A-Za-z ]+)\)$/))?oe[1]:"GMT"}_>>>=0;var O=new Date().getFullYear(),W=new Date(O,0,1),j=new Date(O,6,1);O=W.getTimezoneOffset();var Q=j.getTimezoneOffset();L[d>>>0>>>2>>>0]=60*Math.max(O,Q),z[g>>>0>>>2>>>0]=+(O!=Q),d=C(W),g=C(j),d=Qt(d),g=Qt(g),Q<O?(L[_>>>2>>>0]=d,L[_+4>>>2>>>0]=g):(L[_>>>2>>>0]=g,L[_+4>>>2>>>0]=d)},e:()=>{se("")},b:function(d,g,_){return d>>>=0,g=lr(g>>>0,_>>>0),It[d].apply(null,g)},i:function(d,g,_){return d>>>=0,g=lr(g>>>0,_>>>0),It[d].apply(null,g)},h:()=>Date.now(),x:function(){return 4294901760},c:()=>performance.now(),K:function(d,g,_){return g>>>=0,H.copyWithin(d>>>0>>>0,g>>>0,g+(_>>>0)>>>0)},u:function(d){d>>>=0;var g=H.length;if(4294901760<d)return!1;for(var _=1;4>=_;_*=2){var C=g*(1+.2/_);C=Math.min(C,d+100663296);var O=Math;C=Math.max(d,C);e:{O=(O.min.call(O,4294901760,C+(65536-C%65536)%65536)-A.buffer.byteLength+65535)/65536;try{A.grow(O),we();var W=1;break e}catch{}W=void 0}if(W)return!0}return!1},E:function(d,g){d>>>=0,g>>>=0;var _=0;return dr().forEach((C,O)=>{var W=g+_;for(O=L[d+4*O>>>2>>>0]=W,W=0;W<C.length;++W)N[O++>>>0>>>0]=C.charCodeAt(W);N[O>>>0>>>0]=0,_+=C.length+1}),0},F:function(d,g){d>>>=0,g>>>=0;var _=dr();L[d>>>2>>>0]=_.length;var C=0;return _.forEach(O=>C+=O.length+1),L[g>>>2>>>0]=C,0},f:()=>52,k:function(){return 52},t:function(){return 70},j:function(d,g,_,C){g>>>=0,_>>>=0,C>>>=0;for(var O=0,W=0;W<_;W++){var j=L[g>>>2>>>0],Q=L[g+4>>>2>>>0];g+=8;for(var oe=0;oe<Q;oe++){var le=H[j+oe>>>0],me=Ke[d];le===0||le===10?((d===1?v:E)(Ot(me,0)),me.length=0):me.push(le)}O+=Q}return L[C>>>2>>>0]=O,0},v:er,d:function(d,g,_,C){return er(d>>>0,g>>>0,_>>>0,C>>>0)}},ee=function(){function d(_){return ee=_.exports,ee=Un(),ee=Lr(),A=ee.M,we(),Ue.unshift(ee.N),xe--,xe==0&&(fe!==null&&(clearInterval(fe),fe=null),ue&&(_=ue,ue=null,_())),ee}var g={a:Hr};if(xe++,r.instantiateWasm)try{return r.instantiateWasm(g,d)}catch(_){E(`Module.instantiateWasm callback failed with error: ${_}`),n(_)}return et(g,function(_){d(_.instance)}).catch(n),{}}();r._OrtInit=(d,g)=>(r._OrtInit=ee.O)(d,g),r._OrtGetLastError=(d,g)=>(r._OrtGetLastError=ee.P)(d,g),r._OrtCreateSessionOptions=(d,g,_,C,O,W,j,Q,oe,le)=>(r._OrtCreateSessionOptions=ee.Q)(d,g,_,C,O,W,j,Q,oe,le),r._OrtAppendExecutionProvider=(d,g)=>(r._OrtAppendExecutionProvider=ee.R)(d,g),r._OrtAddFreeDimensionOverride=(d,g,_)=>(r._OrtAddFreeDimensionOverride=ee.S)(d,g,_),r._OrtAddSessionConfigEntry=(d,g,_)=>(r._OrtAddSessionConfigEntry=ee.T)(d,g,_),r._OrtReleaseSessionOptions=d=>(r._OrtReleaseSessionOptions=ee.U)(d),r._OrtCreateSession=(d,g,_)=>(r._OrtCreateSession=ee.V)(d,g,_),r._OrtReleaseSession=d=>(r._OrtReleaseSession=ee.W)(d),r._OrtGetInputOutputCount=(d,g,_)=>(r._OrtGetInputOutputCount=ee.X)(d,g,_),r._OrtGetInputName=(d,g)=>(r._OrtGetInputName=ee.Y)(d,g),r._OrtGetOutputName=(d,g)=>(r._OrtGetOutputName=ee.Z)(d,g),r._OrtFree=d=>(r._OrtFree=ee._)(d),r._OrtCreateTensor=(d,g,_,C,O,W)=>(r._OrtCreateTensor=ee.$)(d,g,_,C,O,W),r._OrtGetTensorData=(d,g,_,C,O)=>(r._OrtGetTensorData=ee.aa)(d,g,_,C,O),r._OrtReleaseTensor=d=>(r._OrtReleaseTensor=ee.ba)(d),r._OrtCreateRunOptions=(d,g,_,C)=>(r._OrtCreateRunOptions=ee.ca)(d,g,_,C),r._OrtAddRunConfigEntry=(d,g,_)=>(r._OrtAddRunConfigEntry=ee.da)(d,g,_),r._OrtReleaseRunOptions=d=>(r._OrtReleaseRunOptions=ee.ea)(d),r._OrtCreateBinding=d=>(r._OrtCreateBinding=ee.fa)(d),r._OrtBindInput=(d,g,_)=>(r._OrtBindInput=ee.ga)(d,g,_),r._OrtBindOutput=(d,g,_,C)=>(r._OrtBindOutput=ee.ha)(d,g,_,C),r._OrtClearBoundOutputs=d=>(r._OrtClearBoundOutputs=ee.ia)(d),r._OrtReleaseBinding=d=>(r._OrtReleaseBinding=ee.ja)(d),r._OrtRunWithBinding=(d,g,_,C,O)=>(r._OrtRunWithBinding=ee.ka)(d,g,_,C,O),r._OrtRun=(d,g,_,C,O,W,j,Q)=>(r._OrtRun=ee.la)(d,g,_,C,O,W,j,Q),r._OrtEndProfiling=d=>(r._OrtEndProfiling=ee.ma)(d),r._JsepOutput=(d,g,_)=>(r._JsepOutput=ee.na)(d,g,_),r._JsepGetNodeName=d=>(r._JsepGetNodeName=ee.oa)(d);var mr=()=>(mr=ee.pa)(),tr=r._malloc=d=>(tr=r._malloc=ee.qa)(d),hr=r._free=d=>(hr=r._free=ee.ra)(d),gr=d=>(gr=ee.ta)(d),yr=()=>(yr=ee.ua)(),br=d=>(br=ee.va)(d),wr=d=>(wr=ee.wa)(d),vr=d=>(vr=ee.ya)(d),$r=()=>($r=ee.za)(),_r=d=>(_r=ee.Aa)(d),xr=()=>(xr=ee.Ba)();r.___start_em_js=944151,r.___stop_em_js=944312;function Lr(){var d=ee;d=Object.assign({},d);var g=