@rqmii_immersive/agent-react-sdk 5.6.5 → 5.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Orb-B1DErA0O.cjs +4517 -0
- package/dist/Orb-B1DErA0O.cjs.map +1 -0
- package/dist/RqmiiAgentChat-C0ymqkkq.cjs +2 -0
- package/dist/RqmiiAgentChat-C0ymqkkq.cjs.map +1 -0
- package/dist/RqmiiCloudAvatarPlayer-CmovoCKk.cjs +2918 -0
- package/dist/RqmiiCloudAvatarPlayer-CmovoCKk.cjs.map +1 -0
- package/dist/RqmiiErrorBoundary-Byif85f5.cjs +2 -0
- package/dist/RqmiiErrorBoundary-Byif85f5.cjs.map +1 -0
- package/dist/embed/chunks/Orb-CBt2svdc.js +40903 -0
- package/dist/embed/chunks/Orb-CBt2svdc.js.map +1 -0
- package/dist/embed/chunks/RqmiiCloudAvatarPlayer-DpvI9bmI.js +3357 -0
- package/dist/embed/chunks/RqmiiCloudAvatarPlayer-DpvI9bmI.js.map +1 -0
- package/dist/embed/chunks/chat-box-avatar-DlUI3fDi.js +10 -0
- package/dist/embed/chunks/chat-box-avatar-DlUI3fDi.js.map +1 -0
- package/dist/embed/chunks/chat-box-text-and-voice-BgdFP0_P.js +112 -0
- package/dist/embed/chunks/chat-box-text-and-voice-BgdFP0_P.js.map +1 -0
- package/dist/embed/chunks/chat-box-voice-D0gPyOVt.js +74 -0
- package/dist/embed/chunks/chat-box-voice-D0gPyOVt.js.map +1 -0
- package/dist/embed/chunks/embed-core-B3d4u3wf.js +12623 -0
- package/dist/embed/chunks/embed-core-B3d4u3wf.js.map +1 -0
- package/dist/embed/chunks/highlighted-body-KPVGNVTW-CJl4AHHd.js +19 -0
- package/dist/embed/chunks/highlighted-body-KPVGNVTW-CJl4AHHd.js.map +1 -0
- package/dist/embed/chunks/mermaid-HWGCJPDP-DD9SRoUR.js +22773 -0
- package/dist/embed/chunks/mermaid-HWGCJPDP-DD9SRoUR.js.map +1 -0
- package/dist/embed/chunks/use-rqmii-vad-COqAsQsT.js +10225 -0
- package/dist/embed/chunks/use-rqmii-vad-COqAsQsT.js.map +1 -0
- package/dist/embed/core.js +6 -0
- package/dist/embed/core.js.map +1 -0
- package/dist/embed.js +2 -0
- package/dist/embed.js.map +1 -0
- package/dist/highlighted-body-KPVGNVTW-CSL27xRm.cjs +2 -0
- package/dist/highlighted-body-KPVGNVTW-CSL27xRm.cjs.map +1 -0
- package/dist/index.cjs +50 -0
- package/dist/index.cjs.map +1 -0
- package/dist/lazy.cjs +2 -0
- package/dist/lazy.cjs.map +1 -0
- package/dist/mermaid-HWGCJPDP-CssnmrD3.cjs +2 -0
- package/dist/mermaid-HWGCJPDP-CssnmrD3.cjs.map +1 -0
- package/dist/schedule-load-DbAlv7OH.cjs +2 -0
- package/dist/schedule-load-DbAlv7OH.cjs.map +1 -0
- package/dist/ui-1UzY5QCI.cjs +251 -0
- package/dist/ui-1UzY5QCI.cjs.map +1 -0
- package/dist/ui.cjs +2 -0
- package/dist/ui.cjs.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-rqmii-vad-COqAsQsT.js","sources":["../../../src/hooks/use-rqmii-voice.ts","../../../node_modules/@ricky0123/vad-web/dist/asset-path.js","../../../node_modules/@ricky0123/vad-web/dist/default-model-fetcher.js","../../../node_modules/@ricky0123/vad-web/dist/logging.js","../../../node_modules/@ricky0123/vad-web/dist/messages.js","../../../node_modules/@ricky0123/vad-web/dist/frame-processor.js","../../../node_modules/onnxruntime-web/dist/ort.min.js","../../../node_modules/@ricky0123/vad-web/dist/models/common.js","../../../node_modules/@ricky0123/vad-web/dist/models/legacy.js","../../../node_modules/@ricky0123/vad-web/dist/models/v5.js","../../../node_modules/@ricky0123/vad-web/dist/models/index.js","../../../node_modules/@ricky0123/vad-web/dist/resampler.js","../../../node_modules/@ricky0123/vad-web/dist/non-real-time-vad.js","../../../node_modules/@ricky0123/vad-web/dist/utils.js","../../../node_modules/onnxruntime-web/dist/ort.wasm.min.js","../../../node_modules/@ricky0123/vad-web/dist/real-time-vad.js","../../../node_modules/@ricky0123/vad-web/dist/index.js","../../../node_modules/@ricky0123/vad-react/dist/index.js","../../../src/hooks/use-rqmii-vad.ts"],"sourcesContent":["import { useRqmiiAgentContext } from '../provider/RqmiiAgentProvider';\n\nexport function useRqmiiVoice() {\n const ctx = useRqmiiAgentContext();\n return {\n sendAudioChunk: ctx.sendAudioChunk,\n endAudioStream: ctx.endAudioStream,\n isAudioPlaying: ctx.isAudioPlaying,\n transcript: ctx.transcript,\n partialTranscript: ctx.partialTranscript,\n interrupt: ctx.interrupt,\n resumeAudioPlayback: ctx.resumeAudioPlayback,\n pauseAudioPlayback: ctx.pauseAudioPlayback,\n attachAudioElement: ctx.attachAudioElement,\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.baseAssetPath = void 0;\n// nextjs@14 bundler may attempt to execute this during SSR and crash\nconst isWeb = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\nconst currentScript = isWeb\n ? window.document.currentScript\n : null;\nlet basePath = \"/\";\nif (currentScript) {\n basePath = currentScript.src\n .replace(/#.*$/, \"\")\n .replace(/\\?.*$/, \"\")\n .replace(/\\/[^/]+$/, \"/\");\n}\nexports.baseAssetPath = basePath;\n//# sourceMappingURL=asset-path.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultModelFetcher = void 0;\nconst defaultModelFetcher = (path) => {\n return fetch(path).then((model) => model.arrayBuffer());\n};\nexports.defaultModelFetcher = defaultModelFetcher;\n//# sourceMappingURL=default-model-fetcher.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.log = void 0;\nconst mkLogger = (level) => (message) => {\n console.log(`VAD | ${level} >`, message);\n};\nexports.log = {\n error: mkLogger(\"error\"),\n debug: mkLogger(\"debug\"),\n warn: mkLogger(\"warn\"),\n};\n//# sourceMappingURL=logging.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Message = void 0;\nvar Message;\n(function (Message) {\n Message[\"AudioFrame\"] = \"AUDIO_FRAME\";\n Message[\"SpeechStart\"] = \"SPEECH_START\";\n Message[\"VADMisfire\"] = \"VAD_MISFIRE\";\n Message[\"SpeechEnd\"] = \"SPEECH_END\";\n Message[\"SpeechStop\"] = \"SPEECH_STOP\";\n Message[\"SpeechRealStart\"] = \"SPEECH_REAL_START\";\n Message[\"FrameProcessed\"] = \"FRAME_PROCESSED\";\n})(Message || (exports.Message = Message = {}));\n//# sourceMappingURL=messages.js.map","\"use strict\";\n/*\nSome of this code, together with the default options found in index.ts,\nwere taken (or took inspiration) from https://github.com/snakers4/silero-vad\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FrameProcessor = exports.validateOptions = exports.defaultFrameProcessorOptions = void 0;\nconst logging_1 = require(\"./logging\");\nconst messages_1 = require(\"./messages\");\nexports.defaultFrameProcessorOptions = {\n positiveSpeechThreshold: 0.3,\n negativeSpeechThreshold: 0.25,\n preSpeechPadMs: 800,\n redemptionMs: 1400,\n minSpeechMs: 400,\n submitUserSpeechOnPause: false,\n};\nfunction validateOptions(options) {\n if (options.positiveSpeechThreshold < 0 ||\n options.positiveSpeechThreshold > 1) {\n logging_1.log.error(\"positiveSpeechThreshold should be a number between 0 and 1\");\n }\n if (options.negativeSpeechThreshold < 0 ||\n options.negativeSpeechThreshold > options.positiveSpeechThreshold) {\n logging_1.log.error(\"negativeSpeechThreshold should be between 0 and positiveSpeechThreshold\");\n }\n if (options.preSpeechPadMs < 0) {\n logging_1.log.error(\"preSpeechPadMs should be positive\");\n }\n if (options.redemptionMs < 0) {\n logging_1.log.error(\"redemptionMs should be positive\");\n }\n if (options.minSpeechMs < 0) {\n logging_1.log.error(\"minSpeechMs should be positive\");\n }\n}\nexports.validateOptions = validateOptions;\nconst concatArrays = (arrays) => {\n const sizes = arrays.reduce((out, next) => {\n out.push(out.at(-1) + next.length);\n return out;\n }, [0]);\n const outArray = new Float32Array(sizes.at(-1));\n arrays.forEach((arr, index) => {\n const place = sizes[index];\n outArray.set(arr, place);\n });\n return outArray;\n};\nfunction calculateFrameParams(options, msPerFrame) {\n const redemptionFrames = Math.floor(options.redemptionMs / msPerFrame);\n const preSpeechPadFrames = Math.floor(options.preSpeechPadMs / msPerFrame);\n const minSpeechFrames = Math.floor(options.minSpeechMs / msPerFrame);\n return { redemptionFrames, preSpeechPadFrames, minSpeechFrames };\n}\nclass FrameProcessor {\n constructor(modelProcessFunc, modelResetFunc, options, msPerFrame) {\n this.modelProcessFunc = modelProcessFunc;\n this.modelResetFunc = modelResetFunc;\n this.options = options;\n this.msPerFrame = msPerFrame;\n this.speaking = false;\n this.redemptionCounter = 0;\n this.speechFrameCount = 0;\n this.active = false;\n this.speechRealStartFired = false;\n this.setOptions = (update) => {\n this.options = { ...this.options, ...update };\n const { redemptionFrames, preSpeechPadFrames, minSpeechFrames } = calculateFrameParams(this.options, this.msPerFrame);\n this.redemptionFrames = redemptionFrames;\n this.preSpeechPadFrames = preSpeechPadFrames;\n this.minSpeechFrames = minSpeechFrames;\n };\n this.reset = () => {\n this.speaking = false;\n this.speechRealStartFired = false;\n this.audioBuffer = [];\n this.modelResetFunc();\n this.redemptionCounter = 0;\n this.speechFrameCount = 0;\n };\n this.pause = (handleEvent) => {\n this.active = false;\n if (this.options.submitUserSpeechOnPause) {\n this.endSegment(handleEvent);\n }\n else {\n this.reset();\n }\n };\n this.resume = () => {\n this.active = true;\n };\n this.endSegment = (handleEvent) => {\n const audioBuffer = this.audioBuffer;\n this.audioBuffer = [];\n const speaking = this.speaking;\n this.reset();\n if (speaking) {\n const speechFrameCount = audioBuffer.reduce((acc, item) => {\n return item.isSpeech ? acc + 1 : acc;\n }, 0);\n if (speechFrameCount >= this.minSpeechFrames) {\n const audio = concatArrays(audioBuffer.map((item) => item.frame));\n handleEvent({ msg: messages_1.Message.SpeechEnd, audio });\n }\n else {\n handleEvent({ msg: messages_1.Message.VADMisfire });\n }\n }\n return {};\n };\n this.process = async (frame, handleEvent) => {\n if (!this.active) {\n return;\n }\n const probs = await this.modelProcessFunc(frame);\n const isSpeech = probs.isSpeech >= this.options.positiveSpeechThreshold;\n handleEvent({ probs, msg: messages_1.Message.FrameProcessed, frame });\n this.audioBuffer.push({\n frame,\n isSpeech,\n });\n if (isSpeech) {\n this.speechFrameCount++;\n this.redemptionCounter = 0;\n }\n if (isSpeech && !this.speaking) {\n this.speaking = true;\n handleEvent({ msg: messages_1.Message.SpeechStart });\n }\n if (this.speaking &&\n this.speechFrameCount === this.minSpeechFrames &&\n !this.speechRealStartFired) {\n this.speechRealStartFired = true;\n handleEvent({ msg: messages_1.Message.SpeechRealStart });\n }\n if (probs.isSpeech < this.options.negativeSpeechThreshold &&\n this.speaking &&\n ++this.redemptionCounter >= this.redemptionFrames) {\n this.redemptionCounter = 0;\n this.speechFrameCount = 0;\n this.speaking = false;\n this.speechRealStartFired = false;\n const audioBuffer = this.audioBuffer;\n this.audioBuffer = [];\n const speechFrameCount = audioBuffer.reduce((acc, item) => {\n return item.isSpeech ? acc + 1 : acc;\n }, 0);\n if (speechFrameCount >= this.minSpeechFrames) {\n const audio = concatArrays(audioBuffer.map((item) => item.frame));\n handleEvent({ msg: messages_1.Message.SpeechEnd, audio });\n }\n else {\n handleEvent({ msg: messages_1.Message.VADMisfire });\n }\n }\n if (!this.speaking) {\n while (this.audioBuffer.length > this.preSpeechPadFrames) {\n this.audioBuffer.shift();\n }\n this.speechFrameCount = 0;\n }\n };\n this.audioBuffer = [];\n const { redemptionFrames, preSpeechPadFrames, minSpeechFrames } = calculateFrameParams(this.options, this.msPerFrame);\n this.redemptionFrames = redemptionFrames;\n this.preSpeechPadFrames = preSpeechPadFrames;\n this.minSpeechFrames = minSpeechFrames;\n this.reset();\n }\n}\nexports.FrameProcessor = FrameProcessor;\n//# sourceMappingURL=frame-processor.js.map","/*!\n * ONNX Runtime Web v1.26.0\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\"use strict\";var ort=(()=>{var $n=Object.defineProperty;var Nu=Object.getOwnPropertyDescriptor;var Lu=Object.getOwnPropertyNames;var Wu=Object.prototype.hasOwnProperty;var vn=(e=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(e,{get:(t,n)=>(typeof require<\"u\"?require:t)[n]}):e)(function(e){if(typeof require<\"u\")return require.apply(this,arguments);throw Error('Dynamic require of \"'+e+'\" is not supported')});var k=(e,t)=>()=>(e&&(t=e(e=0)),t);var rt=(e,t)=>{for(var n in t)$n(e,n,{get:t[n],enumerable:!0})},Gu=(e,t,n,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of Lu(t))!Wu.call(e,o)&&o!==n&&$n(e,o,{get:()=>t[o],enumerable:!(r=Nu(t,o))||r.enumerable});return e};var ct=e=>Gu($n({},\"__esModule\",{value:!0}),e);var Tt,Ze,Ge,Hu,br,xn=k(()=>{\"use strict\";Tt=new Map,Ze=[],Ge=(e,t,n)=>{if(t&&typeof t.init==\"function\"&&typeof t.createInferenceSessionHandler==\"function\"){let r=Tt.get(e);if(r===void 0)Tt.set(e,{backend:t,priority:n});else{if(r.priority>n)return;if(r.priority===n&&r.backend!==t)throw new Error(`cannot register backend \"${e}\" using priority ${n}`)}if(n>=0){let o=Ze.indexOf(e);o!==-1&&Ze.splice(o,1);for(let i=0;i<Ze.length;i++)if(Tt.get(Ze[i]).priority<=n){Ze.splice(i,0,e);return}Ze.push(e)}return}throw new TypeError(\"not a valid backend\")},Hu=async e=>{let t=Tt.get(e);if(!t)return\"backend not found.\";if(t.initialized)return t.backend;if(t.aborted)return t.error;{let n=!!t.initPromise;try{return n||(t.initPromise=t.backend.init(e)),await t.initPromise,t.initialized=!0,t.backend}catch(r){return n||(t.error=`${r}`,t.aborted=!0),t.error}finally{delete t.initPromise}}},br=async e=>{let t=e.executionProviders||[],n=t.map(u=>typeof u==\"string\"?u:u.name),r=n.length===0?Ze:n,o,i=[],s=new Set;for(let u of r){let d=await Hu(u);typeof d==\"string\"?i.push({name:u,err:d}):(o||(o=d),o===d&&s.add(u))}if(!o)throw new Error(`no available backend found. ERR: ${i.map(u=>`[${u.name}] ${u.err}`).join(\", \")}`);for(let{name:u,err:d}of i)n.includes(u)&&console.warn(`removing requested execution provider \"${u}\" from session options because it is not available: ${d}`);let a=t.filter(u=>s.has(typeof u==\"string\"?u:u.name));return[o,new Proxy(e,{get:(u,d)=>d===\"executionProviders\"?a:Reflect.get(u,d)})]}});var _r=k(()=>{\"use strict\";xn()});var wr,$r=k(()=>{\"use strict\";wr=\"1.26.0\"});var vr,ce,Sn=k(()=>{\"use strict\";$r();vr=\"warning\",ce={wasm:{},webgl:{},webgpu:{},versions:{common:wr},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}`);vr=e}},get logLevel(){return vr}};Object.defineProperty(ce,\"logLevel\",{enumerable:!0})});var te,xr=k(()=>{\"use strict\";Sn();te=ce});var Sr,Tr,Ir=k(()=>{\"use strict\";Sr=(e,t)=>{let n=typeof document<\"u\"?document.createElement(\"canvas\"):new OffscreenCanvas(1,1);n.width=e.dims[3],n.height=e.dims[2];let r=n.getContext(\"2d\");if(r!=null){let o,i;t?.tensorLayout!==void 0&&t.tensorLayout===\"NHWC\"?(o=e.dims[2],i=e.dims[3]):(o=e.dims[3],i=e.dims[2]);let s=t?.format!==void 0?t.format:\"RGB\",a=t?.norm,u,d;a===void 0||a.mean===void 0?u=[255,255,255,255]:typeof a.mean==\"number\"?u=[a.mean,a.mean,a.mean,a.mean]:(u=[a.mean[0],a.mean[1],a.mean[2],0],a.mean[3]!==void 0&&(u[3]=a.mean[3])),a===void 0||a.bias===void 0?d=[0,0,0,0]:typeof a.bias==\"number\"?d=[a.bias,a.bias,a.bias,a.bias]:(d=[a.bias[0],a.bias[1],a.bias[2],0],a.bias[3]!==void 0&&(d[3]=a.bias[3]));let l=i*o,c=0,p=l,f=l*2,m=-1;s===\"RGBA\"?(c=0,p=l,f=l*2,m=l*3):s===\"RGB\"?(c=0,p=l,f=l*2):s===\"RBG\"&&(c=0,f=l,p=l*2);for(let h=0;h<i;h++)for(let _=0;_<o;_++){let y=(e.data[c++]-d[0])*u[0],g=(e.data[p++]-d[1])*u[1],b=(e.data[f++]-d[2])*u[2],w=m===-1?255:(e.data[m++]-d[3])*u[3];r.fillStyle=\"rgba(\"+y+\",\"+g+\",\"+b+\",\"+w+\")\",r.fillRect(_,h,1,1)}if(\"toDataURL\"in n)return n.toDataURL();throw new Error(\"toDataURL is not supported\")}else throw new Error(\"Can not access image data\")},Tr=(e,t)=>{let n=typeof document<\"u\"?document.createElement(\"canvas\").getContext(\"2d\"):new OffscreenCanvas(1,1).getContext(\"2d\"),r;if(n!=null){let o,i,s;t?.tensorLayout!==void 0&&t.tensorLayout===\"NHWC\"?(o=e.dims[2],i=e.dims[1],s=e.dims[3]):(o=e.dims[3],i=e.dims[2],s=e.dims[1]);let a=t!==void 0&&t.format!==void 0?t.format:\"RGB\",u=t?.norm,d,l;u===void 0||u.mean===void 0?d=[255,255,255,255]:typeof u.mean==\"number\"?d=[u.mean,u.mean,u.mean,u.mean]:(d=[u.mean[0],u.mean[1],u.mean[2],255],u.mean[3]!==void 0&&(d[3]=u.mean[3])),u===void 0||u.bias===void 0?l=[0,0,0,0]:typeof u.bias==\"number\"?l=[u.bias,u.bias,u.bias,u.bias]:(l=[u.bias[0],u.bias[1],u.bias[2],0],u.bias[3]!==void 0&&(l[3]=u.bias[3]));let c=i*o;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 p=4,f=0,m=1,h=2,_=3,y=0,g=c,b=c*2,w=-1;a===\"RGBA\"?(y=0,g=c,b=c*2,w=c*3):a===\"RGB\"?(y=0,g=c,b=c*2):a===\"RBG\"&&(y=0,b=c,g=c*2),r=n.createImageData(o,i);for(let v=0;v<i*o;f+=p,m+=p,h+=p,_+=p,v++)r.data[f]=(e.data[y++]-l[0])*d[0],r.data[m]=(e.data[g++]-l[1])*d[1],r.data[h]=(e.data[b++]-l[2])*d[2],r.data[_]=w===-1?255:(e.data[w++]-l[3])*d[3]}else throw new Error(\"Can not access image data\");return r}});var Tn,Cr,Ar,Er,kr,Pr,zr=k(()=>{\"use strict\";It();Tn=(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:n,width:r}=t,o=t.norm??{mean:255,bias:0},i,s;typeof o.mean==\"number\"?i=[o.mean,o.mean,o.mean,o.mean]:i=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias==\"number\"?s=[o.bias,o.bias,o.bias,o.bias]:s=[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let a=t.format!==void 0?t.format:\"RGBA\",u=t.tensorFormat!==void 0&&t.tensorFormat!==void 0?t.tensorFormat:\"RGB\",d=n*r,l=u===\"RGBA\"?new Float32Array(d*4):new Float32Array(d*3),c=4,p=0,f=1,m=2,h=3,_=0,y=d,g=d*2,b=-1;a===\"RGB\"&&(c=3,p=0,f=1,m=2,h=-1),u===\"RGBA\"?b=d*3:u===\"RBG\"?(_=0,g=d,y=d*2):u===\"BGR\"&&(g=0,y=d,_=d*2);for(let v=0;v<d;v++,p+=c,m+=c,f+=c,h+=c)l[_++]=(e[p]+s[0])/i[0],l[y++]=(e[f]+s[1])/i[1],l[g++]=(e[m]+s[2])/i[2],b!==-1&&h!==-1&&(l[b++]=(e[h]+s[3])/i[3]);return u===\"RGBA\"?new fe(\"float32\",l,[1,4,n,r]):new fe(\"float32\",l,[1,3,n,r])},Cr=async(e,t)=>{let n=typeof HTMLImageElement<\"u\"&&e instanceof HTMLImageElement,r=typeof ImageData<\"u\"&&e instanceof ImageData,o=typeof ImageBitmap<\"u\"&&e instanceof ImageBitmap,i=typeof e==\"string\",s,a=t??{},u=()=>{if(typeof document<\"u\")return document.createElement(\"canvas\");if(typeof OffscreenCanvas<\"u\")return new OffscreenCanvas(1,1);throw new Error(\"Canvas is not supported\")},d=l=>typeof HTMLCanvasElement<\"u\"&&l instanceof HTMLCanvasElement||l instanceof OffscreenCanvas?l.getContext(\"2d\"):null;if(n){let l=u();l.width=e.width,l.height=e.height;let c=d(l);if(c!=null){let p=e.height,f=e.width;if(t!==void 0&&t.resizedHeight!==void 0&&t.resizedWidth!==void 0&&(p=t.resizedHeight,f=t.resizedWidth),t!==void 0){if(a=t,t.tensorFormat!==void 0)throw new Error(\"Image input config format must be RGBA for HTMLImageElement\");a.tensorFormat=\"RGBA\",a.height=p,a.width=f}else a.tensorFormat=\"RGBA\",a.height=p,a.width=f;c.drawImage(e,0,0),s=c.getImageData(0,0,f,p).data}else throw new Error(\"Can not access image data\")}else if(r){let l,c;if(t!==void 0&&t.resizedWidth!==void 0&&t.resizedHeight!==void 0?(l=t.resizedHeight,c=t.resizedWidth):(l=e.height,c=e.width),t!==void 0&&(a=t),a.format=\"RGBA\",a.height=l,a.width=c,t!==void 0){let p=u();p.width=c,p.height=l;let f=d(p);if(f!=null)f.putImageData(e,0,0),s=f.getImageData(0,0,c,l).data;else throw new Error(\"Can not access image data\")}else s=e.data}else if(o){if(t===void 0)throw new Error(\"Please provide image config with format for Imagebitmap\");let l=u();l.width=e.width,l.height=e.height;let c=d(l);if(c!=null){let p=e.height,f=e.width;return c.drawImage(e,0,0,f,p),s=c.getImageData(0,0,f,p).data,a.height=p,a.width=f,Tn(s,a)}else throw new Error(\"Can not access image data\")}else{if(i)return new Promise((l,c)=>{let p=u(),f=d(p);if(!e||!f)return c();let m=new Image;m.crossOrigin=\"Anonymous\",m.src=e,m.onload=()=>{p.width=m.width,p.height=m.height,f.drawImage(m,0,0,p.width,p.height);let h=f.getImageData(0,0,p.width,p.height);a.height=p.height,a.width=p.width,l(Tn(h.data,a))}});throw new Error(\"Input data provided is not supported - aborted tensor creation\")}if(s!==void 0)return Tn(s,a);throw new Error(\"Input data provided is not supported - aborted tensor creation\")},Ar=(e,t)=>{let{width:n,height:r,download:o,dispose:i}=t,s=[1,r,n,4];return new fe({location:\"texture\",type:\"float32\",texture:e,dims:s,download:o,dispose:i})},Er=(e,t)=>{let{dataType:n,dims:r,download:o,dispose:i}=t;return new fe({location:\"gpu-buffer\",type:n??\"float32\",gpuBuffer:e,dims:r,download:o,dispose:i})},kr=(e,t)=>{let{dataType:n,dims:r,download:o,dispose:i}=t;return new fe({location:\"ml-tensor\",type:n??\"float32\",mlTensor:e,dims:r,download:o,dispose:i})},Pr=(e,t,n)=>new fe({location:\"cpu-pinned\",type:e,data:t,dims:n??[t.length]})});var Qe,pt,Br,Dr,Or=k(()=>{\"use strict\";Qe=new Map([[\"float32\",Float32Array],[\"uint8\",Uint8Array],[\"int8\",Int8Array],[\"uint16\",Uint16Array],[\"int16\",Int16Array],[\"int32\",Int32Array],[\"bool\",Uint8Array],[\"float64\",Float64Array],[\"uint32\",Uint32Array],[\"int4\",Uint8Array],[\"uint4\",Uint8Array]]),pt=new Map([[Float32Array,\"float32\"],[Uint8Array,\"uint8\"],[Int8Array,\"int8\"],[Uint16Array,\"uint16\"],[Int16Array,\"int16\"],[Int32Array,\"int32\"],[Float64Array,\"float64\"],[Uint32Array,\"uint32\"]]),Br=!1,Dr=()=>{if(!Br){Br=!0;let e=typeof BigInt64Array<\"u\"&&BigInt64Array.from,t=typeof BigUint64Array<\"u\"&&BigUint64Array.from,n=globalThis.Float16Array,r=typeof n<\"u\"&&n.from;e&&(Qe.set(\"int64\",BigInt64Array),pt.set(BigInt64Array,\"int64\")),t&&(Qe.set(\"uint64\",BigUint64Array),pt.set(BigUint64Array,\"uint64\")),r?(Qe.set(\"float16\",n),pt.set(n,\"float16\")):Qe.set(\"float16\",Uint16Array)}}});var Mr,Ur,Rr=k(()=>{\"use strict\";It();Mr=e=>{let t=1;for(let n=0;n<e.length;n++){let r=e[n];if(typeof r!=\"number\"||!Number.isSafeInteger(r))throw new TypeError(`dims[${n}] must be an integer, got: ${r}`);if(r<0)throw new RangeError(`dims[${n}] must be a non-negative integer, got: ${r}`);t*=r}return t},Ur=(e,t)=>{switch(e.location){case\"cpu\":return new fe(e.type,e.data,t);case\"cpu-pinned\":return new fe({location:\"cpu-pinned\",data:e.data,type:e.type,dims:t});case\"texture\":return new fe({location:\"texture\",texture:e.texture,type:e.type,dims:t});case\"gpu-buffer\":return new fe({location:\"gpu-buffer\",gpuBuffer:e.gpuBuffer,type:e.type,dims:t});case\"ml-tensor\":return new fe({location:\"ml-tensor\",mlTensor:e.mlTensor,type:e.type,dims:t});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}});var fe,It=k(()=>{\"use strict\";Ir();zr();Or();Rr();fe=class{constructor(t,n,r){Dr();let o,i;if(typeof t==\"object\"&&\"location\"in t)switch(this.dataLocation=t.location,o=t.type,i=t.dims,t.location){case\"cpu-pinned\":{let a=Qe.get(o);if(!a)throw new TypeError(`unsupported type \"${o}\" to create tensor from pinned buffer`);if(!(t.data instanceof a))throw new TypeError(`buffer should be of type ${a.name}`);this.cpuData=t.data;break}case\"texture\":{if(o!==\"float32\")throw new TypeError(`unsupported type \"${o}\" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case\"gpu-buffer\":{if(o!==\"float32\"&&o!==\"float16\"&&o!==\"int32\"&&o!==\"int64\"&&o!==\"uint32\"&&o!==\"uint8\"&&o!==\"bool\"&&o!==\"uint4\"&&o!==\"int4\")throw new TypeError(`unsupported type \"${o}\" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}case\"ml-tensor\":{if(o!==\"float32\"&&o!==\"float16\"&&o!==\"int32\"&&o!==\"int64\"&&o!==\"uint32\"&&o!==\"uint64\"&&o!==\"int8\"&&o!==\"uint8\"&&o!==\"bool\"&&o!==\"uint4\"&&o!==\"int4\")throw new TypeError(`unsupported type \"${o}\" 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 a,u;if(typeof t==\"string\")if(o=t,u=r,t===\"string\"){if(!Array.isArray(n))throw new TypeError(\"A string tensor's data must be a string array.\");a=n}else{let d=Qe.get(t);if(d===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(n)){if(t===\"float16\"&&d===Uint16Array||t===\"uint4\"||t===\"int4\")throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${d.name} as data.`);t===\"uint64\"||t===\"int64\"?a=d.from(n,BigInt):a=d.from(n)}else if(n instanceof d)a=n;else if(n instanceof Uint8ClampedArray)if(t===\"uint8\")a=Uint8Array.from(n);else throw new TypeError(\"A Uint8ClampedArray tensor's data must be type of uint8\");else if(t===\"float16\"&&n instanceof Uint16Array&&d!==Uint16Array)a=new globalThis.Float16Array(n.buffer,n.byteOffset,n.length);else throw new TypeError(`A ${o} tensor's data must be type of ${d}`)}else if(u=n,Array.isArray(t)){if(t.length===0)throw new TypeError(\"Tensor type cannot be inferred from an empty array.\");let d=typeof t[0];if(d===\"string\")o=\"string\",a=t;else if(d===\"boolean\")o=\"bool\",a=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${d}.`)}else if(t instanceof Uint8ClampedArray)o=\"uint8\",a=Uint8Array.from(t);else{let d=pt.get(t.constructor);if(d===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);o=d,a=t}if(u===void 0)u=[a.length];else if(!Array.isArray(u))throw new TypeError(\"A tensor's dims must be a number array\");i=u,this.cpuData=a,this.dataLocation=\"cpu\"}let s=Mr(i);if(this.cpuData&&s!==this.cpuData.length&&!((o===\"uint4\"||o===\"int4\")&&Math.ceil(s/2)===this.cpuData.length))throw new Error(`Tensor's size(${s}) does not match data length(${this.cpuData.length}).`);this.type=o,this.dims=i,this.size=s}static async fromImage(t,n){return Cr(t,n)}static fromTexture(t,n){return Ar(t,n)}static fromGpuBuffer(t,n){return Er(t,n)}static fromMLTensor(t,n){return kr(t,n)}static fromPinnedBuffer(t,n,r){return Pr(t,n,r)}toDataURL(t){return Sr(this,t)}toImageData(t){return Tr(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 n=await this.downloader();return this.downloader=void 0,this.dataLocation=\"cpu\",this.cpuData=n,t&&this.disposer&&(this.disposer(),this.disposer=void 0),n}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 Ur(this,t)}}});var xe,In=k(()=>{\"use strict\";It();xe=fe});var mt,Vr,be,ye,Re,Ve,Cn=k(()=>{\"use strict\";Sn();mt=(e,t)=>{(typeof ce.trace>\"u\"?!ce.wasm.trace:!ce.trace)||console.timeStamp(`${e}::ORT::${t}`)},Vr=(e,t)=>{let n=new Error().stack?.split(/\\r\\n|\\r|\\n/g)||[],r=!1;for(let o=0;o<n.length;o++){if(r&&!n[o].includes(\"TRACE_FUNC\")){let i=`FUNC_${e}::${n[o].trim().split(\" \")[1]}`;t&&(i+=`::${t}`),mt(\"CPU\",i);return}n[o].includes(\"TRACE_FUNC\")&&(r=!0)}},be=e=>{(typeof ce.trace>\"u\"?!ce.wasm.trace:!ce.trace)||Vr(\"BEGIN\",e)},ye=e=>{(typeof ce.trace>\"u\"?!ce.wasm.trace:!ce.trace)||Vr(\"END\",e)},Re=e=>{(typeof ce.trace>\"u\"?!ce.wasm.trace:!ce.trace)||console.time(`ORT::${e}`)},Ve=e=>{(typeof ce.trace>\"u\"?!ce.wasm.trace:!ce.trace)||console.timeEnd(`ORT::${e}`)}});var Ct,Nr=k(()=>{\"use strict\";xn();In();Cn();Ct=class e{constructor(t){this.handler=t}async run(t,n,r){be(),Re(\"InferenceSession.run\");let o={},i={};if(typeof t!=\"object\"||t===null||t instanceof xe||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 n==\"object\"){if(n===null)throw new TypeError(\"Unexpected argument[1]: cannot be null.\");if(n instanceof xe)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.\");s=!1;for(let d of n){if(typeof d!=\"string\")throw new TypeError(\"'fetches' must be a string array or an object.\");if(this.outputNames.indexOf(d)===-1)throw new RangeError(`'fetches' contains invalid output name: ${d}.`);o[d]=null}if(typeof r==\"object\"&&r!==null)i=r;else if(typeof r<\"u\")throw new TypeError(\"'options' must be an object.\")}else{let d=!1,l=Object.getOwnPropertyNames(n);for(let c of this.outputNames)if(l.indexOf(c)!==-1){let p=n[c];(p===null||p instanceof xe)&&(d=!0,s=!1,o[c]=p)}if(d){if(typeof r==\"object\"&&r!==null)i=r;else if(typeof r<\"u\")throw new TypeError(\"'options' must be an object.\")}else i=n}}else if(typeof n<\"u\")throw new TypeError(\"Unexpected argument[1]: must be 'fetches' or 'options'.\");for(let d of this.inputNames)if(typeof t[d]>\"u\")throw new Error(`input '${d}' is missing in 'feeds'.`);if(s)for(let d of this.outputNames)o[d]=null;let a=await this.handler.run(t,o,i),u={};for(let d in a)if(Object.hasOwnProperty.call(a,d)){let l=a[d];l instanceof xe?u[d]=l:u[d]=new xe(l.type,l.data,l.dims)}return Ve(\"InferenceSession.run\"),ye(),u}async release(){return this.handler.dispose()}static async create(t,n,r,o){be(),Re(\"InferenceSession.create\");let i,s={};if(typeof t==\"string\"){if(i=t,typeof n==\"object\"&&n!==null)s=n;else if(typeof n<\"u\")throw new TypeError(\"'options' must be an object.\")}else if(t instanceof Uint8Array){if(i=t,typeof n==\"object\"&&n!==null)s=n;else if(typeof n<\"u\")throw new TypeError(\"'options' must be an object.\")}else if(t instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&t instanceof SharedArrayBuffer){let l=t,c=0,p=t.byteLength;if(typeof n==\"object\"&&n!==null)s=n;else if(typeof n==\"number\"){if(c=n,!Number.isSafeInteger(c))throw new RangeError(\"'byteOffset' must be an integer.\");if(c<0||c>=l.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${l.byteLength}).`);if(p=t.byteLength-c,typeof r==\"number\"){if(p=r,!Number.isSafeInteger(p))throw new RangeError(\"'byteLength' must be an integer.\");if(p<=0||c+p>l.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${l.byteLength-c}].`);if(typeof o==\"object\"&&o!==null)s=o;else if(typeof o<\"u\")throw new TypeError(\"'options' must be an object.\")}else if(typeof r<\"u\")throw new TypeError(\"'byteLength' must be a number.\")}else if(typeof n<\"u\")throw new TypeError(\"'options' must be an object.\");i=new Uint8Array(l,c,p)}else throw new TypeError(\"Unexpected argument[0]: must be 'path' or 'buffer'.\");let[a,u]=await br(s),d=await a.createInferenceSessionHandler(i,u);return Ve(\"InferenceSession.create\"),ye(),new e(d)}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 Lr,Wr=k(()=>{\"use strict\";Nr();Lr=Ct});var Gr=k(()=>{\"use strict\"});var Hr=k(()=>{\"use strict\"});var Fr=k(()=>{\"use strict\"});var qr=k(()=>{\"use strict\"});var An={};rt(An,{InferenceSession:()=>Lr,TRACE:()=>mt,TRACE_EVENT_BEGIN:()=>Re,TRACE_EVENT_END:()=>Ve,TRACE_FUNC_BEGIN:()=>be,TRACE_FUNC_END:()=>ye,Tensor:()=>xe,env:()=>te,registerBackend:()=>Ge});var we=k(()=>{\"use strict\";_r();xr();Wr();In();Gr();Hr();Cn();Fr();qr()});var At=k(()=>{\"use strict\"});var Qr={};rt(Qr,{default:()=>Fu});var jr,Zr,Fu,Xr=k(()=>{\"use strict\";En();He();Et();jr=\"ort-wasm-proxy-worker\",Zr=globalThis.self?.name===jr;Zr&&(self.onmessage=e=>{let{type:t,in:n}=e.data;try{switch(t){case\"init-wasm\":kt(n.wasm).then(()=>{Pt(n).then(()=>{postMessage({type:t})},r=>{postMessage({type:t,err:r})})},r=>{postMessage({type:t,err:r})});break;case\"init-ep\":{let{epName:r,env:o}=n;zt(o,r).then(()=>{postMessage({type:t})},i=>{postMessage({type:t,err:i})});break}case\"copy-from\":{let{buffer:r}=n,o=ft(r);postMessage({type:t,out:o});break}case\"create\":{let{model:r,options:o}=n;Bt(r,o).then(i=>{postMessage({type:t,out:i})},i=>{postMessage({type:t,err:i})});break}case\"release\":Dt(n),postMessage({type:t});break;case\"run\":{let{sessionId:r,inputIndices:o,inputs:i,outputIndices:s,options:a}=n;Ot(r,o,i,s,new Array(s.length).fill(null),a).then(u=>{u.some(d=>d[3]!==\"cpu\")?postMessage({type:t,err:\"Proxy does not support non-cpu tensor location.\"}):postMessage({type:t,out:u},Ut([...i,...u]))},u=>{postMessage({type:t,err:u})});break}case\"end-profiling\":Mt(n),postMessage({type:t});break;default:}}catch(r){postMessage({type:t,err:r})}});Fu=Zr?null:e=>new Worker(e??$e,{type:\"classic\",name:jr})});var qu,Ku,$e,Rt,kn,ju,Zu,eo,Qu,Yr,to,Jr,no,Et=k(()=>{\"use strict\";At();qu=typeof location>\"u\"?void 0:location.origin,Ku=()=>{if(!!1)return typeof document<\"u\"?document.currentScript?.src:typeof self<\"u\"?self.location?.href:void 0},$e=Ku(),Rt=()=>{if($e&&!$e.startsWith(\"blob:\"))return $e.substring(0,$e.lastIndexOf(\"/\")+1)},kn=(e,t)=>{try{let n=t??$e;return(n?new URL(e,n):new URL(e)).origin===qu}catch{return!1}},ju=(e,t)=>{let n=t??$e;try{return(n?new URL(e,n):new URL(e)).href}catch{return}},Zu=(e,t)=>`${t??\"./\"}${e}`,eo=async e=>{let n=await(await fetch(e,{credentials:\"same-origin\"})).blob();return URL.createObjectURL(n)},Qu=async e=>(await import(/*webpackIgnore:true*/ /*@vite-ignore*/e)).default,Yr=(Xr(),ct(Qr)).default,to=async()=>{if(!$e)throw new Error(\"Failed to load proxy worker: cannot determine the script source URL.\");if(kn($e))return[void 0,Yr()];let e=await eo($e);return[e,Yr(e)]},Jr=void 0,no=async(e,t,n,r)=>{let o=Jr&&!(e||t);if(o)if($e)o=kn($e)||r&&!n;else if(r&&!n)o=!0;else throw new Error(\"cannot determine the script source URL.\");if(o)return[void 0,Jr];{let i=\"ort-wasm-simd-threaded.jsep.mjs\",s=e??ju(i,t),a=!!1&&n&&s&&!kn(s,t),u=a?await eo(s):s??Zu(i,t);return[a?u:void 0,await Qu(u)]}}});var Pn,zn,Vt,ro,Xu,Yu,Ju,kt,ne,He=k(()=>{\"use strict\";Et();zn=!1,Vt=!1,ro=!1,Xu=()=>{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}},Yu=()=>{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}},Ju=()=>{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}},kt=async e=>{if(zn)return Promise.resolve();if(Vt)throw new Error(\"multiple calls to 'initializeWebAssembly()' detected.\");if(ro)throw new Error(\"previous call to 'initializeWebAssembly()' failed.\");Vt=!0;let t=e.initTimeout,n=e.numThreads;if(e.simd!==!1){if(e.simd===\"relaxed\"){if(!Ju())throw new Error(\"Relaxed WebAssembly SIMD is not supported in the current environment.\")}else if(!Yu())throw new Error(\"WebAssembly SIMD is not supported in the current environment.\")}let r=Xu();n>1&&!r&&(typeof self<\"u\"&&!self.crossOriginIsolated&&console.warn(\"env.wasm.numThreads is set to \"+n+\", 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.\"),e.numThreads=n=1);let o=e.wasmPaths,i=typeof o==\"string\"?o:void 0,s=o?.mjs,a=s?.href??s,u=o?.wasm,d=u?.href??u,l=e.wasmBinary,[c,p]=await no(a,i,n>1,!!l||!!d),f=!1,m=[];if(t>0&&m.push(new Promise(h=>{setTimeout(()=>{f=!0,h()},t)})),m.push(new Promise((h,_)=>{let y={numThreads:n};if(l)y.wasmBinary=l,y.locateFile=g=>g;else if(d||i)y.locateFile=g=>d??i+g;else if(a&&a.indexOf(\"blob:\")!==0)y.locateFile=g=>new URL(g,a).href;else if(c){let g=Rt();g&&(y.locateFile=b=>g+b)}p(y).then(g=>{Vt=!1,zn=!0,Pn=g,h(),c&&URL.revokeObjectURL(c)},g=>{Vt=!1,ro=!0,_(g)})})),await Promise.race(m),f)throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`)},ne=()=>{if(zn&&Pn)return Pn;throw new Error(\"WebAssembly is not initialized yet.\")}});var ve,ht,Y,Nt=k(()=>{\"use strict\";He();ve=(e,t)=>{let n=ne(),r=n.lengthBytesUTF8(e)+1,o=n._malloc(r);return n.stringToUTF8(e,o,r),t.push(o),o},ht=(e,t,n,r)=>{if(typeof e==\"object\"&&e!==null){if(n.has(e))throw new Error(\"Circular reference in options\");n.add(e)}Object.entries(e).forEach(([o,i])=>{let s=t?t+o:o;if(typeof i==\"object\")ht(i,s+\".\",n,r);else if(typeof i==\"string\"||typeof i==\"number\")r(s,i.toString());else if(typeof i==\"boolean\")r(s,i?\"1\":\"0\");else throw new Error(`Can't handle extra config type: ${typeof i}`)})},Y=e=>{let t=ne(),n=t.stackSave();try{let r=t.PTR_SIZE,o=t.stackAlloc(2*r);t._OrtGetLastError(o,o+r);let i=Number(t.getValue(o,r===4?\"i32\":\"i64\")),s=t.getValue(o+r,\"*\"),a=s?t.UTF8ToString(s):\"\";throw new Error(`${e} ERROR_CODE: ${i}, ERROR_MESSAGE: ${a}`)}finally{t.stackRestore(n)}}});var oo,io=k(()=>{\"use strict\";He();Nt();oo=e=>{let t=ne(),n=0,r=[],o=e||{};try{if(e?.logSeverityLevel===void 0)o.logSeverityLevel=2;else if(typeof e.logSeverityLevel!=\"number\"||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)o.logVerbosityLevel=0;else if(typeof e.logVerbosityLevel!=\"number\"||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(o.terminate=!1);let i=0;return e?.tag!==void 0&&(i=ve(e.tag,r)),n=t._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,i),n===0&&Y(\"Can't create run options.\"),e?.extra!==void 0&&ht(e.extra,\"\",new WeakSet,(s,a)=>{let u=ve(s,r),d=ve(a,r);t._OrtAddRunConfigEntry(n,u,d)!==0&&Y(`Can't set a run config entry: ${s} - ${a}.`)}),[n,r]}catch(i){throw n!==0&&t._OrtReleaseRunOptions(n),r.forEach(s=>t._free(s)),i}}});var ed,td,nd,ot,rd,so,ao=k(()=>{\"use strict\";He();Nt();ed=e=>{switch(e){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: ${e}`)}},td=e=>{switch(e){case\"sequential\":return 0;case\"parallel\":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},nd=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let t=e.extra.session;t.use_ort_model_bytes_directly||(t.use_ort_model_bytes_directly=\"1\"),e.executionProviders&&e.executionProviders.some(n=>(typeof n==\"string\"?n:n.name)===\"webgpu\")&&(e.enableMemPattern=!1)},ot=(e,t,n,r)=>{let o=ve(t,r),i=ve(n,r);ne()._OrtAddSessionConfigEntry(e,o,i)!==0&&Y(`Can't set a session config entry: ${t} - ${n}.`)},rd=async(e,t,n)=>{let r=t.executionProviders;for(let o of r){let i=typeof o==\"string\"?o:o.name,s=[];switch(i){case\"webnn\":if(i=\"WEBNN\",ot(e,\"session.disable_quant_qdq\",\"1\",n),ot(e,\"session.disable_qdq_constant_folding\",\"1\",n),typeof o!=\"string\"){let p=o?.deviceType;p&&ot(e,\"deviceType\",p,n)}break;case\"webgpu\":if(i=\"JS\",typeof o!=\"string\"){let c=o;if(c?.preferredLayout){if(c.preferredLayout!==\"NCHW\"&&c.preferredLayout!==\"NHWC\")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${c.preferredLayout}`);ot(e,\"preferredLayout\",c.preferredLayout,n)}}break;case\"wasm\":case\"cpu\":continue;default:throw new Error(`not supported execution provider: ${i}`)}let a=ve(i,n),u=s.length,d=0,l=0;if(u>0){d=ne()._malloc(u*ne().PTR_SIZE),n.push(d),l=ne()._malloc(u*ne().PTR_SIZE),n.push(l);for(let c=0;c<u;c++)ne().setValue(d+c*ne().PTR_SIZE,s[c][0],\"*\"),ne().setValue(l+c*ne().PTR_SIZE,s[c][1],\"*\")}await ne()._OrtAppendExecutionProvider(e,a,d,l,u)!==0&&Y(`Can't append execution provider: ${i}.`)}},so=async e=>{let t=ne(),n=0,r=[],o=e||{};nd(o);try{let i=ed(o.graphOptimizationLevel??\"all\"),s=td(o.executionMode??\"sequential\"),a=typeof o.logId==\"string\"?ve(o.logId,r):0,u=o.logSeverityLevel??2;if(!Number.isInteger(u)||u<0||u>4)throw new Error(`log severity level is not valid: ${u}`);let d=o.logVerbosityLevel??0;if(!Number.isInteger(d)||d<0||d>4)throw new Error(`log verbosity level is not valid: ${d}`);let l=typeof o.optimizedModelFilePath==\"string\"?ve(o.optimizedModelFilePath,r):0;if(n=t._OrtCreateSessionOptions(i,!!o.enableCpuMemArena,!!o.enableMemPattern,s,!!o.enableProfiling,0,a,u,d,l),n===0&&Y(\"Can't create session options.\"),o.executionProviders&&await rd(n,o,r),o.enableGraphCapture!==void 0){if(typeof o.enableGraphCapture!=\"boolean\")throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);ot(n,\"enableGraphCapture\",o.enableGraphCapture.toString(),r)}if(o.freeDimensionOverrides)for(let[c,p]of Object.entries(o.freeDimensionOverrides)){if(typeof c!=\"string\")throw new Error(`free dimension override name must be a string: ${c}`);if(typeof p!=\"number\"||!Number.isInteger(p)||p<0)throw new Error(`free dimension override value must be a non-negative integer: ${p}`);let f=ve(c,r);t._OrtAddFreeDimensionOverride(n,f,p)!==0&&Y(`Can't set a free dimension override: ${c} - ${p}.`)}return o.extra!==void 0&&ht(o.extra,\"\",new WeakSet,(c,p)=>{ot(n,c,p,r)}),[n,r]}catch(i){throw n!==0&&t._OrtReleaseSessionOptions(n)!==0&&Y(\"Can't release session options.\"),r.forEach(s=>t._free(s)),i}}});var Fe,ke,qe,it,gt,Lt,Wt,Bn,N=k(()=>{\"use strict\";Fe=e=>{switch(e){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: ${e}`)}},ke=e=>{switch(e){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: ${e}`)}},qe=(e,t)=>{let n=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],r=typeof t==\"number\"?t:t.reduce((o,i)=>o*i,1);return n>0?Math.ceil(r*n):void 0},it=e=>{switch(e){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: ${e}`)}},gt=e=>{switch(e){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: ${e}`)}},Lt=e=>e===\"float32\"||e===\"float16\"||e===\"int32\"||e===\"int64\"||e===\"uint32\"||e===\"uint8\"||e===\"bool\"||e===\"uint4\"||e===\"int4\",Wt=e=>e===\"float32\"||e===\"float16\"||e===\"int32\"||e===\"int64\"||e===\"uint32\"||e===\"uint64\"||e===\"int8\"||e===\"uint8\"||e===\"bool\"||e===\"uint4\"||e===\"int4\",Bn=e=>{switch(e){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: ${e}`)}}});var yt,Dn=k(()=>{\"use strict\";At();yt=async e=>{if(typeof e==\"string\")if(!1)try{let{readFile:t}=vn(\"node:fs/promises\");return new Uint8Array(await t(e))}catch(t){if(t.code===\"ERR_FS_FILE_TOO_LARGE\"){let{createReadStream:n}=vn(\"node:fs\"),r=n(e),o=[];for await(let i of r)o.push(i);return new Uint8Array(Buffer.concat(o))}throw t}else{let t=await fetch(e);if(!t.ok)throw new Error(`failed to load external data file: ${e}`);let n=t.headers.get(\"Content-Length\"),r=n?parseInt(n,10):0;if(r<1073741824)return new Uint8Array(await t.arrayBuffer());{if(!t.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let o=t.body.getReader(),i;try{i=new ArrayBuffer(r)}catch(a){if(a instanceof RangeError){let u=Math.ceil(r/65536);i=new WebAssembly.Memory({initial:u,maximum:u}).buffer}else throw a}let s=0;for(;;){let{done:a,value:u}=await o.read();if(a)break;let d=u.byteLength;new Uint8Array(i,s,d).set(u),s+=d}return new Uint8Array(i,0,r)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}});var od,id,uo,lo,Gt,sd,Z,Pe=k(()=>{\"use strict\";N();od=[\"V\",\"I\",\"W\",\"E\",\"F\"],id=(e,t)=>{console.log(`[${od[e]},${new Date().toISOString()}]${t}`)},Gt=(e,t)=>{uo=e,lo=t},sd=(e,t)=>{let n=gt(e),r=gt(uo);n>=r&&id(n,typeof t==\"function\"?t():t)},Z=(...e)=>{lo&&sd(...e)}});var On,ze,x,Ye,Ht,co,po,H=k(()=>{\"use strict\";On=class{static calcMatMulShape(t,n){return t[1]!==n[0]?void 0:[t[0],n[1]]}},ze=class{static calcShape(t,n,r=!1){let o=t.length,i=n.length;if(o===0)return n;if(i===0)return t;let s=Math.max(t.length,n.length),a=new Array(s);if(r){if(o<2||i<2)return;let u=On.calcMatMulShape([t[o-2],t[o-1]],[n[i-2],n[i-1]]);if(u===void 0)return;[a[s-2],a[s-1]]=u}for(let u=r?3:1;u<=s;u++){let d=o-u<0?1:t[o-u],l=i-u<0?1:n[i-u];if(d!==l&&d>1&&l>1)return;let c=Math.max(d,l);if(d&&l)a[s-u]=Math.max(d,l);else{if(c>1)return;a[s-u]=0}}return a}static isValidBroadcast(t,n){let r=t.length,o=n.length;if(r>o)return!1;for(let i=1;i<=r;i++)if(t[r-i]!==1&&t[r-i]!==n[o-i])return!1;return!0}},x=class e{static size(t){return e.getSizeFromDimensionRange(t,0,t.length)}static convertShape(t,n=4){let r=t.length;if(r===0)return[];let o=new Array(r),i=r-1;for(;i>=0;){if(t[i]%n===0){o[i]=t[i]/n;break}if(n%t[i]!==0)throw new Error(\"cannot convert shape\");o[i]=1,n/=t[i],i--}for(i--;i>=0;i--)o[i]=t[i];return o}static sizeFromDimension(t,n){if(n<0||n>t.length)throw new Error(`invalid dimension of ${n} for sizeFromDimension as Tensor has ${t.length} dimensions.`);return e.getSizeFromDimensionRange(t,n,t.length)}static sizeToDimension(t,n){if(n<0||n>t.length)throw new Error(`invalid dimension of ${n} for sizeToDimension as Tensor has ${t.length} dimensions.`);return e.getSizeFromDimensionRange(t,0,n)}static getSizeFromDimensionRange(t,n,r){let o=1;for(let i=n;i<r;i++){if(t[i]<0)throw new Error(\"cannot get valid size from specified dimension range. Most likely the range contains negative values in them.\");o*=Number(t[i])}return o}static computeStrides(t){let n=t.length;if(n===0)return[];if(n===1)return[1];let r=new Array(n);r[n-1]=1,r[n-2]=t[n-1];for(let o=n-3;o>=0;--o)r[o]=r[o+1]*t[o+1];return r}static normalizeAxis(t,n){if(t<-n&&t>=n)throw new Error(\"unsupported axis for this operation.\");return t<0?t+n:t}static normalizeAxes(t,n){return t.map(r=>this.normalizeAxis(r,n??t.length))}static sortBasedOnPerm(t,n){return n?n.map(r=>t[r]):t.slice().reverse()}static padShape(t,n){let r=t.length;return t.map((o,i)=>o+n[i]+n[i+r])}static areEqual(t,n){return t.length!==n.length?!1:t.every((r,o)=>r===n[o])}},Ye=class e{static adjustPoolAttributes(t,n,r,o,i,s){if(!t&&r.length!==n.length-2)throw new Error(\"length of specified kernel shapes should be 2 less than length of input dimensions\");if(t)for(let a=0;a<n.length-2;a++)a>=r.length?r.push(n[a+2]):r[a]=n[a+2];for(let a=0;a<r.length;a++)if(a<o.length){if(o[a]<0)throw new Error(\"strides should be greater than or equal to 1\")}else o.push(1);for(let a=0;a<r.length;a++)if(a<i.length){if(i[a]<0)throw new Error(\"dilations should be greater than or equal to 1\")}else i.push(1);for(let a=0;a<r.length*2;a++)if(a<s.length){if(s[a]<0)throw new Error(\"pad should be greater than or equal to 1\")}else s.push(0);for(let a=0;a<r.length;a++){if(r[a]<=0)throw new Error(\"kernel shapes need to be greater than 0\");if(s[a]>=r[a]||s[a+r.length]>=r[a])throw new Error(\"pads should be smaller than kernel\")}}static adjustPadsBasedOnAutoPad(t,n,r,o,i,s,a){if(a){if(i.length!==2*(t.length-2))throw new Error(\"length of pads should be twice the length of data dimensions\");if(n.length!==t.length-2)throw new Error(\"length of strides should be the length of data dimensions\");if(o.length!==t.length-2)throw new Error(\"length of kernel shapes should be the length of data dimensions\");for(let u=0;u<t.length-2;u++)e.adjustPadAndReturnShape(t[u+(s?1:2)],n[u],r[u],o[u],i,u,u+t.length-2,a)}}static computePoolOutputShape(t,n,r,o,i,s,a){if(n.length<=0)throw new Error(\"input shape must be of size greater than 0\");let u=[n[0],n[1]];return e.computeShapeHelper(t,n,u,r,o,i,s,a),u}static computeConvOutputShape(t,n,r,o,i,s,a){if(t.length<=0||n.length<=0)throw new Error(\"invalid input tensor dims or invalid filter tensor dims\");let u=[t[0],n[0]];return e.computeShapeHelper(!1,t,u,r,o,i,s,a),u}static computeShapeHelper(t,n,r,o,i,s,a,u){if(t)for(let d=0;d<n.length-2;d++)r.push(1);else for(let d=0;d<n.length-2;d++)r.push(e.adjustPadAndReturnShape(n[d+2],o[d],i[d],s[d],a,d,d+n.length-2,u))}static adjustPadAndReturnShape(t,n,r,o,i,s,a,u){let d=r*(o-1)+1;if(u&&u!==\"NOTSET\")switch(u){case\"VALID\":return i[s]=0,i[a]=0,Math.floor((t-d)/n+1);case\"SAME_LOWER\":case\"SAME_UPPER\":if(r!==1)throw new Error(\"Dilation not supported for SAME_UPPER or SAME_LOWER\");{let c=((t+n-1)/n-1)*n+o-t;return i[s]=Math.floor(u===\"SAME_LOWER\"?(c+1)/2:c/2),i[a]=c-i[s],Math.floor((t+c-o)/n+1)}default:throw new Error(\"Unsupported AutoPad type\")}else return Math.floor((t+i[s]+i[a]-d)/n+1)}},Ht=class{static getShapeOfGemmResult(t,n,r,o,i){if(t.length!==2||r.length!==2)throw new Error(\"shape need to be of size 2\");let s,a,u;n?(s=t[1],a=t[0]):(s=t[0],a=t[1]);let d=-1;if(o?(u=r[0],d=1):(u=r[1],d=0),r[d]!==a)throw new Error(\"dimension mismatch\");if(s<=0||u<=0||a<=0)throw new Error(\"invalid shape specified\");if(i&&!ze.isValidBroadcast(i,[s,u]))throw new Error(\"gemm: invalid bias shape for broadcast\");return[s,u,a]}},co=-34028234663852886e22,po=34028234663852886e22});var Ft,Mn=k(()=>{\"use strict\";N();Ft=(e,t)=>new(it(t))(e)});var fo,Rn,ho,ad,mo,ud,go,qt,Kt,Un,yo,bo=k(()=>{\"use strict\";N();Pe();fo=new Map([[\"float32\",32],[\"float16\",16],[\"int32\",32],[\"uint32\",32],[\"int64\",64],[\"uint64\",64],[\"int8\",8],[\"uint8\",8],[\"int4\",4],[\"uint4\",4]]),Rn=(e,t)=>{if(t===\"int32\")return e;let n=fo.get(t);if(!n)throw new Error(`WebNN backend does not support data type: ${t}`);let r=n/8;if(e.byteLength%r!==0)throw new Error(`Invalid Uint8Array length - must be a multiple of ${r}.`);let o=e.byteLength/r,i=new(it(t))(e.buffer,e.byteOffset,o);switch(t){case\"int64\":case\"uint64\":{let s=new Int32Array(o);for(let a=0;a<o;a++){let u=i[a];if(u>2147483647n||u<-2147483648n)throw new Error(\"Can not convert int64 data to int32 - value out of range.\");s[a]=Number(u)}return new Uint8Array(s.buffer)}case\"int8\":case\"uint8\":case\"uint32\":{if(t===\"uint32\"&&i.some(a=>a>2147483647))throw new Error(\"Can not convert uint32 data to int32 - value out of range.\");let s=Int32Array.from(i,Number);return new Uint8Array(s.buffer)}default:throw new Error(`Unsupported data conversion from ${t} to 'int32'`)}},ho=(e,t)=>{if(t===\"int32\")return e;if(e.byteLength%4!==0)throw new Error(\"Invalid Uint8Array length - must be a multiple of 4 (int32).\");let n=e.byteLength/4,r=new Int32Array(e.buffer,e.byteOffset,n);switch(t){case\"int64\":{let o=BigInt64Array.from(r,BigInt);return new Uint8Array(o.buffer)}case\"uint64\":{if(r.some(i=>i<0))throw new Error(\"Can not convert int32 data to uin64 - negative value found.\");let o=BigUint64Array.from(r,BigInt);return new Uint8Array(o.buffer)}case\"int8\":{if(r.some(i=>i<-128||i>127))throw new Error(\"Can not convert int32 data to int8 - value out of range.\");let o=Int8Array.from(r,Number);return new Uint8Array(o.buffer)}case\"uint8\":{if(r.some(o=>o<0||o>255))throw new Error(\"Can not convert int32 data to uint8 - value out of range.\");return Uint8Array.from(r,Number)}case\"uint32\":{if(r.some(i=>i<0))throw new Error(\"Can not convert int32 data to uint32 - negative value found.\");let o=Uint32Array.from(r,Number);return new Uint8Array(o.buffer)}default:throw new Error(`Unsupported data conversion from 'int32' to ${t}`)}},ad=1,mo=()=>ad++,ud=new Map([[\"int8\",\"int32\"],[\"uint8\",\"int32\"],[\"uint32\",\"int32\"],[\"int64\",\"int32\"]]),go=(e,t)=>{let n=fo.get(e);if(!n)throw new Error(`WebNN backend does not support data type: ${e}`);return t.length>0?Math.ceil(t.reduce((r,o)=>r*o)*n/8):0},qt=class{constructor(t){this.isDataConverted=!1;let{sessionId:n,context:r,tensor:o,dataType:i,shape:s,fallbackDataType:a}=t;this.sessionId=n,this.mlContext=r,this.mlTensor=o,this.dataType=i,this.tensorShape=s,this.fallbackDataType=a}get tensor(){return this.mlTensor}get type(){return this.dataType}get fallbackType(){return this.fallbackDataType}get shape(){return this.tensorShape}get byteLength(){return go(this.dataType,this.tensorShape)}destroy(){Z(\"verbose\",()=>\"[WebNN] TensorWrapper.destroy\"),this.mlTensor.destroy()}write(t){this.mlContext.writeTensor(this.mlTensor,t)}async read(t){if(this.fallbackDataType){let n=await this.mlContext.readTensor(this.mlTensor),r=ho(new Uint8Array(n),this.dataType);if(t){(t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)).set(r);return}else return r.buffer}else return t?this.mlContext.readTensor(this.mlTensor,t):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(t,n,r){return this.mlContext===t&&this.dataType===n&&this.tensorShape.length===r.length&&this.tensorShape.every((o,i)=>o===r[i])}setIsDataConverted(t){this.isDataConverted=t}},Kt=class{constructor(t,n){this.tensorManager=t;this.wrapper=n}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(t,n,r,o){let i=this.tensorManager.getMLContext(t),s=this.tensorManager.getMLOpSupportLimits(t),a;if(!s?.input.dataTypes.includes(n)){if(a=ud.get(n),!a||s?.input.dataTypes.includes(a))throw new Error(`WebNN backend does not support data type: ${n}`);Z(\"verbose\",()=>`[WebNN] TensorIdTracker.ensureTensor: fallback dataType from ${n} to ${a}`)}if(this.wrapper){if(this.wrapper.canReuseTensor(i,n,r))return this.wrapper.tensor;if(o){if(this.wrapper.byteLength!==go(n,r))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 u=typeof MLTensorUsage>\"u\"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(t,n,r,u,!0,!0,a),o&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(t){let n=t;if(this.wrapper){if(this.wrapper.fallbackType)if(this.wrapper.fallbackType===\"int32\")n=Rn(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(n);return}else Z(\"verbose\",()=>\"Data size does not match tensor size. Releasing tensor.\"),this.releaseTensor()}this.activeUpload?this.activeUpload.set(n):this.activeUpload=new Uint8Array(n)}async download(t){if(this.activeUpload){let n=this.wrapper?.isDataConverted?ho(this.activeUpload,this.wrapper?.type):this.activeUpload;if(t){t instanceof ArrayBuffer?new Uint8Array(t).set(n):new Uint8Array(t.buffer,t.byteOffset,t.byteLength).set(n);return}else return n.buffer}if(!this.wrapper)throw new Error(\"Tensor has not been created.\");return t?this.wrapper.read(t):this.wrapper.read()}},Un=class{constructor(t){this.backend=t;this.tensorTrackersById=new Map;this.freeTensors=[];this.externalTensors=new Set}getMLContext(t){let n=this.backend.getMLContext(t);if(!n)throw new Error(\"MLContext not found for session.\");return n}getMLOpSupportLimits(t){return this.backend.getMLOpSupportLimits(t)}reserveTensorId(){let t=mo();return this.tensorTrackersById.set(t,new Kt(this)),t}releaseTensorId(t){let n=this.tensorTrackersById.get(t);n&&(this.tensorTrackersById.delete(t),n.tensorWrapper&&this.releaseTensor(n.tensorWrapper))}async ensureTensor(t,n,r,o,i){Z(\"verbose\",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${n}, dataType: ${r}, shape: ${o}, copyOld: ${i}}`);let s=this.tensorTrackersById.get(n);if(!s)throw new Error(\"Tensor not found.\");return s.ensureTensor(t,r,o,i)}upload(t,n){let r=this.tensorTrackersById.get(t);if(!r)throw new Error(\"Tensor not found.\");r.upload(n)}async download(t,n){Z(\"verbose\",()=>`[WebNN] TensorManager.download {tensorId: ${t}, dstBuffer: ${n?.byteLength}}`);let r=this.tensorTrackersById.get(t);if(!r)throw new Error(\"Tensor not found.\");return r.download(n)}releaseTensorsForSession(t){for(let n of this.freeTensors)n.sessionId===t&&n.destroy();this.freeTensors=this.freeTensors.filter(n=>n.sessionId!==t)}registerTensor(t,n,r,o){let i=this.getMLContext(t),s=mo(),a=new qt({sessionId:t,context:i,tensor:n,dataType:r,shape:o});return this.tensorTrackersById.set(s,new Kt(this,a)),this.externalTensors.add(a),s}async getCachedTensor(t,n,r,o,i,s,a){let u=this.getMLContext(t);for(let[l,c]of this.freeTensors.entries())if(c.canReuseTensor(u,n,r)){Z(\"verbose\",()=>`[WebNN] Reusing tensor {dataType: ${n}, ${a?`fallbackDataType: ${a},`:\"\"} shape: ${r}`);let p=this.freeTensors.splice(l,1)[0];return p.sessionId=t,p}Z(\"verbose\",()=>`[WebNN] MLContext.createTensor {dataType: ${n}, ${a?`fallbackDataType: ${a},`:\"\"} shape: ${r}}`);let d=await u.createTensor({dataType:a??n,shape:r,dimensions:r,usage:o,writable:i,readable:s});return new qt({sessionId:t,context:u,tensor:d,dataType:n,shape:r,fallbackDataType:a})}releaseTensor(t){this.externalTensors.has(t)&&this.externalTensors.delete(t),this.freeTensors.push(t)}},yo=(...e)=>new Un(...e)});var jt,dd,Zt,_o=k(()=>{\"use strict\";N();He();Mn();bo();Pe();jt=new Map([[1,\"float32\"],[10,\"float16\"],[6,\"int32\"],[12,\"uint32\"],[7,\"int64\"],[13,\"uint64\"],[22,\"int4\"],[21,\"uint4\"],[3,\"int8\"],[2,\"uint8\"],[9,\"uint8\"]]),dd=(e,t)=>{if(e===t)return!0;if(e===void 0||t===void 0)return!1;let n=Object.keys(e).sort(),r=Object.keys(t).sort();return n.length===r.length&&n.every((o,i)=>o===r[i]&&e[o]===t[o])},Zt=class{constructor(t){this.tensorManager=yo(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;Gt(t.logLevel,!!t.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error(\"No active session\");return this.activeSessionId}onRunStart(t){Z(\"verbose\",()=>`[WebNN] onRunStart {sessionId: ${t}}`),this.activeSessionId=t}onRunEnd(t){Z(\"verbose\",()=>`[WebNN] onRunEnd {sessionId: ${t}}`);let n=this.temporarySessionTensorIds.get(t);if(n){for(let r of n)Z(\"verbose\",()=>`[WebNN] releasing temporary tensor {tensorId: ${r}}`),this.tensorManager.releaseTensorId(r);this.temporarySessionTensorIds.delete(t),this.activeSessionId=void 0}}async createMLContext(t){if(t instanceof GPUDevice){let r=this.mlContextCache.findIndex(o=>o.gpuDevice===t);if(r!==-1)return this.mlContextCache[r].mlContext;{let o=await navigator.ml.createContext(t);return this.mlContextCache.push({gpuDevice:t,mlContext:o}),o}}else if(t===void 0){let r=this.mlContextCache.findIndex(o=>o.options===void 0&&o.gpuDevice===void 0);if(r!==-1)return this.mlContextCache[r].mlContext;{let o=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:o}),o}}let n=this.mlContextCache.findIndex(r=>dd(r.options,t));if(n!==-1)return this.mlContextCache[n].mlContext;{let r=await navigator.ml.createContext(t);return this.mlContextCache.push({options:t,mlContext:r}),r}}registerMLContext(t,n){this.mlContextBySessionId.set(t,n);let r=this.sessionIdsByMLContext.get(n);r||(r=new Set,this.sessionIdsByMLContext.set(n,r)),r.add(t),this.mlOpSupportLimitsBySessionId.has(t)||this.mlOpSupportLimitsBySessionId.set(t,n.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 n=this.mlContextBySessionId.get(t);if(!n)return;this.tensorManager.releaseTensorsForSession(t),this.mlContextBySessionId.delete(t),this.mlOpSupportLimitsBySessionId.delete(t);let r=this.sessionIdsByMLContext.get(n);if(r.delete(t),r.size===0){this.sessionIdsByMLContext.delete(n);let o=this.mlContextCache.findIndex(i=>i.mlContext===n);o!==-1&&this.mlContextCache.splice(o,1)}}getMLContext(t){return this.mlContextBySessionId.get(t)}getMLOpSupportLimits(t){return this.mlOpSupportLimitsBySessionId.get(t)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(t){Z(\"verbose\",()=>`[WebNN] releaseTensorId {tensorId: ${t}}`),this.tensorManager.releaseTensorId(t)}async ensureTensor(t,n,r,o,i){let s=jt.get(r);if(!s)throw new Error(`Unsupported ONNX data type: ${r}`);return this.tensorManager.ensureTensor(t??this.currentSessionId,n,s,o,i)}async createTemporaryTensor(t,n,r){Z(\"verbose\",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${n}, shape: ${r}}`);let o=jt.get(n);if(!o)throw new Error(`Unsupported ONNX data type: ${n}`);let i=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(t,i,o,r,!1);let s=this.temporarySessionTensorIds.get(t);return s?s.push(i):this.temporarySessionTensorIds.set(t,[i]),i}uploadTensor(t,n){if(!ne().shouldTransferToMLTensor)throw new Error(\"Trying to upload to a MLTensor while shouldTransferToMLTensor is false\");Z(\"verbose\",()=>`[WebNN] uploadTensor {tensorId: ${t}, data: ${n.byteLength}}`),this.tensorManager.upload(t,n)}async downloadTensor(t,n){return this.tensorManager.download(t,n)}createMLTensorDownloader(t,n){return async()=>{let r=await this.tensorManager.download(t);return Ft(r,n)}}registerMLTensor(t,n,r,o){let i=jt.get(r);if(!i)throw new Error(`Unsupported ONNX data type: ${r}`);let s=this.tensorManager.registerTensor(t,n,i,o);return Z(\"verbose\",()=>`[WebNN] registerMLTensor {tensor: ${n}, dataType: ${i}, dimensions: ${o}} -> {tensorId: ${s}}`),s}registerMLConstant(t,n,r,o,i,s,a=!1){if(!s)throw new Error(\"External mounted files are not available.\");let u=t;t.startsWith(\"./\")&&(u=t.substring(2));let d=s.get(u);if(!d)throw new Error(`File with name ${u} not found in preloaded files.`);if(n+r>d.byteLength)throw new Error(\"Out of bounds: data offset and length exceed the external file data size.\");let l=d.slice(n,n+r).buffer,c;switch(i.dataType){case\"float32\":c=new Float32Array(l);break;case\"float16\":c=typeof Float16Array<\"u\"&&Float16Array.from?new Float16Array(l):new Uint16Array(l);break;case\"int32\":c=new Int32Array(l);break;case\"uint32\":c=new Uint32Array(l);break;case\"int64\":if(a){let p=Rn(new Uint8Array(l),\"int64\");c=new Int32Array(p.buffer),i.dataType=\"int32\"}else c=new BigInt64Array(l);break;case\"uint64\":c=new BigUint64Array(l);break;case\"int8\":c=new Int8Array(l);break;case\"int4\":case\"uint4\":case\"uint8\":c=new Uint8Array(l);break;default:throw new Error(`Unsupported data type: ${i.dataType} in creating WebNN Constant from external data.`)}return Z(\"verbose\",()=>`[WebNN] registerMLConstant {dataType: ${i.dataType}, shape: ${i.shape}}} ${a?\"(Note: it was int64 data type and registered to int32 as workaround)\":\"\"}`),o.constant(i,c)}registerGraphInput(t){this.temporaryGraphInputs.push(t)}registerGraphOutput(t){this.temporaryGraphOutputs.push(t)}isGraphInput(t,n){let r=this.sessionGraphInputs.get(t);return r?r.includes(n):!1}isGraphOutput(t,n){let r=this.sessionGraphOutputs.get(t);return r?r.includes(n):!1}isGraphInputOutputTypeSupported(t,n,r=!0){let o=jt.get(Fe(n)),i=this.mlOpSupportLimitsBySessionId.get(t);return typeof o>\"u\"?!1:r?!!i?.input.dataTypes.includes(o):!!i?.output.dataTypes.includes(o)}flush(){}}});var Qt=k(()=>{\"use strict\"});var wo,Vn,Nn,ld,cd,$o,Wn,Ln,xo,So=k(()=>{\"use strict\";Pe();Qt();wo=new Map([[64,250],[128,200],[256,200],[512,200],[2048,230],[4096,200],[8192,50],[16384,50],[32768,50],[65536,50],[131072,50],[262144,50],[524288,50],[1048576,50],[2097152,30],[4194304,20],[8388608,10],[12582912,10],[16777216,10],[26214400,15],[33554432,22],[44236800,2],[58982400,6],[67108864,6],[134217728,6],[167772160,6]]),Vn=[],Nn=e=>Math.ceil(Number(e)/16)*16,ld=e=>{for(let t=0;t<Vn.length;t++){let n=Vn[t];if(e<=n)return n}return Math.ceil(e/16)*16},cd=1,$o=()=>cd++,Wn=async(e,t,n,r)=>{let o=Nn(n),i=e.device.createBuffer({size:o,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let s=e.getCommandEncoder();e.endComputePass(),s.copyBufferToBuffer(t,0,i,0,o),e.flush(),await i.mapAsync(GPUMapMode.READ);let a=i.getMappedRange();if(r){let u=r();return u.set(new Uint8Array(a,0,n)),u}else return new Uint8Array(a.slice(0,n))}finally{i.destroy()}},Ln=class{constructor(t){this.backend=t;this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[n]of wo)Vn.push(n),this.freeBuffers.set(n,[]),this.freeUniformBuffers.set(n,[]);this.sessionCount=0}upload(t,n){let r=n.buffer,o=n.byteOffset,i=n.byteLength,s=Nn(i),a=this.storageCache.get(t);if(!a)throw new Error(\"gpu data for uploading does not exist\");if(Number(a.originalSize)!==i)throw new Error(`inconsistent data size. gpu data size=${a.originalSize}, data size=${i}`);let u=this.backend.device.createBuffer({mappedAtCreation:!0,size:s,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),d=u.getMappedRange();new Uint8Array(d).set(new Uint8Array(r,o,i)),u.unmap();let l=this.backend.device.createCommandEncoder();l.copyBufferToBuffer(u,0,a.gpuData.buffer,0,s),this.backend.device.queue.submit([l.finish()]),u.destroy(),Z(\"verbose\",()=>`[WebGPU] GpuDataManager.upload(id=${t})`)}memcpy(t,n){let r=this.storageCache.get(t);if(!r)throw new Error(\"source gpu data for memcpy does not exist\");let o=this.storageCache.get(n);if(!o)throw new Error(\"destination gpu data for memcpy does not exist\");if(r.originalSize!==o.originalSize)throw new Error(\"inconsistent source and destination gpu data size\");let i=Nn(r.originalSize),s=this.backend.getCommandEncoder();this.backend.endComputePass(),s.copyBufferToBuffer(r.gpuData.buffer,0,o.gpuData.buffer,0,i)}registerExternalBuffer(t,n,r){let o;if(r){if(o=r[0],t===r[1])return Z(\"verbose\",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${n}) => id=${o}, buffer is the same, skip.`),o;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet.\n Please use the previous external buffer!`)}else o=$o();return this.storageCache.set(o,{gpuData:{id:o,type:0,buffer:t},originalSize:n}),Z(\"verbose\",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${n}) => id=${o}, registered.`),o}unregisterExternalBuffer(t){t!==void 0&&(this.storageCache.delete(t),Z(\"verbose\",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${t}`))}create(t,n=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let r=ld(t),o,i=(n&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,s=(n&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(i||s){let d=(i?this.freeBuffers:this.freeUniformBuffers).get(r);d?d.length>0?o=d.pop():o=this.backend.device.createBuffer({size:r,usage:n}):o=this.backend.device.createBuffer({size:r,usage:n})}else o=this.backend.device.createBuffer({size:r,usage:n});let a={id:$o(),type:0,buffer:o};return this.storageCache.set(a.id,{gpuData:a,originalSize:Number(t)}),Z(\"verbose\",()=>`[WebGPU] GpuDataManager.create(size=${t}) => id=${a.id}`),a}get(t){return this.storageCache.get(t)?.gpuData}release(t){let n=typeof t==\"bigint\"?Number(t):t,r=this.storageCache.get(n);if(!r){if(this.storageCache.size===0)return 0;throw new Error(\"releasing data does not exist\")}return Z(\"verbose\",()=>`[WebGPU] GpuDataManager.release(id=${n}), gpuDataId=${r.gpuData.id}`),this.storageCache.delete(n),this.buffersPending.push(r.gpuData.buffer),r.originalSize}async download(t,n){let r=this.storageCache.get(Number(t));if(!r)throw new Error(\"data does not exist\");await Wn(this.backend,r.gpuData.buffer,r.originalSize,n)}refreshPendingBuffers(){if(this.buffersPending.length!==0)if(this.backend.sessionStatus===\"default\"){for(let t of this.buffersPending){let n=wo.get(t.size);if((t.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let r=this.freeBuffers.get(t.size)||[];n===void 0||r.length>=n?t.destroy():r.push(t)}else if((t.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let r=this.freeUniformBuffers.get(t.size)||[];n===void 0||r.length>=n?t.destroy():r.push(t)}else t.destroy()}this.buffersPending=[]}else{let t=this.capturedPendingBuffers.get(this.backend.currentSessionId);t||(t=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,t));for(let n of this.buffersPending)t.push(n);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(t=>{t.forEach(n=>{n.destroy()})}),this.freeUniformBuffers.forEach(t=>{t.forEach(n=>{n.destroy()})}),this.storageCache.forEach(t=>{t.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(t=>{t.forEach(n=>{n.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(t){let n=this.capturedPendingBuffers.get(t);n&&(n.forEach(r=>{r.destroy()}),this.capturedPendingBuffers.delete(t)),this.sessionCount-=1,this.sessionCount===0&&(Z(\"warning\",()=>\"[WebGPU] Clearing webgpu buffer cache\"),this.storageCache.forEach(r=>{r.gpuData.buffer.destroy()}),this.storageCache=new Map)}},xo=(...e)=>new Ln(...e)});var Gn,L,ue=k(()=>{\"use strict\";Gn=class{constructor(t){Object.assign(this,t)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(t=>`${this[t]}`).join(\";\")),this.key}},L=e=>new Gn(e)});var Je,Fn,re,pe,P,J,qn,et,Ie,D,Xt,S,C,To,Yt,Hn,Io,q=k(()=>{\"use strict\";N();H();Je=64,Fn=(e,t)=>{if(t===3)throw new Error(\"vec3 has same alignment as vec4, use vec4 instead\");switch(Number(e)){case 10:return t>1?`vec${t}<f16>`:\"f16\";case 1:return t>1?`vec${t}<f32>`:\"f32\";case 6:return t>1?`vec${t}<i32>`:\"i32\";case 12:return t>1?`vec${t}<u32>`:\"u32\";case 7:if(t>1)throw new Error(\"currently not supported vecX of uint64 yet\");return[\"vec2<u32>\",\"i32\"];case 13:if(t>1)throw new Error(\"currently not supported vecX of uint64 yet\");return[\"vec2<u32>\",\"u32\"];case 9:if(t!==4)throw new Error(\"bool must be vec4\");return[\"u32\",\"vec4<bool>\"];case 22:return\"i32\";case 21:return\"u32\";default:throw new Error(`Unknown data type: ${e}`)}},re=(e,t=1)=>{let n=Fn(e,t);return typeof n==\"string\"?n:n[0]},pe=(e,t=1)=>{let n=Fn(e,t);return typeof n==\"string\"?n:n[1]},P=(...e)=>{let t=[];return e.forEach(n=>{n.length!==0&&t.push({type:12,data:n},{type:12,data:x.computeStrides(n)})}),t},J=e=>e%4===0?4:e%2===0?2:1,qn=(e=\"f32\",t,n=\"0\")=>!t||t===1?`${e}(${n})`:`vec${t}<${e}>(${n})`,et=(e,t,n)=>e===\"f32\"?n:t===1?`f32(${n})`:`vec${t}<f32>(${n})`,Ie=(e,t)=>t===4?`(${e}.x + ${e}.y + ${e}.z + ${e}.w)`:t===2?`(${e}.x + ${e}.y)`:t===3?`(${e}.x + ${e}.y + ${e}.z)`:e,D=(e,t,n,r)=>e.startsWith(\"uniforms.\")&&n>4?typeof t==\"string\"?r===\"f16\"?`${e}[(${t}) / 8][(${t}) % 8 / 4][(${t}) % 8 % 4]`:`${e}[(${t}) / 4][(${t}) % 4]`:r===\"f16\"?`${e}[${Math.floor(t/8)}][${Math.floor(t%8/4)}][${t%8%4}]`:`${e}[${Math.floor(t/4)}][${t%4}]`:n>1?`${e}[${t}]`:e,Xt=(e,t,n,r,o)=>{let i=typeof n==\"number\",s=i?n:n.length,a=[...new Array(s).keys()],u=s<2?\"u32\":s<=4?`vec${s}<u32>`:`array<u32, ${s}>`,d=Fn(t,o),l=typeof d==\"string\"?d:d[1],c=typeof d==\"string\"?d:d[0],p={indices:u,value:l,storage:c,tensor:t},f=A=>typeof A==\"string\"?A:`${A}u`,m={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},h=i?\"uniforms.\":\"\",_=`${h}${e}_shape`,y=`${h}${e}_strides`,g=\"\";for(let A=0;A<s-1;A++)g+=`\n let dim${A} = current / ${D(y,A,s)};\n let rest${A} = current % ${D(y,A,s)};\n indices[${A}] = dim${A};\n current = rest${A};\n `;g+=`indices[${s-1}] = current;`;let b=s<2?\"\":`\n fn o2i_${e}(offset: u32) -> ${p.indices} {\n var indices: ${p.indices};\n var current = offset;\n ${g}\n return indices;\n }`,w=A=>(m.offsetToIndices=!0,s<2?A:`o2i_${e}(${A})`),v=[];if(s>=2)for(let A=s-1;A>=0;A--)v.push(`${D(y,A,s)} * (indices[${A}])`);let $=s<2?\"\":`\n fn i2o_${e}(indices: ${p.indices}) -> u32 {\n return ${v.join(\"+\")};\n }`,T=A=>(m.indicesToOffset=!0,s<2?A:`i2o_${e}(${A})`),I=(...A)=>s===0?\"0u\":`${p.indices}(${A.map(f).join(\",\")})`,E=(A,B)=>s<2?`${A}`:`${D(A,B,s)}`,z=(A,B,oe)=>s<2?`${A}=${oe};`:`${D(A,B,s)}=${oe};`,M={},O=(A,B)=>{m.broadcastedIndicesToOffset=!0;let oe=`${B.name}broadcastedIndicesTo${e}Offset`;if(oe in M)return`${oe}(${A})`;let he=[];for(let ae=s-1;ae>=0;ae--){let ge=B.indicesGet(\"outputIndices\",ae+B.rank-s);he.push(`${E(y,ae)} * (${ge} % ${E(_,ae)})`)}return M[oe]=`fn ${oe}(outputIndices: ${B.type.indices}) -> u32 {\n return ${he.length>0?he.join(\"+\"):\"0u\"};\n }`,`${oe}(${A})`},W=(A,B)=>(()=>{if(p.storage===p.value)return`${e}[${A}]=${B};`;if(p.storage===\"vec2<u32>\"&&p.value===\"i32\")return`${e}[${A}]=vec2<u32>(u32(${B}), select(0u, 0xFFFFFFFFu, ${B} < 0));`;if(p.storage===\"vec2<u32>\"&&p.value===\"u32\")return`${e}[${A}]=vec2<u32>(u32(${B}), 0u);`;if(p.storage===\"u32\"&&p.value===\"vec4<bool>\")return`${e}[${A}]=dot(vec4<u32>(0x1, 0x100, 0x10000, 0x1000000), vec4<u32>(${B}));`;throw new Error(`not supported combination of storage type ${p.storage} and value type ${p.value} yet`)})(),K=A=>(()=>{if(p.storage===p.value)return`${e}[${A}]`;if(p.storage===\"vec2<u32>\"&&p.value===\"i32\")return`i32(${e}[${A}].x)`;if(p.storage===\"vec2<u32>\"&&p.value===\"u32\")return`u32(${e}[${A}].x)`;if(p.storage===\"u32\"&&p.value===\"vec4<bool>\")return`vec4<bool>(bool(${e}[${A}] & 0xFFu), bool(${e}[${A}] & 0xFF00u), bool(${e}[${A}] & 0xFF0000u), bool(${e}[${A}] & 0xFF000000u))`;throw new Error(`not supported combination of storage type ${p.storage} and value type ${p.value} yet`)})(),U=s<2?\"\":`\n fn get_${e}ByIndices(indices: ${p.indices}) -> ${l} {\n return ${K(`i2o_${e}(indices)`)};\n }`,R=s<2?\"\":(()=>{let A=a.map(oe=>`d${oe}: u32`).join(\", \"),B=a.map(oe=>`d${oe}`).join(\", \");return`\n fn get_${e}(${A}) -> ${l} {\n return get_${e}ByIndices(${I(B)});\n }`})(),G=(...A)=>{if(A.length!==s)throw new Error(`indices length must be ${s}`);let B=A.map(f).join(\",\");return s===0?K(\"0u\"):s===1?K(B[0]):(m.get=!0,m.getByIndices=!0,m.indicesToOffset=!0,`get_${e}(${B})`)},V=A=>s<2?K(A):(m.getByIndices=!0,m.indicesToOffset=!0,`get_${e}ByIndices(${A})`),j=s<2?\"\":`\n fn set_${e}ByIndices(indices: ${p.indices}, value: ${l}) {\n ${W(`i2o_${e}(indices)`,\"value\")}\n }`,Q=s<2?\"\":(()=>{let A=a.map(oe=>`d${oe}: u32`).join(\", \"),B=a.map(oe=>`d${oe}`).join(\", \");return`\n fn set_${e}(${A}, value: ${l}) {\n set_${e}ByIndices(${I(B)}, value);\n }`})();return{impl:()=>{let A=[],B=!1;return m.offsetToIndices&&(A.push(b),B=!0),m.indicesToOffset&&(A.push($),B=!0),m.broadcastedIndicesToOffset&&(Object.values(M).forEach(oe=>A.push(oe)),B=!0),m.set&&(A.push(Q),B=!0),m.setByIndices&&(A.push(j),B=!0),m.get&&(A.push(R),B=!0),m.getByIndices&&(A.push(U),B=!0),!i&&B&&A.unshift(`const ${_} = ${p.indices}(${n.join(\",\")});`,`const ${y} = ${p.indices}(${x.computeStrides(n).join(\",\")});`),A.join(`\n`)},type:p,offsetToIndices:w,indicesToOffset:T,broadcastedIndicesToOffset:O,indices:I,indicesGet:E,indicesSet:z,set:(...A)=>{if(A.length!==s+1)throw new Error(`indices length must be ${s}`);let B=A[s];if(typeof B!=\"string\")throw new Error(\"value must be string\");let oe=A.slice(0,s).map(f).join(\",\");return s===0?W(\"0u\",B):s===1?W(oe[0],B):(m.set=!0,m.setByIndices=!0,m.indicesToOffset=!0,`set_${e}(${oe}, ${B})`)},setByOffset:W,setByIndices:(A,B)=>s<2?W(A,B):(m.setByIndices=!0,m.indicesToOffset=!0,`set_${e}ByIndices(${A}, ${B});`),get:G,getByOffset:K,getByIndices:V,usage:r,name:e,strides:y,shape:_,rank:s}},S=(e,t,n,r=1)=>Xt(e,t,n,\"input\",r),C=(e,t,n,r=1)=>Xt(e,t,n,\"output\",r),To=(e,t,n)=>Xt(e,t,n,\"atomicOutput\",1),Yt=(e,t,n,r=1)=>Xt(e,t,n,\"internal\",r),Hn=class{constructor(t,n){this.normalizedDispatchGroup=t;this.limits=n;this.internalVariables=[];this.variables=[];this.uniforms=[];this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(t){return`if (global_idx >= ${typeof t==\"number\"?`${t}u`:t}) { return; }`}mainStart(t=Je){let n=typeof t==\"number\"?t:t[0],r=typeof t==\"number\"?1:t[1],o=typeof t==\"number\"?1:t[2];if(n>this.limits.maxComputeWorkgroupSizeX||r>this.limits.maxComputeWorkgroupSizeY||o>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${n}, ${r}, ${o}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(n*r*o>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${n}, ${r}, ${o}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let i=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1,s=i?`@builtin(global_invocation_id) global_id : vec3<u32>,\n @builtin(workgroup_id) workgroup_id : vec3<u32>,\n @builtin(local_invocation_index) local_idx : u32,\n @builtin(local_invocation_id) local_id : vec3<u32>`:`@builtin(global_invocation_id) global_id : vec3<u32>,\n @builtin(local_invocation_id) local_id : vec3<u32>,\n @builtin(local_invocation_index) local_idx : u32,\n @builtin(workgroup_id) workgroup_id : vec3<u32>,\n @builtin(num_workgroups) num_workgroups : vec3<u32>`,a=i?`let global_idx = global_id.x;\n let workgroup_index = workgroup_id.x;`:`let workgroup_index = workgroup_id.z * num_workgroups[0] * num_workgroups[1] +\n workgroup_id.y * num_workgroups[0] + workgroup_id.x;\n let global_idx = workgroup_index * ${n*r*o}u + local_idx;`;return`@compute @workgroup_size(${n}, ${r}, ${o})\n fn main(${s}) {\n ${a}\n `}appendVariableUniforms(t){t.rank!==0&&(t.shape.startsWith(\"uniforms.\")&&this.uniforms.push({name:t.shape.replace(\"uniforms.\",\"\"),type:\"u32\",length:t.rank}),t.strides.startsWith(\"uniforms.\")&&this.uniforms.push({name:t.strides.replace(\"uniforms.\",\"\"),type:\"u32\",length:t.rank}))}declareVariable(t,n){if(t.usage===\"internal\")throw new Error(\"cannot use internal variable with declareVariable(). use registerInternalVariables() instead.\");this.variables.push(t),this.appendVariableUniforms(t);let r=t.usage===\"input\"?\"read\":\"read_write\",o=t.usage===\"atomicOutput\"?\"atomic<i32>\":t.type.storage;return`@group(0) @binding(${n}) var<storage, ${r}> ${t.name}: array<${o}>;`}declareVariables(...t){return t.map(n=>this.declareVariable(n,this.variableIndex++)).join(`\n`)}registerInternalVariable(t){if(t.usage!==\"internal\")throw new Error(\"cannot use input or output variable with registerInternalVariable(). use declareVariables() instead.\");this.internalVariables.push(t),this.appendVariableUniforms(t)}registerInternalVariables(...t){return t.forEach(n=>this.registerInternalVariable(n)),this}registerUniform(t,n,r=1){return this.uniforms.push({name:t,type:n,length:r}),this}registerUniforms(t){return this.uniforms=this.uniforms.concat(t),this}uniformDeclaration(){if(this.uniforms.length===0)return\"\";let t=[];for(let{name:n,type:r,length:o}of this.uniforms)if(o&&o>4)r===\"f16\"?t.push(`@align(16) ${n}:array<mat2x4<${r}>, ${Math.ceil(o/8)}>`):t.push(`${n}:array<vec4<${r}>, ${Math.ceil(o/4)}>`);else{let i=o==null||o===1?r:`vec${o}<${r}>`;t.push(`${n}:${i}`)}return`\n struct Uniforms { ${t.join(\", \")} };\n @group(0) @binding(${this.variableIndex}) var<uniform> uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map(t=>t.impl()).join(`\n`)+this.internalVariables.map(t=>t.impl()).join(`\n`)}get variablesInfo(){if(this.uniforms.length===0)return;let t=n=>[12,10,1,6][[\"u32\",\"f16\",\"f32\",\"i32\"].indexOf(n)];return this.uniforms.map(n=>[t(n.type),n.length??1])}},Io=(e,t)=>new Hn(e,t)});var pd,Co,md,fd,hd,gd,me,Ao,Eo,Ne=k(()=>{\"use strict\";N();H();ue();q();pd=(e,t)=>{if(!e||e.length!==1)throw new Error(\"Transpose requires 1 input.\");if(t.length!==0&&t.length!==e[0].dims.length)throw new Error(`perm size ${t.length} does not match input rank ${e[0].dims.length}`)},Co=(e,t)=>t.length!==0?t:[...new Array(e).keys()].reverse(),md=(e,t)=>x.sortBasedOnPerm(e,Co(e.length,t)),fd=(e,t,n,r)=>{let o=`fn perm(i: ${r.type.indices}) -> ${n.type.indices} {\n var a: ${n.type.indices};`;for(let i=0;i<t;++i)o+=`a[${e[i]}]=i[${i}];`;return o+=\"return a;}\"},hd=(e,t)=>{let n=[],r=[];for(let o=0;o<e.length;++o)e[o]!==1&&n.push(e[o]),e[t[o]]!==1&&r.push(t[o]);return{newShape:n,newPerm:r}},gd=(e,t)=>{let n=0;for(let r=0;r<e.length;++r)if(t[e[r]]!==1){if(e[r]<n)return!1;n=e[r]}return!0},me=(e,t)=>{let n=e.dataType,r=e.dims.length,o=Co(r,t),i=md(e.dims,o),s=e.dims,a=i,u=r<2||gd(o,e.dims),d;if(u)return d=h=>{let _=S(\"input\",n,s,4),y=C(\"output\",n,a,4);return`\n ${h.registerUniform(\"output_size\",\"u32\").declareVariables(_,y)}\n ${h.mainStart()}\n ${h.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n output[global_idx] = input[global_idx];\n }`},{name:\"TransposeCopy\",shaderCache:{inputDependencies:[\"type\"]},getRunData:()=>{let h=x.size(i);return{outputs:[{dims:i,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64/4)},programUniforms:[{type:12,data:Math.ceil(h/4)}]}},getShaderSource:d};let{newShape:l,newPerm:c}=hd(e.dims,o),p=x.areEqual(c,[2,3,1]),f=x.areEqual(c,[3,1,2]);if(l.length===2||p||f){s=p?[l[0],l[1]*l[2]]:f?[l[0]*l[1],l[2]]:l,a=[s[1],s[0]];let h=16;return d=_=>{let y=S(\"a\",n,s.length),g=C(\"output\",n,a.length);return`\n ${_.registerUniform(\"output_size\",\"u32\").declareVariables(y,g)}\n var<workgroup> tile : array<array<${g.type.value}, ${h+1}>, ${h}>;\n ${_.mainStart([h,h,1])}\n let stride = (uniforms.output_shape[1] - 1) / ${h} + 1;\n let workgroup_id_x = workgroup_index % stride;\n let workgroup_id_y = workgroup_index / stride;\n let input_col = workgroup_id_y * ${h}u + local_id.x;\n let input_row = workgroup_id_x * ${h}u + local_id.y;\n if (input_row < uniforms.a_shape[0] && input_col < uniforms.a_shape[1]) {\n tile[local_id.y][local_id.x] = ${y.getByIndices(`${y.type.indices}(input_row, input_col)`)};\n }\n workgroupBarrier();\n\n let output_col = workgroup_id_x * ${h}u + local_id.x;\n let output_row = workgroup_id_y * ${h}u + local_id.y;\n if (output_row < uniforms.output_shape[0] && output_col < uniforms.output_shape[1]) {\n ${g.setByIndices(`${g.type.indices}(output_row, output_col)`,\"tile[local_id.x][local_id.y]\")}\n }\n }`},{name:\"TransposeShared\",shaderCache:{inputDependencies:[\"type\"]},getRunData:()=>{let _=x.size(i);return{outputs:[{dims:i,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(a[1]/h),y:Math.ceil(a[0]/h)},programUniforms:[{type:12,data:_},...P(s,a)]}},getShaderSource:d}}return d=h=>{let _=S(\"a\",n,s.length),y=C(\"output\",n,a.length);return`\n ${h.registerUniform(\"output_size\",\"u32\").declareVariables(_,y)}\n\n ${fd(o,r,_,y)}\n\n ${h.mainStart()}\n ${h.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n\n let indices = ${y.offsetToIndices(\"global_idx\")};\n let aIndices = perm(indices);\n\n ${y.setByOffset(\"global_idx\",_.getByIndices(\"aIndices\"))}\n }`},{name:\"Transpose\",shaderCache:{hint:`${t}`,inputDependencies:[\"rank\"]},getRunData:()=>{let h=x.size(i);return{outputs:[{dims:i,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...P(s,a)]}},getShaderSource:d}},Ao=(e,t)=>{pd(e.inputs,t.perm),e.compute(me(e.inputs[0],t.perm))},Eo=e=>L({perm:e.perm})});var yd,bd,_d,wd,$d,vd,xd,Sd,Td,Id,Be,ko,Po,zo,Bo,Do,Oo,Mo,Uo,Ro,Vo,No=k(()=>{\"use strict\";N();H();q();Jt();Ne();yd={max:\"select(bestValue, candidate, candidate > bestValue)\",min:\"select(bestValue, candidate, candidate < bestValue)\",mean:\"bestValue + candidate\",sum:\"bestValue + candidate\",prod:\"bestValue * candidate\",sumSquare:\"bestValue + candidate * candidate\",logSumExp:\"bestValue + exp(candidate)\",l1:\"bestValue + abs(candidate)\",l2:\"bestValue + candidate * candidate\",logSum:\"bestValue + candidate\"},bd={max:\"select(bestValue, candidate, candidate > bestValue)\",min:\"select(bestValue, candidate, candidate < bestValue)\",mean:\"bestValue + candidate\",sum:\"bestValue + candidate\",prod:\"bestValue * candidate\",sumSquare:\"bestValue + candidate\",logSumExp:\"bestValue + candidate\",l1:\"bestValue + candidate\",l2:\"bestValue + candidate\",logSum:\"bestValue + candidate\"},_d={max:\"_A[offset]\",min:\"_A[offset]\",mean:\"0\",sum:\"0\",prod:\"1\",sumSquare:\"0\",logSumExp:\"0\",l1:\"0\",l2:\"0\",logSum:\"0\"},wd={max:\"bestValue\",min:\"bestValue\",sum:\"bestValue\",prod:\"bestValue\",sumSquare:\"bestValue\",logSumExp:\"log(bestValue)\",l1:\"bestValue\",l2:\"sqrt(bestValue)\",logSum:\"log(bestValue)\"},$d=(e,t)=>{let n=[];for(let r=t-e;r<t;++r)n.push(r);return n},vd=(e,t)=>{let n=[],r=e.length;for(let i=0;i<r;i++)t.indexOf(i)===-1&&n.push(e[i]);let o=t.map(i=>e[i]);return[n,o]},xd=(e,t)=>{let n=e.length+t.length,r=[],o=0;for(let i=0;i<n;i++)t.indexOf(i)===-1?r.push(e[o++]):r.push(1);return r},Sd=(e,t)=>{for(let n=0;n<e.length;++n)if(e[e.length-n-1]!==t-1-n)return!1;return!0},Td=(e,t)=>{let n=[];if(!Sd(e,t)){for(let r=0;r<t;++r)e.indexOf(r)===-1&&n.push(r);e.forEach(r=>n.push(r))}return n},Id=(e,t,n,r,o,i,s)=>{let a=n[0].dims,u=x.size(i),d=x.size(s),l=S(\"_A\",n[0].dataType,a),c=C(\"output\",o,i),p=64;u===1&&(p=256);let f=`\n var<workgroup> aBestValues : array<f32, ${p}>;\n `,m=h=>`\n ${h.registerUniform(\"reduceSize\",\"u32\").declareVariables(l,c)}\n ${f}\n fn DIV_CEIL(a : u32, b : u32) -> u32 {\n return ((a - 1u) / b + 1u);\n }\n ${h.mainStart(p)}\n\n let outputIndex = global_idx / ${p};\n let offset = outputIndex * uniforms.reduceSize;\n\n var bestValue = f32(${_d[r]});\n let Length = uniforms.reduceSize;\n for (var k = local_idx; k < Length; k = k + ${p}) {\n let candidate = f32(${l.getByOffset(\"offset + k\")});\n bestValue = ${yd[r]};\n }\n aBestValues[local_idx] = bestValue;\n workgroupBarrier();\n\n var reduceSize = min(Length, ${p}u);\n for (var currentSize = reduceSize / 2u; reduceSize > 1u;\n currentSize = reduceSize / 2u) {\n let interval = DIV_CEIL(reduceSize, 2u);\n if (local_idx < currentSize) {\n let candidate = aBestValues[local_idx + interval];\n bestValue = ${bd[r]};\n aBestValues[local_idx] = bestValue;\n }\n reduceSize = interval;\n workgroupBarrier();\n }\n\n if (local_idx == 0u) {\n ${c.setByOffset(\"outputIndex\",`${r===\"mean\"?`${c.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${c.type.storage}(${wd[r]})`}`)};\n }\n }`;return{name:e,shaderCache:{hint:`${t};${p}`,inputDependencies:[\"type\"]},getShaderSource:m,getRunData:()=>({outputs:[{dims:i,dataType:o}],dispatchGroup:{x:u},programUniforms:[{type:12,data:d}]})}},Be=(e,t,n,r)=>{let o=e.inputs.length===1?n:Kn(e.inputs,n),i=o.axes;i.length===0&&!o.noopWithEmptyAxes&&(i=e.inputs[0].dims.map((f,m)=>m));let s=x.normalizeAxes(i,e.inputs[0].dims.length),a=s,u=e.inputs[0],d=Td(a,e.inputs[0].dims.length);d.length>0&&(u=e.compute(me(e.inputs[0],d),{inputs:[0],outputs:[-1]})[0],a=$d(a.length,u.dims.length));let[l,c]=vd(u.dims,a),p=l;o.keepDims&&(p=xd(l,s)),e.compute(Id(t,o.cacheKey,[u],r,e.inputs[0].dataType,p,c),{inputs:[u]})},ko=(e,t)=>{Be(e,\"ReduceMeanShared\",t,\"mean\")},Po=(e,t)=>{Be(e,\"ReduceL1Shared\",t,\"l1\")},zo=(e,t)=>{Be(e,\"ReduceL2Shared\",t,\"l2\")},Bo=(e,t)=>{Be(e,\"ReduceLogSumExpShared\",t,\"logSumExp\")},Do=(e,t)=>{Be(e,\"ReduceMaxShared\",t,\"max\")},Oo=(e,t)=>{Be(e,\"ReduceMinShared\",t,\"min\")},Mo=(e,t)=>{Be(e,\"ReduceProdShared\",t,\"prod\")},Uo=(e,t)=>{Be(e,\"ReduceSumShared\",t,\"sum\")},Ro=(e,t)=>{Be(e,\"ReduceSumSquareShared\",t,\"sumSquare\")},Vo=(e,t)=>{Be(e,\"ReduceLogSumShared\",t,\"logSum\")}});var De,Cd,en,Kn,Oe,Ad,Ed,kd,Pd,zd,Bd,Dd,Od,Md,Ud,Me,Lo,Wo,Go,Ho,Fo,qo,Ko,jo,Zo,Qo,Jt=k(()=>{\"use strict\";N();H();ue();q();No();De=e=>{if(!e||e.length===0||e.length>2)throw new Error(\"Reduce op requires 1 or 2 inputs.\");if(e.length===2&&e[1].dims.length!==1)throw new Error(\"Invalid axes input dims.\")},Cd=e=>[\"\",\"\",`var value = ${e.getByIndices(\"input_indices\")};`,\"\"],en=(e,t,n,r,o,i,s=!1,a=!1)=>{let u=[],d=n[0].dims,l=d.length,c=x.normalizeAxes(o,l),p=!a&&c.length===0;d.forEach((_,y)=>{p||c.indexOf(y)>=0?s&&u.push(1):u.push(_)});let f=u.length,m=x.size(u);return{name:e,shaderCache:t,getShaderSource:_=>{let y=[],g=S(\"_A\",n[0].dataType,l),b=C(\"output\",i,f),w=r(g,b,c),v=w[2];for(let $=0,T=0;$<l;$++)p||c.indexOf($)>=0?(s&&T++,v=`for(var j${$}: u32 = 0; j${$} < ${d[$]}; j${$}++) {\n ${w[2].includes(\"last_index\")?`let last_index = j${$};`:\"\"}\n ${g.indicesSet(\"input_indices\",$,`j${$}`)}\n ${v}\n }`):(y.push(`${g.indicesSet(\"input_indices\",$,b.indicesGet(\"output_indices\",T))};`),T++);return`\n\n ${_.registerUniform(\"output_size\",\"u32\").declareVariables(g,b)}\n\n ${_.mainStart()}\n ${_.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n var input_indices: ${g.type.indices};\n let output_indices = ${b.offsetToIndices(\"global_idx\")};\n\n ${y.join(`\n`)}\n ${w[0]} // init ops for reduce max/min\n ${w[1]}\n ${v}\n ${w[3]}\n ${w.length===4?b.setByOffset(\"global_idx\",\"value\"):w.slice(4).join(`\n`)}\n }`},getRunData:()=>({outputs:[{dims:u,dataType:i}],dispatchGroup:{x:Math.ceil(m/64)},programUniforms:[{type:12,data:m},...P(d,u)]})}},Kn=(e,t)=>{let n=[];return e[1].dims[0]>0&&e[1].getBigInt64Array().forEach(r=>n.push(Number(r))),L({axes:n,keepDims:t.keepDims,noopWithEmptyAxes:t.noopWithEmptyAxes})},Oe=(e,t,n,r)=>{let o=e.inputs,i=o.length===1?n:Kn(o,n);e.compute(en(t,{hint:i.cacheKey,inputDependencies:[\"rank\"]},[o[0]],i.noopWithEmptyAxes&&i.axes.length===0?Cd:r,i.axes,o[0].dataType,i.keepDims,i.noopWithEmptyAxes),{inputs:[0]})},Ad=(e,t)=>{De(e.inputs),Oe(e,\"ReduceLogSum\",t,(r,o)=>[`var value = ${o.type.storage}(0);`,\"\",`value += ${r.getByIndices(\"input_indices\")};`,\"value = log(value);\"])},Ed=(e,t)=>{De(e.inputs),Oe(e,\"ReduceL1\",t,(r,o)=>[`var value = ${o.type.storage}(0);`,\"\",`value += abs(${r.getByIndices(\"input_indices\")});`,\"\"])},kd=(e,t)=>{De(e.inputs),Oe(e,\"ReduceL2\",t,(r,o)=>[`var t = ${o.type.value}(0); var value = ${o.type.value}(0);`,\"\",`t = ${r.getByIndices(\"input_indices\")}; value += (t * t);`,\"value = sqrt(value);\"])},Pd=(e,t)=>{De(e.inputs),Oe(e,\"ReduceLogSumExp\",t,(r,o)=>[`var value = ${o.type.storage}(0);`,\"\",`value += exp(${r.getByIndices(\"input_indices\")});`,\"value = log(value);\"])},zd=(e,t)=>{De(e.inputs),Oe(e,\"ReduceMax\",t,(r,o,i)=>{let s=[];for(let a=0;a<r.rank;a++)(i.indexOf(a)>=0||i.length===0)&&s.push(r.indicesSet(\"input_indices\",a,0));return[`${s.join(`\n`)}`,`var value = ${r.getByIndices(\"input_indices\")};`,`value = max(value, ${r.getByIndices(\"input_indices\")});`,\"\"]})},Bd=(e,t)=>{De(e.inputs),Oe(e,\"ReduceMean\",t,(r,o,i)=>{let s=1;for(let a=0;a<r.rank;a++)(i.indexOf(a)>=0||i.length===0)&&(s*=e.inputs[0].dims[a]);return[\"var sum = f32(0);\",\"\",`sum += f32(${r.getByIndices(\"input_indices\")});`,`let value = ${o.type.value}(sum / ${s});`]})},Dd=(e,t)=>{De(e.inputs),Oe(e,\"ReduceMin\",t,(r,o,i)=>{let s=[];for(let a=0;a<r.rank;a++)(i.indexOf(a)>=0||i.length===0)&&s.push(`input_indices[${a}] = 0;`);return[`${s.join(`\n`)}`,`var value = ${r.getByIndices(\"input_indices\")};`,`value = min(value, ${r.getByIndices(\"input_indices\")});`,\"\"]})},Od=(e,t)=>{De(e.inputs),Oe(e,\"ReduceProd\",t,(r,o)=>[`var value = ${o.type.storage}(1);`,\"\",`value *= ${r.getByIndices(\"input_indices\")};`,\"\"])},Md=(e,t)=>{De(e.inputs),Oe(e,\"ReduceSum\",t,(r,o)=>[`var value = ${o.type.storage}(0);`,\"\",`value += ${r.getByIndices(\"input_indices\")};`,\"\"])},Ud=(e,t)=>{De(e.inputs),Oe(e,\"ReduceSumSquare\",t,(r,o)=>[`var t = ${o.type.value}(0); var value = ${o.type.value}(0);`,\"\",`t = ${r.getByIndices(\"input_indices\")}; value += t * t;`,\"\"])},Me=(e,t,n)=>{if(t.length===0)return n;let r=1,o=1;for(let i=0;i<t.length;i++)t.indexOf(i)===-1?r*=e[i]:o*=e[i];return o<32&&r>1024},Lo=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?Bd(e,t):ko(e,t)},Wo=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?Ed(e,t):Po(e,t)},Go=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?kd(e,t):zo(e,t)},Ho=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?Pd(e,t):Bo(e,t)},Fo=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?zd(e,t):Do(e,t)},qo=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?Dd(e,t):Oo(e,t)},Ko=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?Od(e,t):Mo(e,t)},jo=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?Md(e,t):Uo(e,t)},Zo=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?Ud(e,t):Ro(e,t)},Qo=(e,t)=>{Me(e.inputs[0].dims,t.axes,t.noopWithEmptyAxes)?Ad(e,t):Vo(e,t)}});var Xo,Yo,Jo,jn,ei=k(()=>{\"use strict\";N();ue();Jt();Xo=e=>{if(!e||e.length===0||e.length>2)throw new Error(\"ArgMinMaxOp op requires 1 or 2 inputs.\");if(e[0].dataType!==1)throw new Error(\"Invalid input type.\")},Yo=(e,t)=>{Xo(e.inputs);let n=(r,o,i)=>{let s=[];for(let a=0;a<r.rank;a++)(i.indexOf(a)>=0||i.length===0)&&s.push(`input_indices[${a}] = 0;`);return[`${s.join(`\n`)}`,`var value = ${r.getByIndices(\"input_indices\")};\nvar best_index : i32 = 0;`,`if (${r.getByIndices(\"input_indices\")} ${t.selectLastIndex>0?\"<=\":\"<\"} value) {\n value = ${r.getByIndices(\"input_indices\")};\n best_index = i32(last_index);\n }`,\"\",o.setByOffset(\"global_idx\",\"best_index\")]};e.compute(en(\"ArgMin\",{hint:t.cacheKey,inputDependencies:[\"rank\"]},[e.inputs[0]],n,[t.axis],7,t.keepDims),{inputs:[0]})},Jo=(e,t)=>{Xo(e.inputs);let n=(r,o,i)=>{let s=[];for(let a=0;a<r.rank;a++)(i.indexOf(a)>=0||i.length===0)&&s.push(`input_indices[${a}] = 0;`);return[`${s.join(`\n`)}`,`var value = ${r.getByIndices(\"input_indices\")};\nvar best_index : i32 = 0;`,`if (${r.getByIndices(\"input_indices\")} ${t.selectLastIndex>0?\">=\":\">\"} value) {\n value = ${r.getByIndices(\"input_indices\")};\n best_index = i32(last_index);\n }`,\"\",o.setByOffset(\"global_idx\",\"best_index\")]};e.compute(en(\"argMax\",{hint:t.cacheKey,inputDependencies:[\"rank\"]},[e.inputs[0]],n,[t.axis],7,t.keepDims),{inputs:[0]})},jn=e=>L(e)});var Rd,Zn,Vd,Nd,Ld,st,Wd,ti,tn=k(()=>{\"use strict\";N();H();Qt();q();Rd=(e,t)=>{let n=e[0],r=e[1],o=e[2],i=e[3],s=e[4],a=e[5];if(s&&a)throw new Error(\"Attention cannot have both past and attention_bias\");if(n.dims.length!==3)throw new Error('Input \"input\" must have 3 dimensions');let u=n.dims[0],d=n.dims[1],l=n.dims[2];if(o.dims.length!==1)throw new Error('Input \"bias\" is expected to have 1 dimensions');if(r.dims.length!==2)throw new Error('Input \"weights\" is expected to have 2 dimensions');if(r.dims[0]!==l)throw new Error(\"Input 1 dimension 0 should have same length as dimension 2 of input 0\");if(o.dims[0]!==r.dims[1])throw new Error('Input \"bias\" dimension 0 should have same length as dimension 1 of input \"weights\"');let c=o.dims[0]/3,p=c,f=p;if(t.qkvHiddenSizes.length>0){if(t.qkvHiddenSizes.length!==3)throw new Error(\"qkv_hidden_sizes attribute should have 3 elements\");for(let b of t.qkvHiddenSizes)if(b%t.numHeads!==0)throw new Error(\"qkv_hidden_sizes should be divisible by num_heads\");c=t.qkvHiddenSizes[0],p=t.qkvHiddenSizes[1],f=t.qkvHiddenSizes[2]}let m=d;if(c!==p)throw new Error(\"qkv_hidden_sizes first element should be same as the second\");if(o.dims[0]!==c+p+f)throw new Error('Input \"bias\" dimension 0 should have same length as sum of Q/K/V hidden sizes');let h=0;if(s){if(p!==f)throw new Error('Input \"past\" expect k_hidden_size == v_hidden_size');if(s.dims.length!==5)throw new Error('Input \"past\" must have 5 dimensions');if(s.dims[0]!==2)throw new Error('Input \"past\" first dimension must be 2');if(s.dims[1]!==u)throw new Error('Input \"past\" second dimension must be batch_size');if(s.dims[2]!==t.numHeads)throw new Error('Input \"past\" third dimension must be num_heads');if(s.dims[4]!==p/t.numHeads)throw new Error('Input \"past\" fifth dimension must be k_hidden_size / num_heads');t.pastPresentShareBuffer||(h=s.dims[3])}let _=m+h,y=-1,g=0;if(i)throw new Error(\"Mask not supported\");if(s)throw new Error(\"past is not supported\");if(a){if(a.dims.length!==4)throw new Error('Input \"attention_bias\" must have 4 dimensions');if(a.dims[0]!==u||a.dims[1]!==t.numHeads||a.dims[2]!==d||a.dims[3]!==_)throw new Error('Expect \"attention_bias\" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:u,sequenceLength:d,pastSequenceLength:h,kvSequenceLength:m,totalSequenceLength:_,maxSequenceLength:y,inputHiddenSize:l,hiddenSize:c,vHiddenSize:f,headSize:Math.floor(c/t.numHeads),vHeadSize:Math.floor(f/t.numHeads),numHeads:t.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:t.maskFilterValue,maskType:g,scale:t.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},Zn=(e,t,n)=>t&&e?`\n let total_sequence_length_input = u32(${t.getByOffset(\"0\")});\n let present_sequence_length = max(total_sequence_length_input, uniforms.past_sequence_length);\n let is_subsequent_prompt: bool = sequence_length > 1 && sequence_length != total_sequence_length_input;\n let is_first_prompt: bool = is_subsequent_prompt == false && sequence_length == total_sequence_length_input;\n total_sequence_length = u32(${e?.getByOffset(\"batchIdx\")}) + 1;\n var past_sequence_length: u32 = 0;\n if (is_first_prompt == false) {\n past_sequence_length = total_sequence_length - sequence_length;\n }\n `:`\n ${n?\"let past_sequence_length = uniforms.past_sequence_length\":\"\"};\n let present_sequence_length = total_sequence_length;\n `,Vd=(e,t,n,r,o,i,s,a)=>{let u=J(s?1:i),d=64,l=i/u;l<d&&(d=32);let c=Math.ceil(i/u/d),p=[{type:12,data:t},{type:12,data:n},{type:12,data:r},{type:12,data:o},{type:12,data:l},{type:12,data:c}],f=re(e.dataType,u),m=pe(1,u),h=[\"type\"];s&&h.push(\"type\"),a&&h.push(\"type\");let _=y=>{let g=C(\"x\",e.dataType,e.dims,u),b=[g],w=s?S(\"seq_lens\",s.dataType,s.dims):void 0;w&&b.push(w);let v=a?S(\"total_sequence_length_input\",a.dataType,a.dims):void 0;v&&b.push(v);let $=pe(e.dataType),T=[{name:\"batch_size\",type:\"u32\"},{name:\"num_heads\",type:\"u32\"},{name:\"past_sequence_length\",type:\"u32\"},{name:\"sequence_length\",type:\"u32\"},{name:\"total_sequence_length\",type:\"u32\"},{name:\"elements_per_thread\",type:\"u32\"}];return`\n var<workgroup> thread_max: array<f32, ${d}>;\n var<workgroup> thread_sum: array<f32, ${d}>;\n ${y.registerUniforms(T).declareVariables(...b)}\n ${y.mainStart([d,1,1])}\n let batchIdx = workgroup_id.z / uniforms.num_heads;\n let headIdx = workgroup_id.z % uniforms.num_heads;\n let sequence_length = uniforms.sequence_length;\n var total_sequence_length = uniforms.total_sequence_length;\n ${Zn(w,v,!1)}\n let local_offset = local_idx * uniforms.elements_per_thread;\n let offset = (global_idx / ${d}) * uniforms.total_sequence_length + local_offset;\n let seq_causal_length = ${s?\"u32(past_sequence_length + workgroup_id.y + 1)\":\"total_sequence_length\"};\n var thread_max_vector = ${m}(-3.4028234663852886e+38f);\n for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) {\n thread_max_vector = max(${m}(x[offset + i]), thread_max_vector);\n }\n thread_max[local_idx] = ${(()=>{switch(u){case 1:return\"thread_max_vector\";case 2:return\"max(thread_max_vector.x, thread_max_vector.y)\";case 4:return\"max(max(thread_max_vector.x, thread_max_vector.y), max(thread_max_vector.z, thread_max_vector.w))\";default:throw new Error(`Unsupported components: ${u}`)}})()};\n workgroupBarrier();\n\n var max_value = f32(-3.4028234663852886e+38f);\n for (var i = 0u; i < ${d}; i++) {\n max_value = max(thread_max[i], max_value);\n }\n\n var sum_vector = ${m}(0);\n for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) {\n sum_vector += exp(${m}(x[offset + i]) - max_value);\n }\n thread_sum[local_idx] = ${(()=>{switch(u){case 1:return\"sum_vector\";case 2:return\"sum_vector.x + sum_vector.y\";case 4:return\"sum_vector.x + sum_vector.y + sum_vector.z + sum_vector.w\";default:throw new Error(`Unsupported components: ${u}`)}})()};\n workgroupBarrier();\n\n var sum: f32 = 0;\n for (var i = 0u; i < ${d}; i++) {\n sum += thread_sum[i];\n }\n\n if (sum == 0) {\n for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) {\n x[offset + i] = ${g.type.value}(${$}(1.0) / ${$}(seq_causal_length));\n }\n } else {\n for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) {\n var f32input = ${m}(x[offset + i]);\n x[offset + i] = ${g.type.value}(exp(f32input - max_value) / sum);\n }\n }\n ${s?`\n for (var total_seq_id: u32 = seq_causal_length; total_seq_id + local_offset < uniforms.total_sequence_length; total_seq_id++) {\n x[offset + total_seq_id] = ${g.type.value}(${$}(0));\n }`:\"\"};\n }`};return{name:\"AttentionProbsSoftmax\",shaderCache:{hint:`${d};${f};${u}`,inputDependencies:h},getShaderSource:_,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:o,z:t*n},programUniforms:p})}},Nd=(e,t,n,r,o,i,s,a,u)=>{let d=s+i.kvSequenceLength,l=[i.batchSize,i.numHeads,i.sequenceLength,d],c=e>1&&r,p=i.kvNumHeads?i.kvNumHeads:i.numHeads,f=c?[i.batchSize,p,d,i.headSize]:void 0,m=i.nReps?i.nReps:1,h=i.scale===0?1/Math.sqrt(i.headSize):i.scale,_=J(i.headSize),y=i.headSize/_,g=12,b={x:Math.ceil(d/g),y:Math.ceil(i.sequenceLength/g),z:i.batchSize*i.numHeads},w=[{type:12,data:i.sequenceLength},{type:12,data:y},{type:12,data:d},{type:12,data:i.numHeads},{type:12,data:i.headSize},{type:1,data:h},{type:12,data:s},{type:12,data:i.kvSequenceLength},{type:12,data:m}],v=c&&r&&x.size(r.dims)>0,$=[\"type\",\"type\"];v&&$.push(\"type\"),o&&$.push(\"type\"),a&&$.push(\"type\"),u&&$.push(\"type\");let T=[{dims:l,dataType:t.dataType,gpuDataType:0}];c&&T.push({dims:f,dataType:t.dataType,gpuDataType:0});let I=E=>{let z=S(\"q\",t.dataType,t.dims,_),M=S(\"key\",n.dataType,n.dims,_),O=[z,M];if(v){let j=S(\"past_key\",r.dataType,r.dims,_);O.push(j)}o&&O.push(S(\"attention_bias\",o.dataType,o.dims));let W=a?S(\"seq_lens\",a.dataType,a.dims):void 0;W&&O.push(W);let K=u?S(\"total_sequence_length_input\",u.dataType,u.dims):void 0;K&&O.push(K);let U=C(\"output\",t.dataType,l),R=[U];c&&R.push(C(\"present_key\",t.dataType,f,_));let G=pe(1,_),V=[{name:\"M\",type:\"u32\"},{name:\"K\",type:\"u32\"},{name:\"N\",type:\"u32\"},{name:\"num_heads\",type:\"u32\"},{name:\"head_size\",type:\"u32\"},{name:\"alpha\",type:\"f32\"},{name:\"past_sequence_length\",type:\"u32\"},{name:\"kv_sequence_length\",type:\"u32\"},{name:\"n_reps\",type:\"u32\"}];return`\n const TILE_SIZE = ${g}u;\n\n var<workgroup> tileQ: array<${z.type.storage}, ${g*g}>;\n var<workgroup> tileK: array<${z.type.storage}, ${g*g}>;\n ${E.registerUniforms(V).declareVariables(...O,...R)}\n ${E.mainStart([g,g,1])}\n // x holds the N and y holds the M\n let headIdx = workgroup_id.z % uniforms.num_heads;\n let kvHeadIdx = ${m===1?\"headIdx\":\"headIdx / uniforms.n_reps\"};\n let kv_num_heads = ${m===1?\"uniforms.num_heads\":\"uniforms.num_heads / uniforms.n_reps\"};\n let batchIdx = workgroup_id.z / uniforms.num_heads;\n let m = workgroup_id.y * TILE_SIZE;\n let n = workgroup_id.x * TILE_SIZE;\n let sequence_length = uniforms.M;\n var total_sequence_length = uniforms.N;\n ${Zn(W,K,!0)}\n let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx;\n let qOffset = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K;\n ${v&&c?\"let pastKeyOffset = absKvHeadIdx * uniforms.past_sequence_length * uniforms.K;\":\"\"};\n let kOffset = absKvHeadIdx * uniforms.kv_sequence_length * uniforms.K;\n ${c?\"let presentKeyOffset = absKvHeadIdx * uniforms.N * uniforms.K;\":\"\"}\n var value = ${G}(0);\n for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) {\n if (global_id.y < uniforms.M && w + local_id.x < uniforms.K) {\n tileQ[TILE_SIZE * local_id.y + local_id.x] = q[qOffset + local_id.y * uniforms.K + w + local_id.x];\n }\n if (n + local_id.y < uniforms.N && w + local_id.x < uniforms.K) {\n var idx = TILE_SIZE * local_id.y + local_id.x;\n ${v&&c?`\n if (n + local_id.y < past_sequence_length) {\n tileK[idx] = past_key[pastKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x];\n } else if (n + local_id.y - past_sequence_length < uniforms.kv_sequence_length) {\n tileK[idx] = key[kOffset + (n + local_id.y - past_sequence_length) * uniforms.K + w + local_id.x];\n }`:`\n if (n + local_id.y < uniforms.kv_sequence_length) {\n tileK[idx] = key[kOffset + (n + local_id.y) * uniforms.K + w + local_id.x];\n }`}\n ${c?`if (n + local_id.y < present_sequence_length) {\n present_key[presentKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x] = tileK[idx];\n }`:\"\"}\n }\n workgroupBarrier();\n\n for (var k: u32 = 0u; k < TILE_SIZE && w+k < uniforms.K; k++) {\n value += ${G}(tileQ[TILE_SIZE * local_id.y + k] * tileK[TILE_SIZE * local_id.x + k]);\n }\n\n workgroupBarrier();\n }\n\n if (global_id.y < uniforms.M && global_id.x < total_sequence_length) {\n let headOffset = workgroup_id.z * uniforms.M * uniforms.N;\n let outputIdx = headOffset + global_id.y * uniforms.N + global_id.x;\n var sum: f32 = ${(()=>{switch(_){case 1:return\"value\";case 2:return\"value.x + value.y\";case 4:return\"value.x + value.y + value.z + value.w\";default:throw new Error(`Unsupported components: ${_}`)}})()};\n output[outputIdx] = ${U.type.value} (sum * uniforms.alpha) + ${o?\"attention_bias[outputIdx]\":\"0.0\"};\n }\n }`};return{name:\"AttentionProbs\",shaderCache:{hint:`${_};${o!==void 0};${r!==void 0};${e}`,inputDependencies:$},getRunData:()=>({outputs:T,dispatchGroup:b,programUniforms:w}),getShaderSource:I}},Ld=(e,t,n,r,o,i,s=void 0,a=void 0)=>{let u=i+o.kvSequenceLength,d=o.nReps?o.nReps:1,l=o.vHiddenSize*d,c=e>1&&r,p=o.kvNumHeads?o.kvNumHeads:o.numHeads,f=c?[o.batchSize,p,u,o.headSize]:void 0,m=[o.batchSize,o.sequenceLength,l],h=12,_={x:Math.ceil(o.vHeadSize/h),y:Math.ceil(o.sequenceLength/h),z:o.batchSize*o.numHeads},y=[{type:12,data:o.sequenceLength},{type:12,data:u},{type:12,data:o.vHeadSize},{type:12,data:o.numHeads},{type:12,data:o.headSize},{type:12,data:l},{type:12,data:i},{type:12,data:o.kvSequenceLength},{type:12,data:d}],g=c&&r&&x.size(r.dims)>0,b=[\"type\",\"type\"];g&&b.push(\"type\"),s&&b.push(\"type\"),a&&b.push(\"type\");let w=[{dims:m,dataType:t.dataType,gpuDataType:0}];c&&w.push({dims:f,dataType:t.dataType,gpuDataType:0});let v=$=>{let T=S(\"probs\",t.dataType,t.dims),I=S(\"v\",n.dataType,n.dims),E=[T,I];g&&E.push(S(\"past_value\",r.dataType,r.dims));let z=s?S(\"seq_lens\",s.dataType,s.dims):void 0;s&&E.push(z);let M=a?S(\"total_sequence_length_input\",a.dataType,a.dims):void 0;a&&E.push(M);let W=[C(\"output\",t.dataType,m)];c&&W.push(C(\"present_value\",t.dataType,f));let K=[{name:\"M\",type:\"u32\"},{name:\"K\",type:\"u32\"},{name:\"N\",type:\"u32\"},{name:\"num_heads\",type:\"u32\"},{name:\"head_size\",type:\"u32\"},{name:\"v_hidden_size\",type:\"u32\"},{name:\"past_sequence_length\",type:\"u32\"},{name:\"kv_sequence_length\",type:\"u32\"},{name:\"n_reps\",type:\"u32\"}];return`\n const TILE_SIZE = ${h}u;\n var<workgroup> tileQ: array<${T.type.value}, ${h*h}>;\n var<workgroup> tileV: array<${T.type.value}, ${h*h}>;\n ${$.registerUniforms(K).declareVariables(...E,...W)}\n ${$.mainStart([h,h,1])}\n let headIdx = workgroup_id.z % uniforms.num_heads;\n let batchIdx = workgroup_id.z / uniforms.num_heads;\n let kvHeadIdx = ${d===1?\"headIdx\":\"headIdx / uniforms.n_reps\"};\n let kv_num_heads = ${d===1?\"uniforms.num_heads\":\"uniforms.num_heads / uniforms.n_reps\"};\n let m = global_id.y;\n let n = global_id.x;\n let sequence_length = uniforms.M;\n var total_sequence_length = uniforms.K;\n ${Zn(z,M,!0)}\n let offsetA = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K;\n let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; // kvHeadIdx is relative to the batch\n ${g&&c?\"let pastValueOffset = absKvHeadIdx * uniforms.N * uniforms.past_sequence_length + n;\":\"\"};\n let vOffset = absKvHeadIdx * uniforms.N * uniforms.kv_sequence_length + n;\n ${c?\"let presentValueOffset = absKvHeadIdx * uniforms.N * uniforms.K + n;\":\"\"}\n var value = ${T.type.storage}(0);\n for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) {\n if (m < uniforms.M && w + local_id.x < uniforms.K) {\n tileQ[TILE_SIZE * local_id.y + local_id.x] = probs[offsetA + w + local_id.x];\n }\n if (n < uniforms.N && w + local_id.y < uniforms.K) {\n var idx = TILE_SIZE * local_id.y + local_id.x;\n ${g&&c?`\n if (w + local_id.y < past_sequence_length) {\n tileV[idx] = past_value[pastValueOffset + (w + local_id.y) * uniforms.N];\n } else if (w + local_id.y - past_sequence_length < uniforms.kv_sequence_length) {\n tileV[idx] = v[vOffset + (w + local_id.y - past_sequence_length) * uniforms.N];\n }\n `:`\n if (w + local_id.y < uniforms.kv_sequence_length) {\n tileV[idx] = v[vOffset + (w + local_id.y) * uniforms.N];\n }`}\n ${c?`\n if (w + local_id.y < present_sequence_length) {\n present_value[presentValueOffset + (w + local_id.y) * uniforms.N] = tileV[idx];\n }`:\"\"}\n }\n workgroupBarrier();\n for (var k: u32 = 0u; k < TILE_SIZE && w+k < total_sequence_length; k++) {\n value += tileQ[TILE_SIZE * local_id.y + k] * tileV[TILE_SIZE * k + local_id.x];\n }\n workgroupBarrier();\n }\n\n // we need to transpose output from BNSH_v to BSND_v\n if (m < uniforms.M && n < uniforms.N) {\n let outputIdx = batchIdx * uniforms.M * uniforms.v_hidden_size + m * uniforms.v_hidden_size\n + headIdx * uniforms.N + n;\n output[outputIdx] = value;\n }\n }`};return{name:\"AttentionScore\",shaderCache:{hint:`${r!==void 0};${e}`,inputDependencies:b},getRunData:()=>({outputs:w,dispatchGroup:_,programUniforms:y}),getShaderSource:v}},st=(e,t,n,r,o,i,s,a,u,d,l=void 0,c=void 0)=>{let p=Math.min(e.outputCount,1+(s?1:0)+(a?1:0)),f=p>1?s:void 0,m=p>1?a:void 0,h=p>1?d.pastSequenceLength:0,_=h+d.kvSequenceLength,y=u&&x.size(u.dims)>0?u:void 0,g=[t,n];f&&x.size(f.dims)>0&&g.push(f),y&&g.push(y),l&&g.push(l),c&&g.push(c);let b=e.compute(Nd(p,t,n,f,y,d,h,l,c),{inputs:g,outputs:p>1?[-1,1]:[-1]})[0];e.compute(Vd(b,d.batchSize,d.numHeads,h,d.sequenceLength,_,l,c),{inputs:l&&c?[b,l,c]:[b],outputs:[]});let w=[b,r];m&&x.size(m.dims)>0&&w.push(m),l&&w.push(l),c&&w.push(c),e.compute(Ld(p,b,r,m,d,h,l,c),{inputs:w,outputs:p>1?[0,2]:[0]})},Wd=(e,t)=>{let n=[t.batchSize,t.numHeads,t.sequenceLength,t.headSize],r=t.sequenceLength,o=t.inputHiddenSize,i=t.headSize,s=12,a={x:Math.ceil(t.headSize/s),y:Math.ceil(t.sequenceLength/s),z:t.batchSize*t.numHeads},u=[e.inputs[0],e.inputs[1],e.inputs[2]],d=[{type:12,data:r},{type:12,data:o},{type:12,data:i},{type:12,data:t.numHeads},{type:12,data:t.headSize},{type:12,data:t.hiddenSize},{type:12,data:t.hiddenSize+t.hiddenSize+t.vHiddenSize}],l=c=>{let p=C(\"output_q\",u[0].dataType,n),f=C(\"output_k\",u[0].dataType,n),m=C(\"output_v\",u[0].dataType,n),h=S(\"input\",u[0].dataType,u[0].dims),_=S(\"weight\",u[1].dataType,u[1].dims),y=S(\"bias\",u[2].dataType,u[2].dims),g=h.type.storage,b=[{name:\"M\",type:\"u32\"},{name:\"K\",type:\"u32\"},{name:\"N\",type:\"u32\"},{name:\"num_heads\",type:\"u32\"},{name:\"head_size\",type:\"u32\"},{name:\"hidden_size\",type:\"u32\"},{name:\"ldb\",type:\"u32\"}];return`\n const TILE_SIZE = ${s}u;\n var<workgroup> tileInput: array<${g}, ${s*s}>;\n var<workgroup> tileWeightQ: array<${g}, ${s*s}>;\n var<workgroup> tileWeightK: array<${g}, ${s*s}>;\n var<workgroup> tileWeightV: array<${g}, ${s*s}>;\n ${c.registerUniforms(b).declareVariables(h,_,y,p,f,m)}\n ${c.mainStart([s,s,1])}\n let batchIndex = workgroup_id.z / uniforms.num_heads;\n let headNumber = workgroup_id.z % uniforms.num_heads;\n let m = global_id.y;\n let n = global_id.x;\n\n let inputOffset = batchIndex * (uniforms.M * uniforms.K) + m * uniforms.K;\n let biasOffsetQ = headNumber * uniforms.head_size;\n let biasOffsetK = uniforms.hidden_size + biasOffsetQ;\n let biasOffsetV = uniforms.hidden_size + biasOffsetK;\n\n var valueQ = ${g}(0);\n var valueK = ${g}(0);\n var valueV = ${g}(0);\n for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) {\n if (m < uniforms.M && w + local_id.x < uniforms.K) {\n tileInput[TILE_SIZE * local_id.y + local_id.x] = input[inputOffset + w + local_id.x];\n }\n if (n < uniforms.N && w + local_id.y < uniforms.K) {\n let offset = n + (w + local_id.y) * uniforms.ldb;\n tileWeightQ[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetQ + offset];\n tileWeightK[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetK + offset];\n tileWeightV[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetV + offset];\n }\n workgroupBarrier();\n for (var k: u32 = 0u; k<TILE_SIZE && w+k < uniforms.K; k++) {\n let inputTileOffset = TILE_SIZE * local_id.y + k;\n let weightTileOffset = TILE_SIZE * k + local_id.x;\n valueQ += tileInput[inputTileOffset] * tileWeightQ[weightTileOffset];\n valueK += tileInput[inputTileOffset] * tileWeightK[weightTileOffset];\n valueV += tileInput[inputTileOffset] * tileWeightV[weightTileOffset];\n }\n\n workgroupBarrier();\n }\n\n let headOffset = (m * uniforms.N + n) % uniforms.head_size;\n valueQ += bias[headOffset + biasOffsetQ];\n valueK += bias[headOffset + biasOffsetK];\n valueV += bias[headOffset + biasOffsetV];\n\n let offset = workgroup_id.z * uniforms.M * uniforms.N;\n if (m < uniforms.M && n < uniforms.N) {\n let outputIdx = offset + m * uniforms.N + n;\n output_q[outputIdx] = valueQ;\n output_k[outputIdx] = valueK;\n output_v[outputIdx] = valueV;\n }\n }`};return e.compute({name:\"AttentionPrepare\",shaderCache:{inputDependencies:[\"type\",\"type\",\"type\"]},getRunData:()=>({outputs:[{dims:n,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:n,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:n,dataType:e.inputs[0].dataType,gpuDataType:0}],dispatchGroup:a,programUniforms:d}),getShaderSource:l},{inputs:u,outputs:[-1,-1,-1]})},ti=(e,t)=>{let n=Rd(e.inputs,t),[r,o,i]=Wd(e,n);return st(e,r,o,i,e.inputs[4],void 0,void 0,void 0,e.inputs[5],n)}});var Gd,Hd,Fd,ni,ri=k(()=>{\"use strict\";we();N();H();ue();q();Gd=(e,t)=>{if(!e||e.length!==5)throw new Error(\"BatchNormalization requires 5 inputs\");let n=(r,o,i)=>{let s=o.length;if(s!==r.length)throw new Error(`${i}: num dimensions != ${s}`);o.forEach((a,u)=>{if(a!==r[u])throw new Error(`${i}: dim[${u}] do not match`)})};if(e[0].dims.length>1){let r=t.format===\"NHWC\"?t.spatial?e[0].dims.slice(-1):e[0].dims.slice(-1).concat(e[0].dims.slice(1,e[0].dims.length-1)):e[0].dims.slice(1,t.spatial?2:void 0);n(e[1].dims,r,\"Invalid input scale\"),n(e[2].dims,r,\"Invalid input B\"),n(e[3].dims,r,\"Invalid input mean\"),n(e[4].dims,r,\"Invalid input var\")}else n(e[1].dims,[1],\"Invalid input scale\"),n(e[2].dims,[1],\"Invalid input B\"),n(e[3].dims,[1],\"Invalid input mean\"),n(e[4].dims,[1],\"Invalid input var\")},Hd=(e,t)=>{let{epsilon:n,spatial:r,format:o}=t,i=e[0].dims,s=r?J(i[i.length-1]):1,a=o===\"NHWC\"&&i.length>1?s:1,u=x.size(i)/s,d=r,l=d?i.length:i,c=S(\"x\",e[0].dataType,e[0].dims,s),p=S(\"scale\",e[1].dataType,e[1].dims,a),f=S(\"bias\",e[2].dataType,e[2].dims,a),m=S(\"inputMean\",e[3].dataType,e[3].dims,a),h=S(\"inputVar\",e[4].dataType,e[4].dims,a),_=C(\"y\",e[0].dataType,l,s),y=()=>{let b=\"\";if(r)b=`let cOffset = ${i.length===1?\"0u\":o===\"NHWC\"?`outputIndices[${i.length-1}] / ${s}`:\"outputIndices[1]\"};`;else if(o===\"NCHW\")b=`\n ${_.indicesSet(\"outputIndices\",\"0\",\"0\")}\n let cOffset = ${_.indicesToOffset(\"outputIndices\")};`;else{b=`var cIndices = ${p.type.indices}(0);\n cIndices[0] = outputIndices[${i.length-1}];`;for(let w=1;w<p.rank;w++)b+=`cIndices[${w}] = outputIndices[${w}];`;b+=`let cOffset = ${p.indicesToOffset(\"cIndices\")};`}return b},g=b=>`\n const epsilon = ${n};\n ${b.registerUniform(\"outputSize\",\"u32\").declareVariables(c,p,f,m,h,_)}\n ${b.mainStart()}\n ${b.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n var outputIndices = ${_.offsetToIndices(`global_idx * ${s}`)};\n ${y()}\n let scale = ${p.getByOffset(\"cOffset\")};\n let bias = ${f.getByOffset(\"cOffset\")};\n let inputMean = ${m.getByOffset(\"cOffset\")};\n let inputVar = ${h.getByOffset(\"cOffset\")};\n let x = ${c.getByOffset(\"global_idx\")};\n let value = (x - inputMean) * inverseSqrt(inputVar + epsilon) * scale + bias;\n ${_.setByOffset(\"global_idx\",\"value\")}\n }`;return{name:\"BatchNormalization\",shaderCache:{hint:`${t.epsilon}_${t.format}_${r}_${s}`,inputDependencies:d?[\"rank\",\"type\",\"type\",\"type\",\"type\"]:void 0},getShaderSource:g,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(u/64)},programUniforms:d?[{type:12,data:u},...P(i)]:[{type:12,data:u}]})}},Fd=e=>L(e),ni=(e,t)=>{let{inputs:n,outputCount:r}=e,o=Fd({...t,outputCount:r});if(te.webgpu.validateInputContent&&Gd(n,o),t.trainingMode)throw new Error(\"BatchNormalization trainingMode is not supported yet.\");e.compute(Hd(n,o))}});var qd,Kd,oi,ii=k(()=>{\"use strict\";H();q();qd=e=>{if(e[0].dims.length!==3)throw new Error(\"input should have 3 dimensions\");if(![320,640,1280].includes(e[0].dims[2]))throw new Error(\"number of channels should be 320, 640 or 1280\");if(e[1].dims.length!==1)throw new Error(\"bias is expected to have 1 dimensions\");if(e[0].dims[2]!==e[1].dims[0])throw new Error(\"last dimension of input and bias are not the same\")},Kd=e=>{let t=e[0].dims,n=e[0].dims[2],r=x.size(t)/4,o=e[0].dataType,i=S(\"input\",o,t,4),s=S(\"bias\",o,[n],4),a=S(\"residual\",o,t,4),u=C(\"output\",o,t,4);return{name:\"BiasAdd\",getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(r/64)}}),getShaderSource:l=>`\n const channels = ${n}u / 4;\n ${l.declareVariables(i,s,a,u)}\n\n ${l.mainStart()}\n ${l.guardAgainstOutOfBoundsWorkgroupSizes(r)}\n let value = ${i.getByOffset(\"global_idx\")}\n + ${s.getByOffset(\"global_idx % channels\")} + ${a.getByOffset(\"global_idx\")};\n ${u.setByOffset(\"global_idx\",\"value\")}\n }`}},oi=e=>{qd(e.inputs),e.compute(Kd(e.inputs))}});var jd,ee,si,ai,ui,di,li,ci,pi,mi,fi,Zd,hi,gi,yi,bi,bt,_i,nn,wi,$i,vi,xi,Si,Ti,Ii,Ci,Ai,Ei,ki,Pi,zi,Bi,Di,Oi,Mi,Ui,Qn,Xn,Ri,Vi,Ni,Qd,Xd,Li,rn=k(()=>{\"use strict\";N();H();ue();q();jd=(e,t,n,r,o,i,s)=>{let a=Math.ceil(t/4),u=\"\";typeof o==\"string\"?u=`${o}(a)`:u=o(\"a\");let d=S(\"inputData\",n,[a],4),l=C(\"outputData\",r,[a],4),c=[{name:\"vec_size\",type:\"u32\"}];return s&&c.push(...s),`\n ${e.registerUniforms(c).declareVariables(d,l)}\n\n ${i??\"\"}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.vec_size\")}\n\n let a = ${d.getByOffset(\"global_idx\")};\n ${l.setByOffset(\"global_idx\",u)}\n }`},ee=(e,t,n,r,o,i=e.dataType,s,a)=>{let u=[{type:12,data:Math.ceil(x.size(e.dims)/4)}];return s&&u.push(...s),{name:t,shaderCache:{hint:o,inputDependencies:[\"type\"]},getShaderSource:d=>jd(d,x.size(e.dims),e.dataType,i,n,r,a),getRunData:d=>({outputs:[{dims:e.dims,dataType:i}],dispatchGroup:{x:Math.ceil(x.size(d[0].dims)/64/4)},programUniforms:u})}},si=e=>{e.compute(ee(e.inputs[0],\"Abs\",\"abs\"))},ai=e=>{e.compute(ee(e.inputs[0],\"Acos\",\"acos\"))},ui=e=>{e.compute(ee(e.inputs[0],\"Acosh\",\"acosh\"))},di=e=>{e.compute(ee(e.inputs[0],\"Asin\",\"asin\"))},li=e=>{e.compute(ee(e.inputs[0],\"Asinh\",\"asinh\"))},ci=e=>{e.compute(ee(e.inputs[0],\"Atan\",\"atan\"))},pi=e=>{e.compute(ee(e.inputs[0],\"Atanh\",\"atanh\"))},mi=e=>L(e),fi=(e,t)=>{let n;switch(t.to){case 10:n=\"vec4<f16>\";break;case 1:n=\"vec4<f32>\";break;case 12:n=\"vec4<u32>\";break;case 6:n=\"vec4<i32>\";break;case 9:n=\"vec4<bool>\";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${t.to}`)}e.compute(ee(e.inputs[0],\"Cast\",n,void 0,t.cacheKey,t.to))},Zd=e=>{let t,n,r=e.length>=2&&e[1].data!==0,o=e.length>=3&&e[2].data!==0;switch(e[0].dataType){case 1:t=r?e[1].getFloat32Array()[0]:-34028234663852886e22,n=o?e[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:t=r?e[1].getUint16Array()[0]:64511,n=o?e[2].getUint16Array()[0]:31743;break;default:throw new Error(\"Unsupport data type\")}return L({min:t,max:n})},hi=(e,t)=>{let n=t||Zd(e.inputs),r=pe(e.inputs[0].dataType);e.compute(ee(e.inputs[0],\"Clip\",o=>`clamp(${o}, vec4<${r}>(uniforms.min), vec4<${r}>(uniforms.max))`,void 0,n.cacheKey,void 0,[{type:e.inputs[0].dataType,data:n.min},{type:e.inputs[0].dataType,data:n.max}],[{name:\"min\",type:r},{name:\"max\",type:r}]),{inputs:[0]})},gi=e=>{e.compute(ee(e.inputs[0],\"Ceil\",\"ceil\"))},yi=e=>{e.compute(ee(e.inputs[0],\"Cos\",\"cos\"))},bi=e=>{e.compute(ee(e.inputs[0],\"Cosh\",\"cosh\"))},bt=e=>L(e),_i=(e,t)=>{let n=pe(e.inputs[0].dataType);e.compute(ee(e.inputs[0],\"Elu\",r=>`elu_vf32(${r})`,`\n const elu_alpha_ = ${n}(${t.alpha});\n\n fn elu_f32(a: ${n}) -> ${n} {\n return select((exp(a) - 1.0) * elu_alpha_, a, a >= 0.0);\n }\n\n fn elu_vf32(v: vec4<${n}>) -> vec4<${n}> {\n return vec4(elu_f32(v.x), elu_f32(v.y), elu_f32(v.z), elu_f32(v.w));\n }`,t.cacheKey))},nn=(e=\"f32\")=>`\nconst r0: ${e} = 0.3275911;\nconst r1: ${e} = 0.254829592;\nconst r2: ${e} = -0.284496736;\nconst r3: ${e} = 1.421413741;\nconst r4: ${e} = -1.453152027;\nconst r5: ${e} = 1.061405429;\n\nfn erf_vf32(v: vec4<${e}>) -> vec4<${e}> {\n let absv = abs(v);\n let x = 1.0 / (1.0 + r0 * absv);\n return sign(v) * (1.0 - ((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x * exp(-absv * absv));\n}`,wi=e=>{let t=pe(e.inputs[0].dataType);e.compute(ee(e.inputs[0],\"Erf\",n=>`erf_vf32(${n})`,nn(t)))},$i=e=>{e.compute(ee(e.inputs[0],\"Exp\",\"exp\"))},vi=e=>{e.compute(ee(e.inputs[0],\"Floor\",\"floor\"))},xi=e=>{let t=pe(e.inputs[0].dataType);e.compute(ee(e.inputs[0],\"Gelu\",n=>`0.5 * ${n} * (1.0 + erf_vf32(${n} * 0.7071067811865475))`,nn(t)))},Si=(e,t)=>{let n=pe(e.inputs[0].dataType);e.compute(ee(e.inputs[0],\"LeakyRelu\",r=>`select(leaky_relu_alpha_ * ${r}, ${r}, ${r} >= vec4<${n}>(0.0))`,`const leaky_relu_alpha_ = ${n}(${t.alpha});`,t.cacheKey))},Ti=e=>{e.compute(ee(e.inputs[0],\"Not\",t=>`!${t}`))},Ii=e=>{e.compute(ee(e.inputs[0],\"Neg\",t=>`-${t}`))},Ci=e=>{e.compute(ee(e.inputs[0],\"Reciprocal\",t=>`1.0/${t}`))},Ai=e=>{let t=pe(e.inputs[0].dataType);e.compute(ee(e.inputs[0],\"Relu\",n=>`select(vec4<${t}>(0.0), ${n}, ${n} > vec4<${t}>(0.0))`))},Ei=e=>{e.compute(ee(e.inputs[0],\"Sigmoid\",t=>`(1.0 / (1.0 + exp(-${t})))`))},ki=e=>L(e),Pi=(e,t)=>{let n=pe(e.inputs[0].dataType);e.compute(ee(e.inputs[0],\"HardSigmoid\",r=>`max(vec4<${n}>(0.0), min(vec4<${n}>(1.0), ${t.alpha} * ${r} + vec4<${n}>(${t.beta})))`,void 0,t.cacheKey))},zi=e=>{e.compute(ee(e.inputs[0],\"Sin\",\"sin\"))},Bi=e=>{e.compute(ee(e.inputs[0],\"Sinh\",\"sinh\"))},Di=e=>{e.compute(ee(e.inputs[0],\"Sqrt\",\"sqrt\"))},Oi=e=>{e.compute(ee(e.inputs[0],\"Tan\",\"tan\"))},Mi=e=>`sign(${e}) * (1 - exp(-2 * abs(${e}))) / (1 + exp(-2 * abs(${e})))`,Ui=e=>{e.compute(ee(e.inputs[0],\"Tanh\",Mi))},Qn=(e=\"f32\")=>`\nconst fast_gelu_a: ${e} = 0.5;\nconst fast_gelu_b: ${e} = 0.7978845608028654;\nconst fast_gelu_c: ${e} = 0.035677408136300125;\n\nfn tanh_v(v: vec4<${e}>) -> vec4<${e}> {\n return ${Mi(\"v\")};\n}\n`,Xn=e=>`(fast_gelu_a + fast_gelu_a * tanh_v(${e} * (fast_gelu_c * ${e} * ${e} + fast_gelu_b))) * ${e}`,Ri=e=>{let t=pe(e.inputs[0].dataType);e.compute(ee(e.inputs[0],\"FastGelu\",Xn,Qn(t),void 0,e.inputs[0].dataType))},Vi=(e,t)=>{let n=pe(e.inputs[0].dataType);return e.compute(ee(e.inputs[0],\"ThresholdedRelu\",r=>`select(vec4<${n}>(0.0), ${r}, ${r} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${n}>(${t.alpha});`,t.cacheKey)),0},Ni=e=>{e.compute(ee(e.inputs[0],\"Log\",\"log\"))},Qd=(e,t)=>`\nconst alpha = vec4<${e}>(${t});\nconst one = ${e}(1.0);\nconst zero = ${e}(0.0);\n\nfn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {\n let v = x *alpha;\n var x1 : vec4<${e}>;\n for (var i = 0; i < 4; i = i + 1) {\n if (v[i] >= zero) {\n x1[i] = one / (one + exp(-v[i]));\n } else {\n x1[i] = one - one / (one + exp(v[i]));\n }\n }\n return x * x1;\n}\n`,Xd=e=>`quick_gelu_impl(${e})`,Li=(e,t)=>{let n=pe(e.inputs[0].dataType);e.compute(ee(e.inputs[0],\"QuickGelu\",Xd,Qd(n,t.alpha),t.cacheKey,e.inputs[0].dataType))}});var Yd,Jd,Gi,Hi=k(()=>{\"use strict\";H();q();rn();Yd=e=>{if(e[0].dims.length!==3)throw new Error(\"input should have 3 dimensions\");if(![2560,5120,10240].includes(e[0].dims[2]))throw new Error(\"hidden state should be 2560, 5120 or 10240\");if(e[1].dims.length!==1)throw new Error(\"bias is expected to have 1 dimensions\");if(e[0].dims[2]!==e[1].dims[0])throw new Error(\"last dimension of input and bias are not the same\")},Jd=e=>{let t=e[0].dims.slice();t[2]=t[2]/2;let n=S(\"input\",e[0].dataType,e[0].dims,4),r=S(\"bias\",e[0].dataType,[e[0].dims[2]],4),o=C(\"output\",e[0].dataType,t,4),i=x.size(t)/4,s=re(e[0].dataType);return{name:\"BiasSplitGelu\",getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(i/64)}}),getShaderSource:u=>`\n const M_SQRT2 = sqrt(2.0);\n const halfChannels = ${e[0].dims[2]/4/2}u;\n\n ${u.declareVariables(n,r,o)}\n\n ${nn(s)}\n\n ${u.mainStart()}\n ${u.guardAgainstOutOfBoundsWorkgroupSizes(i)}\n let biasIdx = global_idx % halfChannels;\n let batchIndex = global_idx / halfChannels;\n let inputOffset = biasIdx + batchIndex * halfChannels * 2;\n let valueLeft = input[inputOffset] + bias[biasIdx];\n let valueRight = input[inputOffset + halfChannels] + bias[biasIdx + halfChannels];\n let geluRight = valueRight * 0.5 * (erf_vf32(valueRight / M_SQRT2) + 1);\n\n ${o.setByOffset(\"global_idx\",\"valueLeft * geluRight\")}\n }`}},Gi=e=>{Yd(e.inputs),e.compute(Jd(e.inputs))}});var el,tl,Ue,Fi,qi,Ki,ji,Zi,Qi,Xi,Yi,Ji,es,ts=k(()=>{\"use strict\";N();H();q();el=(e,t,n,r,o,i,s,a,u,d,l,c)=>{let p,f;typeof a==\"string\"?p=f=(g,b)=>`${a}((${g}),(${b}))`:typeof a==\"function\"?p=f=a:(p=a.scalar,f=a.vector);let m=C(\"outputData\",l,r.length,4),h=S(\"aData\",u,t.length,4),_=S(\"bData\",d,n.length,4),y;if(o)if(i){let g=x.size(t)===1,b=x.size(n)===1,w=t.length>0&&t[t.length-1]%4===0,v=n.length>0&&n[n.length-1]%4===0;g||b?y=m.setByOffset(\"global_idx\",f(g?`${h.type.value}(${h.getByOffset(\"0\")}.x)`:h.getByOffset(\"global_idx\"),b?`${_.type.value}(${_.getByOffset(\"0\")}.x)`:_.getByOffset(\"global_idx\"))):y=`\n let outputIndices = ${m.offsetToIndices(\"global_idx * 4u\")};\n let offsetA = ${h.broadcastedIndicesToOffset(\"outputIndices\",m)};\n let offsetB = ${_.broadcastedIndicesToOffset(\"outputIndices\",m)};\n ${m.setByOffset(\"global_idx\",f(s||w?h.getByOffset(\"offsetA / 4u\"):`${h.type.value}(${h.getByOffset(\"offsetA / 4u\")}[offsetA % 4u])`,s||v?_.getByOffset(\"offsetB / 4u\"):`${_.type.value}(${_.getByOffset(\"offsetB / 4u\")}[offsetB % 4u])`))}\n `}else y=m.setByOffset(\"global_idx\",f(h.getByOffset(\"global_idx\"),_.getByOffset(\"global_idx\")));else{if(!i)throw new Error(\"no necessary to use scalar implementation for element-wise binary op implementation.\");let g=(b,w,v=\"\")=>{let $=`aData[indexA${w}][componentA${w}]`,T=`bData[indexB${w}][componentB${w}]`;return`\n let outputIndices${w} = ${m.offsetToIndices(`global_idx * 4u + ${w}u`)};\n let offsetA${w} = ${h.broadcastedIndicesToOffset(`outputIndices${w}`,m)};\n let offsetB${w} = ${_.broadcastedIndicesToOffset(`outputIndices${w}`,m)};\n let indexA${w} = offsetA${w} / 4u;\n let indexB${w} = offsetB${w} / 4u;\n let componentA${w} = offsetA${w} % 4u;\n let componentB${w} = offsetB${w} % 4u;\n ${b}[${w}] = ${v}(${p($,T)});\n `};l===9?y=`\n var data = vec4<u32>(0);\n ${g(\"data\",0,\"u32\")}\n ${g(\"data\",1,\"u32\")}\n ${g(\"data\",2,\"u32\")}\n ${g(\"data\",3,\"u32\")}\n outputData[global_idx] = dot(vec4<u32>(0x1, 0x100, 0x10000, 0x1000000), vec4<u32>(data));`:y=`\n ${g(\"outputData[global_idx]\",0)}\n ${g(\"outputData[global_idx]\",1)}\n ${g(\"outputData[global_idx]\",2)}\n ${g(\"outputData[global_idx]\",3)}\n `}return`\n ${e.registerUniform(\"vec_size\",\"u32\").declareVariables(h,_,m)}\n\n ${c??\"\"}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.vec_size\")}\n ${y}\n }`},tl=(e,t,n,r,o,i,s=n.dataType)=>{let a=n.dims.map(Number),u=r.dims.map(Number),d=!x.areEqual(a,u),l=a,c=x.size(a),p=!1,f=!1,m=[d];if(d){let h=ze.calcShape(a,u,!1);if(!h)throw new Error(\"Can't perform binary op on the given tensors\");l=h.slice(),c=x.size(l);let _=x.size(a)===1,y=x.size(u)===1,g=a.length>0&&a[a.length-1]%4===0,b=u.length>0&&u[u.length-1]%4===0;m.push(_),m.push(y),m.push(g),m.push(b);let w=1;for(let v=1;v<l.length;v++){let $=a[a.length-v],T=u[u.length-v];if($===T)w*=$;else break}w%4===0?(f=!0,p=!0):(_||y||g||b)&&(p=!0)}else p=!0;return m.push(p),{name:e,shaderCache:{hint:t+m.map(h=>h.toString()).join(\"_\"),inputDependencies:[\"rank\",\"rank\"]},getShaderSource:h=>el(h,a,u,l,p,d,f,o,n.dataType,r.dataType,s,i),getRunData:()=>({outputs:[{dims:l,dataType:s}],dispatchGroup:{x:Math.ceil(c/64/4)},programUniforms:[{type:12,data:Math.ceil(x.size(l)/4)},...P(a,u,l)]})}},Ue=(e,t,n,r,o,i)=>{e.compute(tl(t,o??\"\",e.inputs[0],e.inputs[1],n,r,i))},Fi=e=>{Ue(e,\"Add\",(t,n)=>`${t}+${n}`)},qi=e=>{Ue(e,\"Div\",(t,n)=>`${t}/${n}`)},Ki=e=>{Ue(e,\"Equal\",{scalar:(t,n)=>`u32(${t}==${n})`,vector:(t,n)=>`vec4<u32>(${t}==${n})`},void 0,void 0,9)},ji=e=>{Ue(e,\"Mul\",(t,n)=>`${t}*${n}`)},Zi=e=>{let t=S(\"input\",e.inputs[0].dataType,e.inputs[0].dims).type.value;Ue(e,\"Pow\",{scalar:(r,o)=>`pow_custom(${r},${o})`,vector:(r,o)=>`pow_vector_custom(${r},${o})`},`\n fn pow_custom(a : ${t}, b : ${t}) -> ${t} {\n if (b == ${t}(0.0)) {\n return ${t}(1.0);\n } else if (a < ${t}(0.0) && f32(b) != floor(f32(b))) {\n return ${t}(pow(f32(a), f32(b))); // NaN\n }\n return select(sign(a), ${t}(1.0), round(f32(abs(b) % ${t}(2.0))) != 1.0) * ${t}(${t===\"i32\"?\"round\":\"\"}(pow(f32(abs(a)), f32(b))));\n }\n fn pow_vector_custom(a : vec4<${t}>, b : vec4<${t}>) -> vec4<${t}> {\n // TODO: implement vectorized pow\n return vec4<${t}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w));\n }\n `)},Qi=e=>{Ue(e,\"Sub\",(t,n)=>`${t}-${n}`)},Xi=e=>{Ue(e,\"Greater\",{scalar:(t,n)=>`u32(${t}>${n})`,vector:(t,n)=>`vec4<u32>(${t}>${n})`},void 0,void 0,9)},Yi=e=>{Ue(e,\"Less\",{scalar:(t,n)=>`u32(${t}<${n})`,vector:(t,n)=>`vec4<u32>(${t}<${n})`},void 0,void 0,9)},Ji=e=>{Ue(e,\"GreaterOrEqual\",{scalar:(t,n)=>`u32(${t}>=${n})`,vector:(t,n)=>`vec4<u32>(${t}>=${n})`},void 0,void 0,9)},es=e=>{Ue(e,\"LessOrEqual\",{scalar:(t,n)=>`u32(${t}<=${n})`,vector:(t,n)=>`vec4<u32>(${t}<=${n})`},void 0,void 0,9)}});var rl,ol,il,sl,ns,rs,os=k(()=>{\"use strict\";N();H();ue();q();rl=(e,t)=>{if(!e||e.length<1)throw new Error(\"too few inputs\");let n=0,r=e[n],o=r.dataType,i=r.dims.length;e.forEach((s,a)=>{if(a!==n){if(s.dataType!==o)throw new Error(\"input tensors should be one type\");if(s.dims.length!==i)throw new Error(\"input tensors should have the same shape\");s.dims.forEach((u,d)=>{if(d!==t&&u!==r.dims[d])throw new Error(\"non concat dimensions must match\")})}})},ol=(e,t)=>`\n fn calculateInputIndex(index: u32) -> u32 {\n let sizeInConcatAxis = array<u32, ${e}u>(${t});\n for (var i: u32 = 0u; i < ${e}; i += 1u ) {\n if (index < sizeInConcatAxis[i]) {\n return i;\n }\n }\n return ${e}u;\n }`,il=(e,t)=>{let n=e.length,r=[];for(let o=0;o<n;++o){let i=t.setByOffset(\"global_idx\",e[o].getByIndices(\"indices\"));n===1?r.push(i):o===0?r.push(`if (inputIndex == ${o}u) { ${i} }`):o===n-1?r.push(`else { ${i} }`):r.push(`else if (inputIndex == ${o}) { ${i} }`)}return r.join(`\n`)},sl=(e,t,n,r)=>{let o=x.size(n),i=new Array(e.length),s=new Array(e.length),a=0,u=[],d=[],l=[{type:12,data:o}];for(let h=0;h<e.length;++h)a+=e[h].dims[t],i[h]=a,d.push(e[h].dims.length),s[h]=S(`input${h}`,r,d[h]),u.push(\"rank\"),l.push({type:12,data:i[h]});for(let h=0;h<e.length;++h)l.push(...P(e[h].dims));l.push(...P(n));let c=C(\"output\",r,n.length),p=c.indicesGet(\"indices\",t),f=Array.from(Array(i.length).keys()).map(h=>`uniforms.sizeInConcatAxis${h}`).join(\",\"),m=h=>`\n\n ${(()=>{h.registerUniform(\"outputSize\",\"u32\");for(let _=0;_<e.length;_++)h.registerUniform(`sizeInConcatAxis${_}`,\"u32\");return h.declareVariables(...s,c)})()}\n\n ${ol(i.length,f)}\n\n ${h.mainStart()}\n ${h.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n\n var indices = ${c.offsetToIndices(\"global_idx\")};\n\n let inputIndex = calculateInputIndex(${p});\n if (inputIndex != 0u) {\n let sizeInConcatAxis = array<u32, ${i.length}u>(${f});\n ${p} -= sizeInConcatAxis[inputIndex - 1u];\n }\n\n ${il(s,c)}\n }`;return{name:\"Concat\",shaderCache:{hint:`${t}`,inputDependencies:u},getRunData:()=>({outputs:[{dims:n,dataType:r}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:l}),getShaderSource:m}},ns=(e,t)=>{let n=e.inputs,r=n[0].dims,o=x.normalizeAxis(t.axis,r.length);rl(n,o);let i=r.slice();i[o]=n.reduce((a,u)=>a+(u.dims.length>o?u.dims[o]:0),0);let s=n.filter(a=>x.size(a.dims)>0);e.compute(sl(s,o,i,n[0].dataType),{inputs:s})},rs=e=>L({axis:e.axis})});var Ce,Ae,Ee,on,Ke=k(()=>{\"use strict\";N();H();Ce=(e,t,n=\"f32\")=>{switch(e.activation){case\"Relu\":return`value = max(value, ${t}(0.0));`;case\"Sigmoid\":return`value = (${t}(1.0) / (${t}(1.0) + exp(-value)));`;case\"Clip\":return`value = clamp(value, ${t}(${n}(uniforms.clip_min)), ${t}(${n}(uniforms.clip_max)));`;case\"HardSigmoid\":return`value = max(${t}(0.0), min(${t}(1.0), ${n}(uniforms.alpha) * value + ${n}(uniforms.beta)));`;case\"LeakyRelu\":return`value = select(${n}(uniforms.alpha) * value, value, value >= ${t}(0.0));`;case\"Tanh\":return`let e2x = exp(-2.0 * abs(value));\n value = sign(value) * (1.0 - e2x) / (1.0 + e2x);\n `;case\"\":return\"\";default:throw new Error(`Unsupported activation ${e.activation}`)}},Ae=(e,t)=>{e.activation===\"Clip\"?t.push({type:1,data:e.clipMax},{type:1,data:e.clipMin}):e.activation===\"HardSigmoid\"?t.push({type:1,data:e.alpha},{type:1,data:e.beta}):e.activation===\"LeakyRelu\"&&t.push({type:1,data:e.alpha})},Ee=(e,t)=>{e.activation===\"Clip\"?t.push({name:\"clip_max\",type:\"f32\"},{name:\"clip_min\",type:\"f32\"}):e.activation===\"HardSigmoid\"?t.push({name:\"alpha\",type:\"f32\"},{name:\"beta\",type:\"f32\"}):e.activation===\"LeakyRelu\"&&t.push({name:\"alpha\",type:\"f32\"})},on=e=>{let t=e?.activation||\"\";if(t===\"HardSigmoid\"){let[n,r]=e?.activation_params||[.2,.5];return{activation:t,alpha:n,beta:r}}else if(t===\"Clip\"){let[n,r]=e?.activation_params||[co,po];return{activation:t,clipMax:r,clipMin:n}}else if(t===\"LeakyRelu\"){let[n]=e?.activation_params||[.01];return{activation:t,alpha:n}}return{activation:t}}});var le,is,sn=k(()=>{\"use strict\";le=(e,t)=>{switch(e){case 1:return t;case 2:return`vec2<${t}>`;case 3:return`vec3<${t}>`;case 4:return`vec4<${t}>`;default:throw new Error(`${e}-component is not supported.`)}},is=e=>`\n ${e?\"value = value + getBiasByOutputCoords(coords);\":\"\"}\n `});var ss,as=k(()=>{\"use strict\";ss=e=>`\nfn getIndexFromCoords4D(coords : vec4<i32>, shape : vec4<i32>) -> i32 {\n return dot(coords, vec4<i32>(\n shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1));\n}\nfn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {\n return dot(coords, vec4<i32>(\n i32(${e}.x), i32(${e}.y), i32(${e}.z), 1));\n}\n`});var _t,an,un=k(()=>{\"use strict\";N();H();q();Ke();_t=(e,t,n,r,o)=>{let i=r-n;return`\n ${Array.from({length:n}).map((s,a)=>`\n if (${D(t.shape,a,t.rank)} != 1) {\n ${t.indicesSet(e,a,D(o,a+i,r))}\n } else {\n ${t.indicesSet(e,a,0)}\n }`).join(\"\")}\n`},an=(e,t,n,r,o=!1,i)=>{let s=e[0].dims,a=e[1].dims,u=s[s.length-2],d=a[a.length-1],l=s[s.length-1],c=J(d),p=J(l),f=J(u),m=x.size(n)/c/f,h=e.length>2,_=r?r.slice(0,-2):n.slice(0,-2),g=[x.size(_),u,d],b=[{type:12,data:m},{type:12,data:u},{type:12,data:d},{type:12,data:l}];Ae(t,b),b.push(...P(_,s,a)),h&&b.push(...P(e[2].dims)),b.push(...P(g));let w=v=>{let $=Yt(\"batch_dims\",e[0].dataType,_.length),T=S(\"a\",e[0].dataType,s.length,p),I=S(\"b\",e[1].dataType,a.length,c),E=C(\"output\",e[0].dataType,g.length,c),z=re(E.type.tensor),M=Ce(t,E.type.value,z),O=[T,I],W=\"\";if(h){let R=o?c:1;O.push(S(\"bias\",e[2].dataType,e[2].dims.length,R)),W=`${o?`value += bias[col / ${R}];`:`value += ${E.type.value}(bias[row + i]);`}`}let K=[{name:\"output_size\",type:\"u32\"},{name:\"M\",type:\"u32\"},{name:\"N\",type:\"u32\"},{name:\"K\",type:\"u32\"}];Ee(t,K);let U=()=>{let R=`var a_data: ${T.type.value};`;for(let G=0;G<p;G++)R+=`\n let b_data${G} = b[(b_offset + (k + ${G}) * uniforms.N + col) / ${c}];`;for(let G=0;G<f;G++){R+=`a_data = a[(a_offset + (row + ${G}) * uniforms.K + k) / ${p}];`;for(let V=0;V<p;V++)R+=`\n values[${G}] = fma(${I.type.value}(a_data${p===1?\"\":`[${V}]`}), b_data${V}, values[${G}]);\n`}return R};return`\n ${v.registerUniforms(K).registerInternalVariables($).declareVariables(...O,E)}\n ${v.mainStart()}\n ${v.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let col = (global_idx % (uniforms.N / ${c})) * ${c};\n var index1 = global_idx / (uniforms.N / ${c});\n let stride1 = uniforms.M / ${f};\n let row = (index1 % stride1) * ${f};\n let batch = index1 / stride1;\n\n ${n.length===2?\"\":`let batch_indices = ${$.offsetToIndices(\"batch\")};`}\n\n var a_indices: ${T.type.indices};\n ${_t(\"a_indices\",T,T.rank-2,$.rank,\"batch_indices\")}\n ${T.indicesSet(\"a_indices\",T.rank-2,0)}\n ${T.indicesSet(\"a_indices\",T.rank-1,0)}\n let a_offset = ${T.indicesToOffset(\"a_indices\")};\n\n var b_indices: ${I.type.indices};\n ${_t(\"b_indices\",I,I.rank-2,$.rank,\"batch_indices\")}\n ${I.indicesSet(\"b_indices\",I.rank-2,0)}\n ${I.indicesSet(\"b_indices\",I.rank-1,0)}\n let b_offset = ${I.indicesToOffset(\"b_indices\")};\n var values: array<${E.type.value}, ${f}>;\n for (var k: u32 = 0u; k < uniforms.K; k = k + ${p}) {\n ${U()}\n }\n for (var i = 0u; i < ${f}u; i++) {\n var value = values[i];\n ${W}\n ${M}\n let cur_indices = ${E.type.indices}(batch, row + i, col);\n let offset = ${E.indicesToOffset(\"cur_indices\")};\n ${E.setByOffset(`offset / ${c}`,\"value\")};\n }\n }\n `};return{name:\"MatMulNaive\",shaderCache:{hint:`${t.activation};${c};${p};${f};${o}`,inputDependencies:h?[\"rank\",\"rank\",\"rank\"]:[\"rank\",\"rank\"]},getRunData:()=>({outputs:[{dims:i?i(n):n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(m/64)},programUniforms:b}),getShaderSource:w}}});var al,ul,Yn,us,dl,Jn,ll,wt,dn=k(()=>{\"use strict\";N();H();q();Ke();un();sn();al=(e,t)=>e?`\n mm_Asub[inputRow][inputCol] = mm_readA(batch,\n kStart + inputRow,\n globalRowStart / innerElementSize + inputCol${t?\", batchIndices\":\"\"});\n `:`\n mm_Asub[inputRow][inputCol] = mm_readA(batch,\n globalRow + innerRow,\n kStart / innerElementSize + inputCol${t?\", batchIndices\":\"\"});\n `,ul=(e,t)=>e?`\n let ACached0 = mm_Asub[k * innerElementSize][localRow];\n let ACached1 = mm_Asub[k * innerElementSize + 1][localRow];\n let ACached2 = mm_Asub[k * innerElementSize + 2][localRow];\n ${t===3?\"\":\"let ACached3 = mm_Asub[k * innerElementSize + 3][localRow];\"}\n for (var i = 0; i < rowPerThread; i = i + 1) {\n acc[i] = BCached0 * ACached0[i] + acc[i];\n acc[i] = BCached1 * ACached1[i] + acc[i];\n acc[i] = BCached2 * ACached2[i] + acc[i];\n ${t===3?\"\":\"acc[i] = BCached3 * ACached3[i] + acc[i];\"}\n }`:`\n for (var i = 0; i < rowPerThread; i = i + 1) {\n let ACached = mm_Asub[tileRow + i][k];\n acc[i] = BCached0 * ACached.x + acc[i];\n acc[i] = BCached1 * ACached.y + acc[i];\n acc[i] = BCached2 * ACached.z + acc[i];\n ${t===3?\"\":\"acc[i] = BCached3 * ACached.w + acc[i];\"}\n }`,Yn=(e,t,n=\"f32\",r,o=!1,i=32,s=!1,a=32)=>{let u=t[1]*e[1],d=t[0]*e[0],l=o?u:i,c=o?i:u,p=l/t[0],f=i/t[1];if(!((o&&p===4&&e[1]===4||!o&&(p===3||p===4))&&l%t[0]===0&&i%t[1]===0&&e[0]===4))throw new Error(`If transposeA ${o} is true, innerElementSize ${p} and workPerThread[1] ${e[1]} must be 4.\n Otherwise, innerElementSize ${p} must be 3 or 4.\n tileAWidth ${l} must be divisible by workgroupSize[0]${t[0]}. tileInner ${i} must be divisible by workgroupSize[1] ${t[1]}. colPerThread ${e[0]} must be 4.`);return`\nvar<workgroup> mm_Asub: array<array<vec${p}<${n}>, ${l/p}>, ${c}>;\nvar<workgroup> mm_Bsub: array<array<vec4<${n}>, ${d/e[0]}>, ${i}>;\n\nconst rowPerThread = ${e[1]};\nconst colPerThread = ${e[0]};\nconst innerElementSize = ${p};\nconst tileInner = ${i};\n\n@compute @workgroup_size(${t[0]}, ${t[1]}, ${t[2]})\nfn main(@builtin(local_invocation_id) localId : vec3<u32>,\n @builtin(global_invocation_id) globalId : vec3<u32>,\n @builtin(workgroup_id) workgroupId : vec3<u32>) {\n let localRow = i32(localId.y);\n let tileRow = localRow * rowPerThread;\n let tileCol = i32(localId.x);\n\n let globalRow =i32(globalId.y) * rowPerThread;\n let globalCol = i32(globalId.x);\n let batch = ${s?\"0\":\"i32(globalId.z)\"};\n ${r?`let batchIndices = ${r.offsetToIndices(\"u32(batch)\")};`:\"\"}\n let globalRowStart = i32(workgroupId.y) * ${u};\n\n let num_tiles = ${s?`${Math.ceil(a/i)}`:\"(uniforms.dim_inner - 1) / tileInner + 1\"};\n var kStart = ${s?`i32(globalId.z) * ${a}`:\"0\"};\n\n var acc: array<vec4<${n}>, rowPerThread>;\n\n // Loop over shared dimension.\n let tileRowB = localRow * ${f};\n for (var t = 0; t < num_tiles; t = t + 1) {\n // Load one tile of A into local memory.\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n let inputRow = tileRow + innerRow;\n let inputCol = tileCol;\n ${al(o,r)}\n }\n\n // Load one tile of B into local memory.\n for (var innerRow = 0; innerRow < ${f}; innerRow = innerRow + 1) {\n let inputRow = tileRowB + innerRow;\n let inputCol = tileCol;\n mm_Bsub[inputRow][inputCol] = mm_readB(batch, kStart + inputRow, globalCol${r?\", batchIndices\":\"\"});\n }\n kStart = kStart + tileInner;\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n for (var k = 0; k < tileInner / innerElementSize; k = k + 1) {\n let BCached0 = mm_Bsub[k * innerElementSize][tileCol];\n let BCached1 = mm_Bsub[k * innerElementSize + 1][tileCol];\n let BCached2 = mm_Bsub[k * innerElementSize + 2][tileCol];\n ${p===3?\"\":\"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];\"}\n\n ${ul(o,p)}\n }\n\n workgroupBarrier();\n }\n\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n mm_write(batch, globalRow + innerRow, globalCol, acc[innerRow]);\n }\n}`},us=(e,t)=>e?`\n mm_Asub[inputRow][inputCol] = mm_readA(batch,\n kStart + inputRow,\n globalRowStart + inputCol${t?\", batchIndices\":\"\"});\n `:`\n mm_Asub[inputRow][inputCol] = mm_readA(batch,\n globalRowStart + inputRow,\n kStart + inputCol${t?\", batchIndices\":\"\"});\n `,dl=e=>e?\"let ACached = mm_Asub[k][tileRow + innerRow];\":\"let ACached = mm_Asub[tileRow + innerRow][k];\",Jn=(e,t,n=\"f32\",r,o=!1,i=32,s=!1,a=32,u=!1)=>{let d=e[1]*t[1],l=e[0]*t[0],c=o?d:i,p=o?i:d;if(!(p%t[1]===0&&c%t[0]===0&&i%t[1]===0))throw new Error(`tileAHight ${p} must be divisible by workgroupSize[1]${t[1]}, tileAWidth ${c} must be divisible by workgroupSize[0]${t[0]}, tileInner ${i} must be divisible by workgroupSize[1]${t[1]}`);let f=p/t[1],m=c/t[0],h=i/t[1],_=u?`\n let localRow = i32(localId.y);\n let localCol = i32(localId.x);\n let globalRowStart = i32(workgroupId.y) * ${d};\n let globalColStart = i32(workgroupId.x) * ${l};\n\n // Loop over shared dimension.\n for (var t = 0; t < num_tiles; t = t + 1) {\n // Load one tile of A into local memory.\n for (var inputRow = localRow; inputRow < ${p}; inputRow = inputRow + ${t[1]}) {\n for (var inputCol = localCol; inputCol < ${c}; inputCol = inputCol + ${t[0]}) {\n ${us(o,r)}\n }\n }\n // Load one tile of B into local memory.\n for (var inputRow = localRow; inputRow < ${i}; inputRow = inputRow + ${t[1]}) {\n for (var inputCol = localCol; inputCol < ${l}; inputCol = inputCol + ${t[0]}) {\n mm_Bsub[inputRow][inputCol] = mm_readB(batch,\n kStart + inputRow,\n globalColStart + inputCol${r?\", batchIndices\":\"\"});\n }\n }\n kStart = kStart + tileInner;\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n var BCached : array<${n}, colPerThread>;\n for (var k = 0; k < tileInner; k = k + 1) {\n for (var inner = 0; inner < colPerThread; inner = inner + 1) {\n BCached[inner] = mm_Bsub[k][localCol + inner * ${t[0]}];\n }\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n let ACached = ${o?`mm_Asub[k][localRow + innerRow * ${t[1]}];`:`mm_Asub[localRow + innerRow * ${t[1]}][k];`}\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n acc[innerRow][innerCol] = acc[innerRow][innerCol] +\n ACached * BCached[innerCol];\n }\n }\n }\n workgroupBarrier();\n }\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n let gRow = globalRowStart + localRow + innerRow * ${t[1]};\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n let gCol = globalColStart + localCol + innerCol * ${t[0]};\n mm_write(batch, gRow, gCol, acc[innerRow][innerCol]);\n }\n }\n `:`\nlet tileRow = i32(localId.y) * rowPerThread;\nlet tileCol = i32(localId.x) * colPerThread;\n\nlet globalRow = i32(globalId.y) * rowPerThread;\nlet globalCol = i32(globalId.x) * colPerThread;\nlet globalRowStart = i32(workgroupId.y) * ${d};\n\nlet tileRowA = i32(localId.y) * ${f};\nlet tileColA = i32(localId.x) * ${m};\nlet tileRowB = i32(localId.y) * ${h};\n// Loop over shared dimension.\nfor (var t = 0; t < num_tiles; t = t + 1) {\n // Load one tile of A into local memory.\n for (var innerRow = 0; innerRow < ${f}; innerRow = innerRow + 1) {\n for (var innerCol = 0; innerCol < ${m}; innerCol = innerCol + 1) {\n let inputRow = tileRowA + innerRow;\n let inputCol = tileColA + innerCol;\n ${us(o,r)}\n }\n }\n\n // Load one tile of B into local memory.\n for (var innerRow = 0; innerRow < ${h}; innerRow = innerRow + 1) {\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n let inputRow = tileRowB + innerRow;\n let inputCol = tileCol + innerCol;\n mm_Bsub[inputRow][inputCol] = mm_readB(batch,\n kStart + inputRow,\n globalCol + innerCol${r?\", batchIndices\":\"\"});\n }\n }\n kStart = kStart + tileInner;\n workgroupBarrier();\n\n // Compute acc values for a single thread.\n var BCached : array<${n}, colPerThread>;\n for (var k = 0; k < tileInner; k = k + 1) {\n for (var inner = 0; inner < colPerThread; inner = inner + 1) {\n BCached[inner] = mm_Bsub[k][tileCol + inner];\n }\n\n for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n ${dl(o)}\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n acc[innerRow][innerCol] = acc[innerRow][innerCol] + ACached * BCached[innerCol];\n }\n }\n }\n\n workgroupBarrier();\n}\n\nfor (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {\n for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {\n mm_write(batch, globalRow + innerRow, globalCol + innerCol,\n acc[innerRow][innerCol]);\n }\n}\n`;return`\n var<workgroup> mm_Asub : array<array<${n}, ${c}>, ${p}>;\n var<workgroup> mm_Bsub : array<array<${n}, ${l}>, ${i}>;\n const rowPerThread = ${e[1]};\n const colPerThread = ${e[0]};\n const tileInner = ${i};\n\n@compute @workgroup_size(${t[0]}, ${t[1]}, ${t[2]})\nfn main(@builtin(local_invocation_id) localId : vec3<u32>,\n @builtin(global_invocation_id) globalId : vec3<u32>,\n @builtin(workgroup_id) workgroupId : vec3<u32>) {\n let batch = ${s?\"0\":\"i32(globalId.z)\"};\n ${r?`let batchIndices = ${r.offsetToIndices(\"u32(batch)\")};`:\"\"}\n let num_tiles = ${s?`${Math.ceil(a/i)}`:\"(uniforms.dim_inner - 1) / tileInner + 1\"};\n var kStart = ${s?`i32(globalId.z) * ${a}`:\"0\"};\n\n var acc : array<array<${n}, colPerThread>, rowPerThread>;\n ${_}\n }\n`},ll=(e,t,n,r,o=!1)=>{let[i,s,a,u]=r,d=re(r[0].type.tensor);return`\n fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${i.type.indices}) -> ${le(e,d)} {\n var value = ${le(e,d)}(0.0);\n let col = colIn * ${e};\n if(row < uniforms.dim_a_outer && col < uniforms.dim_inner)\n {\n var aIndices: ${s.type.indices};\n ${_t(\"aIndices\",s,s.rank-2,i.rank,\"batchIndices\")}\n ${s.indicesSet(\"aIndices\",s.rank-2,\"u32(row)\")}\n ${s.indicesSet(\"aIndices\",s.rank-1,\"u32(colIn)\")}\n value = ${s.getByIndices(\"aIndices\")};\n }\n return value;\n }\n\n fn mm_readB(batch: i32, row: i32, colIn: i32, batchIndices: ${i.type.indices}) -> ${le(e,d)} {\n var value = ${le(e,d)}(0.0);\n let col = colIn * ${e};\n if(row < uniforms.dim_inner && col < uniforms.dim_b_outer)\n {\n var bIndices: ${a.type.indices};\n ${_t(\"bIndices\",a,a.rank-2,i.rank,\"batchIndices\")}\n ${a.indicesSet(\"bIndices\",a.rank-2,\"u32(row)\")}\n ${a.indicesSet(\"bIndices\",a.rank-1,\"u32(colIn)\")}\n value = ${a.getByIndices(\"bIndices\")};\n }\n return value;\n }\n\n fn mm_write(batch: i32, row: i32, colIn: i32, valueIn: ${le(e,d)}) {\n let col = colIn * ${e};\n if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) {\n var value = valueIn;\n let coords = vec3<i32>(batch, row, colIn);\n ${t?`value = value + ${o?\"bias[colIn]\":`${le(e,d)}(bias[row])`};`:\"\"}\n ${n}\n ${u.setByIndices(\"vec3<u32>(coords)\",\"value\")}\n }\n }\n `},wt=(e,t,n,r,o=!1,i)=>{let s=e[0].dims,a=e[1].dims,u=s.slice(0,-2),d=a.slice(0,-2),l=r?r.slice(0,-2):n.slice(0,-2),c=x.size(l),p=s[s.length-2],f=s[s.length-1],m=a[a.length-1],h=f%4===0&&m%4===0,_=p<=8?[4,1,1]:[4,4,1],y=[8,8,1],g=[Math.ceil(m/y[0]/_[0]),Math.ceil(p/y[1]/_[1]),Math.ceil(c/y[2]/_[2])],b=h?4:1,w=[...u,p,f/b],v=w.length,$=[...d,f,m/b],T=$.length,I=[c,p,m/b],E=[{type:6,data:p},{type:6,data:m},{type:6,data:f}];Ae(t,E),E.push(...P(l,w,$));let z=[\"rank\",\"rank\"],M=e.length>2;M&&(E.push(...P(e[2].dims)),z.push(\"rank\")),E.push(...P(I));let O=W=>{let K=l.length,U=Yt(\"batchDims\",e[0].dataType,K,1),R=re(e[0].dataType),G=S(\"a\",e[0].dataType,v,b),V=S(\"b\",e[1].dataType,T,b),j=C(\"result\",e[0].dataType,I.length,b),Q=[G,V];if(M){let B=o?b:1;Q.push(S(\"bias\",e[2].dataType,e[2].dims.length,B))}let X=[{name:\"dim_a_outer\",type:\"i32\"},{name:\"dim_b_outer\",type:\"i32\"},{name:\"dim_inner\",type:\"i32\"}];Ee(t,X);let Te=re(j.type.tensor),se=Ce(t,j.type.value,Te),A=ll(b,M,se,[U,G,V,j],o);return`\n ${W.registerUniforms(X).registerInternalVariables(U).declareVariables(...Q,j)}\n ${A}\n ${h?Yn(_,y,R,U):Jn(_,y,R,U)}\n `};return{name:\"MatMul\",shaderCache:{hint:`${_};${t.activation};${h};${o}`,inputDependencies:z},getRunData:()=>({outputs:[{dims:i?i(n):n,dataType:e[0].dataType}],dispatchGroup:{x:g[0],y:g[1],z:g[2]},programUniforms:E}),getShaderSource:O}}});var cl,ds,ls=k(()=>{\"use strict\";N();Pe();q();Ke();sn();as();dn();cl=(e,t,n,r,o=!1,i,s=4,a=4,u=4,d=\"f32\")=>{let l=z=>{switch(z){case 1:return\"resData = x[xIndex];\";case 3:return`resData = vec3<${d}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return\"resData = x[xIndex / 4];\";default:throw new Error(`innerElementSize ${z} is not supported.`)}},c=z=>{switch(z){case 1:return\"return w[row * i32(uniforms.w_shape[3]) + colIn];\";case 4:return\"return w[row * i32(uniforms.w_shape[3]) / 4 + colIn];\";default:throw new Error(`innerElementSize ${z} is not supported.`)}},p=e?`\n let coord = vec4<i32>(batch, xRow, xCol, xCh);\n `:`\n let coord = vec4<i32>(batch, xCh, xRow, xCol);\n `,f=e?`\n let coords = vec4<i32>(\n batch,\n row / outWidth,\n row % outWidth,\n col);\n `:`\n let coords = vec4<i32>(\n batch,\n row,\n col / outWidth,\n col % outWidth);\n `,m=e?\"i32(uniforms.x_shape[1])\":\"i32(uniforms.x_shape[2])\",h=e?\"i32(uniforms.x_shape[2])\":\"i32(uniforms.x_shape[3])\",_=e?\"row\":\"col\",y=e?\"col\":\"row\",g=`\n let inChannels = i32(uniforms.w_shape[2]);\n let outWidth = ${e?\"i32(uniforms.result_shape[2])\":\"i32(uniforms.result_shape[3])\"};\n let outRow = ${_} / outWidth;\n let outCol = ${_} % outWidth;\n\n let WRow = ${y} / (i32(uniforms.w_shape[1]) * inChannels);\n let WCol = ${y} / inChannels % i32(uniforms.w_shape[1]);\n let xRow = outRow * uniforms.stride[0] + uniforms.dilation[0] * WRow - uniforms.pad[0];\n let xCol = outCol * uniforms.stride[1] + uniforms.dilation[1] * WCol - uniforms.pad[1];\n let xCh = ${y} % inChannels;\n var resData = ${le(s,d)}(0.0);\n // The bounds checking is always needed since we use it to pad zero for\n // the 'same' padding type.\n if (xRow >= 0 && xRow < ${m} && xCol >= 0 && xCol < ${h}) {\n ${p}\n let xIndex = getIndexFromCoords4D(coord, vec4<i32>(uniforms.x_shape));\n ${l(s)}\n }\n return resData;`,b=e?t&&r?`\n let col = colIn * ${s};\n ${g}`:`\n let col = colIn * ${s};\n if (row < uniforms.dim_a_outer && col < uniforms.dim_inner) {\n ${g}\n }\n return ${le(s,d)}(0.0);`:r&&n?`\n let col = colIn * ${s};\n ${g}`:`\n let col = colIn * ${s};\n if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) {\n ${g}\n }\n return ${le(s,d)}(0.0);`,w=e?r&&n?c(a):`\n let col = colIn * ${a};\n if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) {\n ${c(a)}\n }\n return ${le(a,d)}(0.0);`:`\n let col = colIn * ${a};\n if (row < uniforms.dim_inner && col < uniforms.dim_a_outer) {\n ${c(a)}\n }\n return ${le(a,d)}(0.0);`,v=le(u,d),$=e?le(s,d):le(a,d),T=e?le(a,d):le(s,d),I=Ce(i,v,d);return`\n fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${$} {\n ${e?b:w}\n }\n\n fn mm_readB(batch: i32, row : i32, colIn : i32) -> ${T} {\n ${e?w:b}\n }\n\n fn mm_write(batch: i32, row : i32, colIn : i32, valueIn : ${v}) {\n let col = colIn * ${u};\n if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer)\n {\n var value = valueIn;\n let outWidth = ${e?\"i32(uniforms.result_shape[2])\":\"i32(uniforms.result_shape[3])\"};\n ${f}\n ${is(o)}\n ${I}\n setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);\n }\n }`},ds=(e,t,n,r,o,i,s,a,u)=>{let d=t.format===\"NHWC\",l=d?e[0].dims[3]:e[0].dims[1],c=n[0],p=d?n[2]:n[3],f=d?n[1]:n[2],m=d?n[3]:n[1],h=d&&(l%4===0||l%3===0)&&m%4===0,_=d?m:p*f,y=d?p*f:m,g=[8,8,1],b=r<=8?[4,1,1]:[4,4,1],w=[Math.ceil(_/g[0]/b[0]),Math.ceil(y/g[1]/b[1]),Math.ceil(c/g[2]/b[2])];Z(\"verbose\",()=>`[conv2d_mm_webgpu] dispatch = ${w}`);let v=h?d&&l%4!==0?3:4:1,$=g[1]*b[1],T=g[0]*b[0],I=Math.max(g[0]*v,g[1]),E=r%$===0,z=o%T===0,M=i%I===0,O=h?[v,4,4]:[1,1,1],W=[{type:6,data:r},{type:6,data:o},{type:6,data:i},{type:6,data:[t.pads[0],t.pads[1]]},{type:6,data:t.strides},{type:6,data:t.dilations}];Ae(t,W),W.push(...P(e[0].dims,e[1].dims));let K=[\"rank\",\"rank\"];s&&(W.push(...P(e[2].dims)),K.push(\"rank\")),W.push(...P(n));let U=R=>{let G=[{name:\"dim_a_outer\",type:\"i32\"},{name:\"dim_b_outer\",type:\"i32\"},{name:\"dim_inner\",type:\"i32\"},{name:\"pad\",type:\"i32\",length:2},{name:\"stride\",type:\"i32\",length:2},{name:\"dilation\",type:\"i32\",length:2}];Ee(t,G);let V=h?4:1,j=re(e[0].dataType),Q=`\n fn setOutputAtIndex(flatIndex : i32, value : ${h?`vec4<${j}>`:j}) {\n result[flatIndex] = ${h?`vec4<${j}>`:j}(value);\n }\n fn setOutputAtCoords(d0 : i32, d1 : i32, d2 : i32, d3 : i32, value : ${h?`vec4<${j}>`:j}) {\n let flatIndex = getOutputIndexFromCoords(vec4<i32>(d0, d1, d2, d3));\n setOutputAtIndex(flatIndex ${h?\"/ 4\":\"\"}, value);\n }`,X=S(\"x\",e[0].dataType,e[0].dims.length,v===3?1:v),Te=S(\"w\",e[1].dataType,e[1].dims.length,V),se=[X,Te],A=C(\"result\",e[0].dataType,n.length,V);if(s){let B=S(\"bias\",e[2].dataType,e[2].dims.length,V);se.push(B),Q+=`\n fn getBiasByOutputCoords(coords : vec4<i32>) -> ${h?`vec4<${j}>`:j} {\n return bias[coords.${d?\"w\":\"y\"}${h?\"/ 4\":\"\"}];\n }`}return`\n ${ss(\"uniforms.result_strides\")}\n //struct Uniforms { xShape : vec4<i32>, wShape : vec4<i32>, outShape : vec4<i32>,\n // outShapeStrides: vec3<i32>, filterDims : vec2<i32>, pad : vec2<i32>, stride : vec2<i32>,\n // dilation : vec2<i32>, dimAOuter : i32, dimBOuter : i32, dimInner : i32 };\n ${R.registerUniforms(G).declareVariables(...se,A)}\n ${Q}\n ${cl(d,E,z,M,s,t,O[0],O[1],O[2],j)}\n ${h?Yn(b,g,j,void 0,!d,I):Jn(b,g,j,void 0,!d,I,!1,void 0,a)}`};return{name:\"Conv2DMatMul\",shaderCache:{hint:`${t.cacheKey};${v};${h};${E};${z};${M};${$};${T};${I}`,inputDependencies:K},getRunData:()=>({outputs:[{dims:u?u(n):n,dataType:e[0].dataType}],dispatchGroup:{x:w[0],y:w[1],z:w[2]},programUniforms:W}),getShaderSource:U}}});var pl,cs,ln,ml,ps,fl,ms,fs,hs=k(()=>{\"use strict\";N();Pe();H();q();Ke();sn();pl=e=>{let t=1;for(let n=0;n<e.length;n++)t*=e[n];return t},cs=e=>typeof e==\"number\"?[e,e,e]:e,ln=(e,t)=>t<=1?e:e+(e-1)*(t-1),ml=(e,t,n,r=1)=>{let o=ln(t,r);return Math.floor((e[0]*(n-1)-n+o)/2)},ps=(e,t,n,r,o)=>{o==null&&(o=ml(e,t[0],r[0]));let i=[0,0,0,n];for(let s=0;s<3;s++)e[s]+2*o>=t[s]&&(i[s]=Math.trunc((e[s]-t[s]+2*o)/r[s]+1));return i},fl=(e,t,n,r,o,i,s,a,u,d)=>{let l,c,p,f;if(e===\"VALID\"&&(e=0),typeof e==\"number\"){l={top:e,bottom:e,left:e,right:e,front:e,back:e};let m=ps([t,n,r,1],[a,u,d],1,[o,i,s],e);c=m[0],p=m[1],f=m[2]}else if(Array.isArray(e)){if(!e.every((h,_,y)=>h===y[0]))throw Error(`Unsupported padding parameter: ${e}`);l={top:e[0],bottom:e[1],left:e[2],right:e[3],front:e[4],back:e[5]};let m=ps([t,n,r,1],[a,u,d],1,[o,i,s],e[0]);c=m[0],p=m[1],f=m[2]}else if(e===\"SAME_UPPER\"){c=Math.ceil(t/o),p=Math.ceil(n/i),f=Math.ceil(r/s);let m=(c-1)*o+a-t,h=(p-1)*i+u-n,_=(f-1)*s+d-r,y=Math.floor(m/2),g=m-y,b=Math.floor(h/2),w=h-b,v=Math.floor(_/2),$=_-v;l={top:b,bottom:w,left:v,right:$,front:y,back:g}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:l,outDepth:c,outHeight:p,outWidth:f}},ms=(e,t,n,r,o,i=!1,s=\"channelsLast\")=>{let a,u,d,l,c;if(s===\"channelsLast\")[a,u,d,l,c]=e;else if(s===\"channelsFirst\")[a,c,u,d,l]=e;else throw new Error(`Unknown dataFormat ${s}`);let[p,,f,m,h]=t,[_,y,g]=cs(n),[b,w,v]=cs(r),$=ln(f,b),T=ln(m,w),I=ln(h,v),{padInfo:E,outDepth:z,outHeight:M,outWidth:O}=fl(o,u,d,l,_,y,g,$,T,I),W=i?p*c:p,K=[0,0,0,0,0];return s===\"channelsFirst\"?K=[a,W,z,M,O]:s===\"channelsLast\"&&(K=[a,z,M,O,W]),{batchSize:a,dataFormat:s,inDepth:u,inHeight:d,inWidth:l,inChannels:c,outDepth:z,outHeight:M,outWidth:O,outChannels:W,padInfo:E,strideDepth:_,strideHeight:y,strideWidth:g,filterDepth:f,filterHeight:m,filterWidth:h,effectiveFilterDepth:$,effectiveFilterHeight:T,effectiveFilterWidth:I,dilationDepth:b,dilationHeight:w,dilationWidth:v,inShape:e,outShape:K,filterShape:t}},fs=(e,t,n,r,o,i)=>{let s=i===\"channelsLast\",a=s?e[0].dims[3]:e[0].dims[1],u=!1,d=[64,1,1],l={x:n.map((g,b)=>b)},c=[Math.ceil(pl(l.x.map(g=>n[g]))/d[0]),1,1];Z(\"verbose\",()=>`[conv3d_naive_webgpu] dispatch = ${c}`);let p=u?s&&a%4!==0?3:4:1,f=x.size(n),m=[{type:12,data:f},{type:12,data:r},{type:12,data:o},{type:12,data:t.strides},{type:12,data:t.dilations}];Ae(t,m),m.push(...P(e[0].dims,e[1].dims));let h=[\"rank\",\"rank\"],_=e.length===3;_&&(m.push(...P(e[2].dims)),h.push(\"rank\")),m.push(...P(n));let y=g=>{let b=[{name:\"output_size\",type:\"u32\"},{name:\"filter_dims\",type:\"u32\",length:r.length},{name:\"pads\",type:\"u32\",length:o.length},{name:\"strides\",type:\"u32\",length:t.strides.length},{name:\"dilations\",type:\"u32\",length:t.dilations.length}];Ee(t,b);let w=u?4:1,v=re(e[0].dataType),$=S(\"x\",e[0].dataType,e[0].dims.length,p===3?1:p),T=S(\"W\",e[1].dataType,e[1].dims.length,w),I=[$,T],E=C(\"result\",e[0].dataType,n.length,w),z=\"\";if(_){let W=S(\"bias\",e[2].dataType,e[2].dims.length,w);I.push(W),z+=`\n fn getBiasByOutputCoords(coords : array<u32, 5>) -> ${u?`vec4<${v}>`:v} {\n return bias[${s?D(\"coords\",4,5):D(\"coords\",1,5)}${u?\"/ 4\":\"\"}];\n }`}let M=le(p,v),O=Ce(t,M,v);return`\n ${z}\n fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 {\n let aIndices = array<u32, 5>(d0, d1, d2, d3, d4);\n return ${$.getByIndices(\"aIndices\")};\n }\n fn getW(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 {\n let aIndices = array<u32, 5>(d0, d1, d2, d3, d4);\n return ${T.getByIndices(\"aIndices\")};\n }\n ${g.registerUniforms(b).declareVariables(...I,E)}\n ${g.mainStart()}\n ${g.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let coords = ${E.offsetToIndices(\"global_idx\")};\n let batch = ${D(\"coords\",0,$.rank)};\n let d2 = ${s?D(\"coords\",$.rank-1,$.rank):D(\"coords\",1,$.rank)};\n let xFRCCorner = vec3<u32>(${s?D(\"coords\",1,$.rank):D(\"coords\",2,$.rank)},\n ${s?D(\"coords\",2,$.rank):D(\"coords\",3,$.rank)},\n ${s?D(\"coords\",3,$.rank):D(\"coords\",4,$.rank)}) * uniforms.strides - uniforms.pads;\n let xFCorner = xFRCCorner.x;\n let xRCorner = xFRCCorner.y;\n let xCCorner = xFRCCorner.z;\n let xShapeY = ${s?D(\"uniforms.x_shape\",1,$.rank):D(\"uniforms.x_shape\",2,$.rank)};\n let xShapeZ = ${s?D(\"uniforms.x_shape\",2,$.rank):D(\"uniforms.x_shape\",3,$.rank)};\n let xShapeW = ${s?D(\"uniforms.x_shape\",3,$.rank):D(\"uniforms.x_shape\",4,$.rank)};\n let xShapeU = ${s?D(\"uniforms.x_shape\",4,$.rank):D(\"uniforms.x_shape\",1,$.rank)};\n let inputDepthNearestVec4 = (xShapeU / 4) * 4;\n let inputDepthVec4Remainder = xShapeU % 4;\n\n var value = 0.0;\n for (var wF = 0u; wF < uniforms.filter_dims[0]; wF++) {\n let xF = xFCorner + wF * uniforms.dilations[0];\n if (xF < 0 || xF >= xShapeY) {\n continue;\n }\n\n for (var wR = 0u; wR < uniforms.filter_dims[1]; wR++) {\n let xR = xRCorner + wR * uniforms.dilations[1];\n if (xR < 0 || xR >= xShapeZ) {\n continue;\n }\n\n for (var wC = 0u; wC < uniforms.filter_dims[2]; wC++) {\n let xC = xCCorner + wC * uniforms.dilations[2];\n if (xC < 0 || xC >= xShapeW) {\n continue;\n }\n\n for (var d1 = 0u; d1 < inputDepthNearestVec4; d1 += 4) {\n ${s?`let xValues = vec4<f32>(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3));\n `:`let xValues = vec4<f32>(\n getX(batch, d1, xF, xR, xC),\n getX(batch, d1 + 1, xF, xR, xC),\n getX(batch, d1 + 2, xF, xR, xC),\n getX(batch, d1 + 3, xF, xR, xC));\n `}\n let wValues = vec4<f32>(\n getW(d2, d1, wF, wR, wC),\n getW(d2, d1 + 1, wF, wR, wC),\n getW(d2, d1 + 2, wF, wR, wC),\n getW(d2, d1 + 3, wF, wR, wC));\n value += dot(xValues, wValues);\n }\n if (inputDepthVec4Remainder == 1) {\n ${s?`value += getX(batch, xF, xR, xC, inputDepthNearestVec4)\n * getW(d2, inputDepthNearestVec4, wF, wR, wC);`:`value += getX(batch, inputDepthNearestVec4, xF, xR, xC)\n * getW(d2, inputDepthNearestVec4, wF, wR, wC);`}\n } else if (inputDepthVec4Remainder == 2) {\n ${s?`let xValues = vec2<f32>(\n getX(batch, xF, xR, xC, inputDepthNearestVec4),\n getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1));\n `:`let xValues = vec2<f32>(\n getX(batch, inputDepthNearestVec4, xF, xR, xC),\n getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC));\n `}\n let wValues = vec2<f32>(\n getW(d2, inputDepthNearestVec4, wF, wR, wC),\n getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC));\n value += dot(xValues, wValues);\n } else if (inputDepthVec4Remainder == 3) {\n ${s?`let xValues = vec3<f32>(\n getX(batch, xF, xR, xC, inputDepthNearestVec4),\n getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1),\n getX(batch, xF, xR, xC, inputDepthNearestVec4 + 2));\n `:`let xValues = vec3<f32>(\n getX(batch, inputDepthNearestVec4, xF, xR, xC),\n getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC),\n getX(batch, inputDepthNearestVec4 + 2, xF, xR, xC));\n `}\n let wValues = vec3<f32>(\n getW(d2, inputDepthNearestVec4, wF, wR, wC),\n getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC),\n getW(d2, inputDepthNearestVec4 + 2, wF, wR, wC));\n value += dot(xValues, wValues);\n }\n }\n }\n }\n ${_?\"value = value + getBiasByOutputCoords(coords)\":\"\"};\n ${O}\n result[global_idx] = f32(value);\n }`};return{name:\"Conv3DNaive\",shaderCache:{hint:`${t.cacheKey};${s};${p};${_}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:n,dataType:e[0].dataType}],dispatchGroup:{x:c[0],y:c[1],z:c[2]},programUniforms:m}),getShaderSource:y}}});var gs,ys,bs=k(()=>{\"use strict\";N();H();q();Ke();gs=(e,t,n,r)=>{let o=e.length>2,i=o?\"value += b[output_channel];\":\"\",s=e[0].dims,a=e[1].dims,u=t.format===\"NHWC\",d=u?n[3]:n[1],l=d/t.group,c=u&&l>=4?J(d):1,p=x.size(n)/c,f=[{type:12,data:p},{type:12,data:t.dilations},{type:12,data:[t.strides[0],t.strides[1]]},{type:12,data:[t.pads[0],t.pads[1]]},{type:12,data:l}];Ae(t,f),f.push(...P(s,[a[0],a[1],a[2],a[3]/c]));let m=o?[\"rank\",\"rank\",\"rank\"]:[\"rank\",\"rank\"];f.push(...P([n[0],n[1],n[2],n[3]/c]));let h=_=>{let y=C(\"output\",e[0].dataType,n.length,c),g=re(y.type.tensor),b=Ce(t,y.type.value,g),w=S(\"x\",e[0].dataType,s.length),v=S(\"w\",e[1].dataType,a.length,c),$=[w,v];o&&$.push(S(\"b\",e[2].dataType,e[2].dims,c));let T=[{name:\"output_size\",type:\"u32\"},{name:\"dilations\",type:\"u32\",length:t.dilations.length},{name:\"strides\",type:\"u32\",length:2},{name:\"pads\",type:\"u32\",length:2},{name:\"output_channels_per_group\",type:\"u32\"}];Ee(t,T);let I=u?`\n for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[0]; wHeight++) {\n let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0];\n\n if (xHeight < 0u || xHeight >= uniforms.x_shape[1]) {\n continue;\n }\n\n for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[1]; wWidth++) {\n let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1];\n if (xWidth < 0u || xWidth >= uniforms.x_shape[2]) {\n continue;\n }\n\n for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[2]; wInChannel++) {\n let input_channel = in_channel_offset + wInChannel;\n let xVal = ${w.get(\"batch\",\"xHeight\",\"xWidth\",\"input_channel\")};\n let wVal = ${v.get(\"wHeight\",\"wWidth\",\"wInChannel\",\"output_channel\")};\n value += xVal * wVal;\n }\n }\n }\n `:`\n for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[1]; wInChannel++) {\n let input_channel = in_channel_offset + wInChannel;\n for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[2]; wHeight++) {\n let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0];\n\n if (xHeight < 0u || xHeight >= uniforms.x_shape[2]) {\n continue;\n }\n\n for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[3]; wWidth++) {\n let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1];\n if (xWidth < 0u || xWidth >= uniforms.x_shape[3]) {\n continue;\n }\n\n let xVal = ${w.get(\"batch\",\"input_channel\",\"xHeight\",\"xWidth\")};\n let wVal = ${v.get(\"output_channel\",\"wInChannel\",\"wHeight\",\"wWidth\")};\n value += xVal * wVal;\n }\n }\n }\n `;return`\n ${_.registerUniforms(T).declareVariables(...$,y)}\n\n ${_.mainStart()}\n ${_.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n\n let outputIndices = ${y.offsetToIndices(\"global_idx\")};\n let batch: u32 = outputIndices[0];\n let output_channel: u32 = outputIndices[${u?3:1}];\n let xRCCorner: vec2<u32> = vec2<u32>(outputIndices[${u?1:2}], outputIndices[${u?2:3}]) * uniforms.strides - uniforms.pads;\n let group_id: u32 = output_channel * ${c} / uniforms.output_channels_per_group;\n var in_channel_offset = group_id * uniforms.w_shape[${u?2:1}];\n\n var value: ${y.type.value} = ${y.type.value}(0);\n ${I}\n ${i}\n ${b}\n ${y.setByOffset(\"global_idx\",\"value\")}\n }`};return{name:\"GroupedConv\",shaderCache:{hint:`${t.cacheKey}_${c}`,inputDependencies:m},getRunData:()=>({outputs:[{dims:r?r(n):n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:f}),getShaderSource:h}},ys=(e,t,n,r)=>{let o=e.length>2,i=J(n[3]),s=J(n[2]),a=x.size(n)/i/s,u=[e[0].dims[0],e[0].dims[1],e[0].dims[2],e[0].dims[3]/i],d=[e[1].dims[0],e[1].dims[1],e[1].dims[2],e[1].dims[3]/i],l=[n[0],n[1],n[2],n[3]/i],c=[{type:12,data:a},{type:6,data:[t.strides[0],t.strides[1]]},{type:6,data:[t.pads[0],t.pads[1]]}];Ae(t,c),c.push(...P(u,d,l));let p=(s-1)*t.strides[1]+d[1],f=m=>{let h=C(\"output\",e[0].dataType,l.length,i),_=re(h.type.tensor),y=Ce(t,h.type.value,_),g=S(\"x\",e[0].dataType,u.length,i),b=S(\"w\",e[1].dataType,d.length,i),w=[g,b];o&&w.push(S(\"b\",e[2].dataType,e[2].dims,i));let v=o?\"value += b[output_channel];\":\"\",$=[{name:\"output_size\",type:\"u32\"},{name:\"strides\",type:\"i32\",length:2},{name:\"pads\",type:\"i32\",length:2}];return Ee(t,$),`\n ${m.registerUniforms($).declareVariables(...w,h)}\n ${m.mainStart()}\n ${m.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let width0 = uniforms.output_shape[3];\n let output_channel = global_idx % width0;\n var index1 = global_idx / width0;\n let width1 = uniforms.output_shape[2] / ${s}u;\n let col = (index1 % width1) * ${s}u;\n index1 = index1 / width1;\n let row = index1 % uniforms.output_shape[1];\n let batch = index1 / uniforms.output_shape[1];\n\n let x_corner = vec2<i32>(i32(row), i32(col)) * uniforms.strides - uniforms.pads;\n\n var x_vals: array<${g.type.value}, ${p}>;\n var values: array<${h.type.value}, ${s}>;\n let input_channel = output_channel;\n // Use constant instead of uniform can give better performance for w's height/width.\n for (var w_height: u32 = 0u; w_height < ${d[0]}; w_height++) {\n let x_height = x_corner.x + i32(w_height);\n if (x_height >= 0 && u32(x_height) < uniforms.x_shape[1]) {\n for (var i = 0; i < ${p}; i++) {\n let x_width = x_corner.y + i;\n if (x_width >= 0 && u32(x_width) < uniforms.x_shape[2]) {\n x_vals[i] = ${g.get(\"batch\",\"u32(x_height)\",\"u32(x_width)\",\"input_channel\")};\n } else {\n x_vals[i] = ${g.type.value}(0);\n }\n }\n for (var w_width: u32 = 0u; w_width < ${d[1]}; w_width++) {\n let w_val = ${b.get(\"w_height\",\"w_width\",\"0\",\"output_channel\")};\n for (var i = 0u; i < ${s}u; i++) {\n values[i] = fma(x_vals[i * u32(uniforms.strides[1]) + w_width], w_val, values[i]);\n }\n }\n }\n }\n\n for (var i = 0u; i < ${s}u; i++) {\n var value = values[i];\n ${v}\n ${y}\n ${h.set(\"batch\",\"row\",\"col + i\",\"output_channel\",\"value\")};\n }\n }`};return{name:\"GroupedConv-Vectorize\",shaderCache:{hint:`${t.cacheKey};${i};${s};${p};${d[0]};${d[1]}`,inputDependencies:o?[\"rank\",\"rank\",\"type\"]:[\"rank\",\"rank\"]},getRunData:()=>({outputs:[{dims:r?r(n):n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:c}),getShaderSource:f}}});var hl,er,gl,tr,nr,_s,yl,bl,rr,ws=k(()=>{\"use strict\";H();ls();hs();dn();bs();Ke();un();Ne();hl=(e,t,n,r,o,i)=>{let s=e[0],a=e.slice(i?1:2,i?3:4),u=a.length,d=t[0],c=t.slice(2).map((m,h)=>m+(m-1)*(n[h]-1)),f=a.map((m,h)=>m+r[h]+r[h+u]).map((m,h)=>Math.floor((m-c[h]+o[h])/o[h]));return f.splice(0,0,s),f.splice(i?3:1,0,d),f},er=[2,3,1,0],gl=(e,t)=>{if(!e||e.length!==2&&e.length!==3)throw new Error(\"Conv requires 2 or 3 inputs\");if(e[0].dims.length>5)throw new Error(\"greater than 5D is not supported\");if(e[0].dims.length!==e[1].dims.length)throw new Error(\"filter does not have same dimension as input\");let n=e[0].dims[t.format===\"NHWC\"?e[0].dims.length-1:1],r=e[1].dims[1]*t.group;if(n!==r)throw new Error(\"FILTER_IN_CHANNEL should be equal to DATA_CHANNEL\");if(e.length===3&&(e[2].dims.length!==1||e[1].dims[0]!==e[2].dims[0]))throw new Error(\"invalid bias\");let o=e[0].dims.length-2;if(t.dilations.length!==o)throw new Error(`dilations should be ${o}D`);if(t.strides.length!==o)throw new Error(`strides should be ${o}D`);if(t.pads.length!==o*2)throw new Error(`pads should be ${o*2}D`);if(t.kernelShape.length!==0&&t.kernelShape.length!==e[1].dims.length-2)throw new Error(\"invalid kernel shape\")},tr=(e,t)=>{let n=e.kernelShape.slice();n.length<t[1].dims.length-2&&n.push(...Array(t[1].dims.length-2-n.length).fill(0));for(let i=2;i<t[1].dims.length;++i)n[i-2]===0&&(n[i-2]=t[1].dims[i]);let r=e.pads.slice();Ye.adjustPadsBasedOnAutoPad(t[0].dims,e.strides,e.dilations,n,r,e.format===\"NHWC\",e.autoPad);let o=Object.assign({},e);return Object.assign(o,{kernelShape:n,pads:r}),o},nr=e=>{let t=on(e),n=e.format,r=[\"NOTSET\",\"VALID\",\"SAME_UPPER\",\"SAME_LOWER\"][e.auto_pad],o=e.dilations,i=e.group,s=e.kernel_shape,a=e.pads,u=e.strides,d=e.w_is_const();return{autoPad:r,format:n,dilations:o,group:i,kernelShape:s,pads:a,strides:u,wIsConst:d,...t,cacheKey:`${e.format};${t.activation};`}},_s=(e,t,n,r)=>{let o=n.format===\"NHWC\",i=hl(t[0].dims,t[1].dims,n.dilations,n.pads,n.strides,o);if(n.group!==1){let $=[t[0]];if(o){let I=e.kernelCustomData.wT??e.compute(me(t[1],er),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];n.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=I),$.push(I)}else $.push(t[1]);t.length===3&&$.push(t[2]),!e.adapterInfo.isArchitecture(\"ampere\")&&o&&t[1].dims[0]===n.group&&t[1].dims[1]===1&&n.dilations[0]===1&&n.dilations[1]===1?e.compute(ys($,n,i,r),{inputs:$}):e.compute(gs($,n,i,r),{inputs:$});return}let s=t.length===3,a=t[0].dims[o?1:2],u=t[0].dims[o?2:3],d=t[0].dims[o?3:1],l=t[1].dims[2],c=t[1].dims[3],p=i[o?1:2],f=i[o?2:3],m=i[o?3:1],h=o&&l===a&&c===u&&n.pads[0]===0&&n.pads[1]===0;if(h||l===1&&c===1&&n.dilations[0]===1&&n.dilations[1]===1&&n.strides[0]===1&&n.strides[1]===1&&n.pads[0]===0&&n.pads[1]===0){let $=i[0],T,I,E,z=[];if(o){let W=e.kernelCustomData.wT??e.compute(me(t[1],er),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];if(n.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=W),h){let K=a*u*d;T=t[0].reshape([1,$,K]),I=W.reshape([1,K,m]),E=[1,$,m]}else T=t[0].reshape([$,a*u,d]),I=W.reshape([1,d,m]),E=[$,p*f,m];z.push(T),z.push(I)}else T=t[0].reshape([$,d,a*u]),I=t[1].reshape([1,m,d]),E=[$,m,p*f],z.push(I),z.push(T);s&&z.push(t[2]);let M=E[2],O=z[0].dims[z[0].dims.length-1];M<8&&O<8?e.compute(an(z,n,i,E,o,r),{inputs:z}):e.compute(wt(z,n,i,E,o,r),{inputs:z});return}let _=!0,y=e.kernelCustomData.wT??e.compute(me(t[1],er),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];n.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=y);let g=[t[0],y];s&&g.push(t[2]);let b=o?p*f:m,w=o?m:p*f,v=l*c*d;e.compute(ds(g,n,i,b,w,v,s,_,r),{inputs:g})},yl=(e,t)=>{let n=t.format===\"NHWC\",r=[e.inputs[0].reshape(n?[e.inputs[0].dims[0],1,e.inputs[0].dims[1],e.inputs[0].dims[2]]:[e.inputs[0].dims[0],e.inputs[0].dims[1],1,e.inputs[0].dims[2]]),e.inputs[1].reshape([e.inputs[1].dims[0],e.inputs[1].dims[1],1,e.inputs[1].dims[2]])];e.inputs.length===3&&r.push(e.inputs[2]);let o=[0,t.pads[0],0,t.pads[1]],i=[1].concat(t.strides),s=[1].concat(t.dilations),a=[1].concat(t.kernelShape),u=tr({...t,pads:o,strides:i,dilations:s,kernelShape:a},r);_s(e,r,u,d=>n?[d[0],d[2],d[3]]:[d[0],d[1],d[3]])},bl=(e,t,n)=>{let r=n.format===\"NHWC\"?\"channelsLast\":\"channelsFirst\",o=tr(n,t),i=n.autoPad===\"NOTSET\"?n.pads:n.autoPad,s=ms(t[0].dims,t[1].dims,n.strides,n.dilations,i,!1,r);e.compute(fs(t,o,s.outShape,[s.filterDepth,s.filterHeight,s.filterWidth],[s.padInfo.front,s.padInfo.top,s.padInfo.left],r))},rr=(e,t)=>{if(gl(e.inputs,t),e.inputs[0].dims.length===3)yl(e,t);else if(e.inputs[0].dims.length===5)bl(e,e.inputs,t);else{let n=tr(t,e.inputs);_s(e,e.inputs,n)}}});var $s,vs=k(()=>{\"use strict\";N();Pe();H();q();$s=(e,t,n)=>{let r=e.length>2,o=t.outputShape,i=t.format===\"NHWC\",s=t.group,a=e[1].dims,u=a[2]/s,d=a[3],l=i?J(u):1,c=i&&d===1&&u>=4,p=c?Math.floor(u/4)*4:Math.floor(u/l)*l,f=u-p,m=i?J(d):1,h=i?d===1?l:m:1,_=x.size(o)/m,y=[Math.ceil(_/64),1,1];Z(\"verbose\",()=>`[conv2d_backprop_webgpu] dispatch = ${y}`);let g=[\"rank\",\"rank\"],b=[t.strides[0],t.strides[1]],w=[t.kernelShape[i?1:2],t.kernelShape[i?2:3]],v=[t.dilations[0],t.dilations[1]],$=[w[0]+(t.dilations[0]<=1?0:(t.kernelShape[i?1:2]-1)*(t.dilations[0]-1)),w[1]+(t.dilations[1]<=1?0:(t.kernelShape[i?2:3]-1)*(t.dilations[1]-1))],T=[$[0]-1-Math.floor((t.pads[0]+t.pads[2])/2),$[1]-1-Math.floor((t.pads[1]+t.pads[3])/2)],I=[{type:12,data:_},{type:12,data:b},{type:12,data:w},{type:12,data:v},{type:12,data:$},{type:6,data:T},{type:12,data:p},{type:12,data:u},{type:12,data:d},...P(e[0].dims,e[1].dims)];r&&(I.push(...P(e[2].dims)),g.push(\"rank\")),I.push(...P(o));let E=z=>{let M=[{name:\"output_size\",type:\"u32\"},{name:\"strides\",type:\"u32\",length:b.length},{name:\"filter_dims\",type:\"u32\",length:w.length},{name:\"dilations\",type:\"u32\",length:w.length},{name:\"effective_filter_dims\",type:\"u32\",length:$.length},{name:\"pads\",type:\"i32\",length:T.length},{name:\"input_channels_per_group_int\",type:\"u32\"},{name:\"input_channels_per_group\",type:\"u32\"},{name:\"output_channels_per_group\",type:\"u32\"}],O=re(e[0].dataType),W=i?1:2,K=i?2:3,U=i?3:1,R=S(\"W\",e[1].dataType,e[1].dims.length,h),G=S(\"Dy\",e[0].dataType,e[0].dims.length,l),V=[G,R];r&&V.push(S(\"bias\",e[2].dataType,[o[U]].length,m));let j=C(\"result\",e[0].dataType,o.length,m),Q=()=>{let se=\"\";if(c)l===4?se+=`\n let xValue = ${G.getByOffset(\"x_offset\")};\n let wValue = ${R.getByOffset(\"w_offset\")};\n dotProd = dotProd + dot(xValue, wValue);\n x_offset += 1u;\n w_offset += 1u;`:l===2?se+=`\n dotProd = dotProd + dot(vec4<${O}>(${G.getByOffset(\"x_offset\")}, ${G.getByOffset(\"x_offset + 1u\")}), vec4<${O}>(${R.getByOffset(\"w_offset\")}, ${R.getByOffset(\"w_offset + 1u\")}));\n x_offset += 2u;\n w_offset += 2u;`:l===1&&(se+=`\n dotProd = dotProd + dot(vec4<${O}>(${G.getByOffset(\"x_offset\")}, ${G.getByOffset(\"x_offset + 1u\")}, ${G.getByOffset(\"x_offset + 2u\")}, ${G.getByOffset(\"x_offset + 3u\")}), vec4<${O}>(${R.getByOffset(\"w_offset\")}, ${R.getByOffset(\"w_offset + 1u\")}, ${R.getByOffset(\"w_offset + 2u\")}, ${R.getByOffset(\"w_offset + 3u\")}));\n x_offset += 4u;\n w_offset += 4u;`);else if(se+=`\n let xValue = ${i?G.getByOffset(`${G.indicesToOffset(`${G.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${l}`):G.get(\"batch\",\"inputChannel\",\"idyR\",\"idyC\")};\n `,l===1)se+=`\n let w_offset = ${R.indicesToOffset(`${R.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel, wOutChannel)`)};\n let wValue = ${R.getByOffset(`w_offset / ${h}`)};\n dotProd = dotProd + xValue * wValue;`;else for(let A=0;A<l;A++)se+=`\n let wValue${A} = ${R.getByOffset(`${R.indicesToOffset(`${R.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel + ${A}, wOutChannel)`)} / ${h}`)};\n dotProd = dotProd + xValue[${A}] * wValue${A};`;return se},X=()=>{if(f===0)return\"\";if(!c)throw new Error(`packInputAs4 ${c} is not true.`);let se=\"\";if(l===1){se+=\"dotProd = dotProd\";for(let A=0;A<f;A++)se+=`\n + ${G.getByOffset(`x_offset + ${A}`)} * ${R.getByOffset(`w_offset + ${A}`)}`;se+=\";\"}else if(l===2){if(f!==2)throw new Error(`Invalid inputChannelsRemainder ${f}.`);se+=`\n let xValue = ${G.getByOffset(\"x_offset\")};\n let wValue = ${R.getByOffset(\"w_offset\")};\n dotProd = dotProd + dot(xValue, wValue);`}return se},Te=`\n let outputIndices = ${j.offsetToIndices(`global_idx * ${m}`)};\n let batch = ${j.indicesGet(\"outputIndices\",0)};\n let d1 = ${j.indicesGet(\"outputIndices\",U)};\n let r = ${j.indicesGet(\"outputIndices\",W)};\n let c = ${j.indicesGet(\"outputIndices\",K)};\n let dyCorner = vec2<i32>(i32(r), i32(c)) - uniforms.pads;\n let dyRCorner = dyCorner.x;\n let dyCCorner = dyCorner.y;\n let groupId = d1 / uniforms.output_channels_per_group;\n let wOutChannel = d1 - groupId * uniforms.output_channels_per_group;\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n var dotProd = ${j.type.value}(0.0);\n var wR: u32 = 0;\n if (uniforms.dilations.x == 1) {\n // Minimum wR >= 0 that satisfies (dyRCorner + wR) % (uniforms.strides.x) == 0\n wR = u32(((dyRCorner + i32(uniforms.strides.x) - 1) / i32(uniforms.strides.x)) * i32(uniforms.strides.x) - dyRCorner);\n }\n for (; wR < uniforms.effective_filter_dims.x; wR = wR + 1) {\n if (wR % uniforms.dilations.x != 0) {\n continue;\n }\n let dyR = (${O}(dyRCorner) + ${O}(wR)) / ${O}(uniforms.strides[0]);\n let wRPerm = uniforms.filter_dims.x - 1 - wR / uniforms.dilations.x;\n if (dyR < 0.0 || dyR >= ${O}(uniforms.Dy_shape[${W}]) || fract(dyR) > 0.0 ||\n wRPerm < 0) {\n continue;\n }\n let idyR: u32 = u32(dyR);\n var wC: u32 = 0;\n if (uniforms.dilations.y == 1) {\n // Minimum wC >= 0 that satisfies (dyCCorner + wC) % (uniforms.strides.y) == 0\n wC = u32(((dyCCorner + i32(uniforms.strides.y) - 1) / i32(uniforms.strides.y)) * i32(uniforms.strides.y) - dyCCorner);\n }\n for (; wC < uniforms.effective_filter_dims.y; wC = wC + 1) {\n if (wC % uniforms.dilations.y != 0) {\n continue;\n }\n let dyC = (${O}(dyCCorner) + ${O}(wC)) / ${O}(uniforms.strides.y);\n let wCPerm = uniforms.filter_dims.y - 1 - wC / uniforms.dilations.y;\n if (dyC < 0.0 || dyC >= ${O}(uniforms.Dy_shape[${K}]) ||\n fract(dyC) > 0.0 || wCPerm < 0) {\n continue;\n }\n let idyC: u32 = u32(dyC);\n var inputChannel = groupId * uniforms.input_channels_per_group;\n ${c?`\n var x_offset = ${G.indicesToOffset(`${G.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${l};\n var w_offset = ${R.indicesToOffset(`${R.type.indices}(wRPerm, wCPerm, inputChannel, wOutChannel)`)} / ${h};\n `:\"\"}\n for (var d2: u32 = 0; d2 < uniforms.input_channels_per_group_int; d2 = d2 + ${c?4:l}) {\n ${Q()}\n inputChannel = inputChannel + ${c?4:l};\n }\n ${X()}\n wC = wC + uniforms.strides.y - 1;\n }\n wR = wR + uniforms.strides[0] - 1;\n }\n let value = dotProd${r?` + bias[d1 / ${m}]`:\"\"};\n ${j.setByOffset(\"global_idx\",\"value\")};\n `;return`\n ${z.registerUniforms(M).declareVariables(...V,j)}\n ${z.mainStart()}\n ${z.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")};\n ${Te}}`};return{name:\"ConvTranspose2D\",shaderCache:{hint:`${t.cacheKey};${l}${h}${m}${c}${f}`,inputDependencies:g},getRunData:()=>({dispatchGroup:{x:y[0],y:y[1],z:y[2]},outputs:[{dims:n?n(o):o,dataType:e[0].dataType}],programUniforms:I}),getShaderSource:E}}});var _l,wl,$l,xs,Ss,vl,Ts,xl,Is,Cs=k(()=>{\"use strict\";vs();Ke();Ne();_l=(e,t,n,r,o,i)=>(e-1)*t+n+(r-1)*o+1-i,wl=(e,t,n,r,o)=>{let i=Math.floor(e/2);t===\"SAME_UPPER\"?(n[r]=i,n[o]=e-i):t===\"SAME_LOWER\"&&(n[r]=e-i,n[o]=i)},$l=(e,t,n,r,o,i,s,a,u,d)=>{let l=e.length-2,c=d.length===0;u.length<l&&u.push(...Array(l-u.length).fill(0));let p=e[0],f=t[a?3:1]*o;for(let m=0,h=e.length-l-(a?1:0);m<l;++m,++h){let _=e[h],y=c?_*s[m]:d[m],g=_l(_,s[m],i[m],t[h],n[m],y);wl(g,r,i,m,m+l),c&&d.push(s[m]*(_-1)+u[m]+(t[h]-1)*n[m]+1-i[m]-i[m+l])}d.splice(0,0,p),d.splice(a?3:1,0,f)},xs=(e,t)=>{let n=e.kernelShape.slice();if(e.kernelShape.length===0||e.kernelShape.reduce((c,p)=>c*p,1)===0){n.length=0;for(let c=2;c<t[1].dims.length;++c)n.push(t[1].dims[c])}let r=e.format===\"NHWC\";n.splice(0,0,t[1].dims[0]),n.splice(r?3:1,0,t[1].dims[1]);let o=e.pads.slice(),i=e.outputShape.slice(),s=e.outputPadding.slice(),a=t[0].dims,u=e.dilations.slice();if(u.reduce((c,p)=>c+p,0)===0){let c=t[0].dims.length-2;u=new Array(c).fill(1)}let d=e.strides.slice();if(d.reduce((c,p)=>c+p,0)===0){let c=t[0].dims.length-2;d=new Array(c).fill(1)}$l(a,n,u,e.autoPad,e.group,o,d,r,s,i);let l=Object.assign({},e);return Object.assign(l,{kernelShape:n,pads:o,outputPadding:s,outputShape:i,dilations:u,strides:d}),l},Ss=e=>{let t=on(e),n=e.format,r=[\"NOTSET\",\"VALID\",\"SAME_UPPER\",\"SAME_LOWER\"][typeof e.autoPad>\"u\"?0:e.autoPad],o=e.dilations,i=e.group??1,s=e.kernelShape,a=e.pads,u=e.strides,d=e.wIsConst(),l=e.outputPadding,c=e.outputShape;return{autoPad:r,format:n,dilations:o,group:i,kernelShape:s,outputPadding:l,outputShape:c,pads:a,strides:u,wIsConst:d,...t,cacheKey:`${e.format};${t.activation};`}},vl=(e,t)=>{if(!e||e.length!==2&&e.length!==3)throw new Error(\"Conv requires 2 or 3 inputs\");if(e[0].dims.length!==4&&e[0].dims.length!==3)throw new Error(\"currently only support 2-dimensional conv\");if(e[0].dims.length!==e[1].dims.length)throw new Error(\"filter does not have same dimension as input\");let n=e[0].dims[t.format===\"NHWC\"?e[0].dims.length-1:1],r=e[1].dims[0];if(n!==r)throw new Error(\"FILTER_IN_CHANNEL should be equal to DATA_CHANNEL\");let o=e[1].dims[1]*t.group;if(e.length===3&&(e[2].dims.length!==1||e[2].dims[0]!==o))throw new Error(\"invalid bias\");let i=e[0].dims.length-2;if(t.dilations.reduce((l,c)=>l+c,0)>0&&t.dilations.length!==i)throw new Error(`dilations should be ${i}D`);if(t.strides.reduce((l,c)=>l+c,0)>0&&t.strides.length!==i)throw new Error(`strides should be ${i}D`);if(t.pads.reduce((l,c)=>l+c,0)>0&&t.pads.length!==i*2)throw new Error(`pads should be ${i*2}D`);if(t.outputPadding.length!==i&&t.outputPadding.length!==0)throw new Error(`output_padding should be ${i}D`);if(t.kernelShape.reduce((l,c)=>l+c,0)>0&&t.kernelShape.length!==0&&t.kernelShape.length!==e[1].dims.length-2)throw new Error(\"invalid kernel shape\");if(t.outputShape.length!==0&&t.outputShape.length!==e[0].dims.length-2)throw new Error(\"invalid output shape\")},Ts=(e,t,n,r)=>{let o=e.kernelCustomData.wT??e.compute(me(t[1],[2,3,0,1]),{inputs:[1],outputs:[n.wIsConst?-2:-1]})[0];n.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=o);let i=[t[0],o];t.length===3&&i.push(t[2]),e.compute($s(i,n,r),{inputs:i})},xl=(e,t)=>{let n=t.format===\"NHWC\",r=[e.inputs[0].reshape(n?[e.inputs[0].dims[0],1,e.inputs[0].dims[1],e.inputs[0].dims[2]]:[e.inputs[0].dims[0],e.inputs[0].dims[1],1,e.inputs[0].dims[2]]),e.inputs[1].reshape([e.inputs[1].dims[0],e.inputs[1].dims[1],1,e.inputs[1].dims[2]])];e.inputs.length===3&&r.push(e.inputs[2]);let o=t.kernelShape;(o.length===0||o[0]===0)&&(o=[e.inputs[1].dims[2]]);let i=t.dilations;(i.length===0||i[0]===0)&&(i=[1]);let s=t.strides;(s.length===0||s[0]===0)&&(s=[1]);let a=t.pads;a.length===0&&(a=[0,0]),a=[0,a[0],0,a[1]],s=[1].concat(s),i=[1].concat(i),o=[1].concat(o);let u=t.outputPadding;u=[0].concat(u);let d=xs({...t,pads:a,strides:s,dilations:i,kernelShape:o,outputPadding:u},r);Ts(e,r,d,l=>n?[l[0],l[2],l[3]]:[l[0],l[1],l[3]])},Is=(e,t)=>{if(vl(e.inputs,t),e.inputs[0].dims.length===3)xl(e,t);else{let n=xs(t,e.inputs);Ts(e,e.inputs,n)}}});var Sl,As,Es,ks=k(()=>{\"use strict\";N();H();ue();q();Sl=(e,t,n,r)=>{let o=x.size(t),i=t.length,s=S(\"input\",e,i),a=C(\"output\",e,i),u=n.dataType===6?n.getInt32Array()[0]:Number(n.getBigInt64Array()[0]),d=x.normalizeAxis(u,i),l=c=>{let p=` i32(${s.indicesGet(\"inputIndices\",\"uniforms.axis\")}) `,f=D(\"uniforms.input_shape\",\"uniforms.axis\",i),m=r.reverse?p+(r.exclusive?\" + 1\":\"\"):\"0\",h=r.reverse?f:p+(r.exclusive?\"\":\" + 1\");return`\n ${c.registerUniform(\"outputSize\",\"u32\").registerUniform(\"axis\",\"u32\").declareVariables(s,a)}\n ${c.mainStart()}\n ${c.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n var inputIndices = ${a.offsetToIndices(\"global_idx\")};\n var sum = ${a.type.value}(0);\n let first : i32 = ${m};\n let last : i32 = ${h};\n for (var i : i32 = first; i < last; i++) {\n ${s.indicesSet(\"inputIndices\",\"uniforms.axis\",\"u32(i)\")};\n sum = sum + ${s.getByIndices(\"inputIndices\")};\n }\n ${a.setByOffset(\"global_idx\",\"sum\")};\n }`};return{name:\"CumSum\",shaderCache:{hint:r.cacheKey,inputDependencies:[\"rank\"]},getRunData:()=>({outputs:[{dims:t,dataType:e}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:[{type:12,data:o},{type:12,data:d},...P(t,t)]}),getShaderSource:l}},As=(e,t)=>{let n=e.inputs[0].dims,r=e.inputs[0].dataType,o=e.inputs[1];e.compute(Sl(r,n,o,t),{inputs:[0]})},Es=e=>{let t=e.exclusive===1,n=e.reverse===1;return L({exclusive:t,reverse:n})}});var Tl,Il,Cl,Ps,zs,Bs=k(()=>{\"use strict\";N();H();ue();q();Tl=e=>{if(!e||e.length!==1)throw new Error(\"DepthToSpace requires 1 input.\");if(e[0].dims.length!==4)throw new Error(\"DepthToSpace requires 4D input.\")},Il=(e,t,n,r)=>{let o=[];o.push(`fn perm(i: ${r.type.indices}) -> ${n.type.indices} {\n var a: ${n.type.indices};`);for(let i=0;i<t;++i)o.push(n.indicesSet(\"a\",e[i],`i[${i}]`));return o.push(\"return a;}\"),o.join(`\n`)},Cl=(e,t)=>{let n,r,o,i,s,a,u=t.format===\"NHWC\",d=t.blocksize,l=t.mode===\"DCR\";u?([n,r,o,i]=e.dims,s=l?[n,r,o,d,d,i/d**2]:[n,r,o,i/d**2,d,d],a=l?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([n,r,o,i]=[e.dims[0],e.dims[2],e.dims[3],e.dims[1]],s=l?[n,d,d,i/d**2,r,o]:[n,i/d**2,d,d,r,o],a=l?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let c=e.reshape(s),p=c.dims.length,f=e.dataType,m=S(\"a\",f,p),h=C(\"output\",f,p),_=y=>`\n ${y.registerUniform(\"output_size\",\"u32\").declareVariables(m,h)}\n\n ${Il(a,p,m,h)}\n\n ${y.mainStart()}\n ${y.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n\n let indices = ${h.offsetToIndices(\"global_idx\")};\n let aIndices = perm(indices);\n\n ${h.setByOffset(\"global_idx\",m.getByIndices(\"aIndices\"))}\n }`;return{name:\"DepthToSpace\",shaderCache:{hint:`${e.dims};${t.blocksize};${t.mode}`,inputDependencies:[\"rank\"]},getRunData:y=>{let g=u?[n,r*d,o*d,i/d**2]:[n,i/d**2,r*d,o*d],b=x.size(g),w=c.dims,v=x.sortBasedOnPerm(w,a);return{outputs:[{dims:g,dataType:y[0].dataType}],dispatchGroup:{x:Math.ceil(b/64)},programUniforms:[{type:12,data:b},...P(w,v)]}},getShaderSource:_}},Ps=(e,t)=>{Tl(e.inputs),e.compute(Cl(e.inputs[0],t))},zs=e=>L({blocksize:e.blocksize,mode:e.mode,format:e.format})});var or,cn,Ds,Al,El,ir,sr,Os,kl,Ms,Us,Rs=k(()=>{\"use strict\";N();H();ue();q();or=\"[a-zA-Z]|\\\\.\\\\.\\\\.\",cn=\"(\"+or+\")+\",Ds=\"^\"+cn+\"$\",Al=\"(\"+cn+\",)*\"+cn,El=\"^\"+Al+\"$\",ir=class{constructor(t=-1){this.symbolToIndices=new Map,this.inputIndex=t}addSymbol(t,n){let r=this.symbolToIndices.get(t);r===void 0?r=[n]:r.push(n),this.symbolToIndices.set(t,r)}},sr=class{constructor(t,n){this.equation=n;this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[r,o]=n.includes(\"->\")?n.split(\"->\",2):[n,\"\"];if(!r.match(RegExp(El)))throw new Error(\"Invalid LHS term\");if(r.split(\",\").forEach((a,u)=>{let d=t[u].dims.slice();if(!a.match(RegExp(Ds)))throw new Error(\"Invalid LHS term\");let l=this.processTerm(a,!0,d,u);this.lhs.push(l)}),o===\"\")o+=[...this.symbolToInfo.entries()].filter(([a,u])=>u.count===1||a===\"...\").map(([a])=>a).join(\"\");else if(!o.match(RegExp(cn)))throw new Error(\"Invalid RHS\");o.match(RegExp(or,\"g\"))?.forEach(a=>{if(a===\"...\")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let u=this.symbolToInfo.get(a);if(u===void 0)throw new Error(\"Invalid RHS symbol\");this.outputDims.push(u.dimValue)}}),this.rhs=this.processTerm(o,!1,this.outputDims)}addSymbol(t,n,r){let o=this.symbolToInfo.get(t);if(o!==void 0){if(o.dimValue!==n&&o.count!==1)throw new Error(\"Dimension mismatch\");o.count++,o.inputIndices.push(r)}else o={count:1,dimValue:n,inputIndices:[r]};this.symbolToInfo.set(t,o)}processTerm(t,n,r,o=-1){let i=r.length,s=!1,a=[],u=0;if(!t.match(RegExp(Ds))&&!n&&t!==\"\")throw new Error(\"Invalid LHS term\");let d=t.match(RegExp(or,\"g\")),l=new ir(o);return d?.forEach((c,p)=>{if(c===\"...\"){if(s)throw new Error(\"Only one ellipsis is allowed per input term\");s=!0;let f=i-d.length+1;if(f<0)throw new Error(\"Ellipsis out of bounds\");if(a=r.slice(u,u+f),this.hasEllipsis){if(this.ellipsisDims.length!==a.length||this.ellipsisDims.toString()!==a.toString())throw new Error(\"Ellipsis dimensions mismatch\")}else if(n)this.hasEllipsis=!0,this.ellipsisDims=a;else throw new Error(\"Ellipsis must be specified in the LHS\");for(let m=0;m<a.length;m++){let h=String.fromCharCode(48+m);l.addSymbol(h,p+m),this.addSymbol(h,r[u++],o)}}else l.addSymbol(c,p+(this.hasEllipsis?this.ellipsisDims.length-1:0)),this.addSymbol(c,r[u++],o)}),l}},Os=e=>e+\"_max\",kl=(e,t,n,r)=>{let i=e.map(l=>l.length).map((l,c)=>S(`input${c}`,t,l)),s=x.size(r),a=C(\"output\",t,r.length),u=[...n.symbolToInfo.keys()].filter(l=>!n.rhs.symbolToIndices.has(l)),d=l=>{let c=[],p=\"var prod = 1.0;\",f=\"var sum = 0.0;\",m=\"sum += prod;\",h=[],_=[],y=[],g=[],b=n.symbolToInfo.size===n.rhs.symbolToIndices.size;n.symbolToInfo.forEach((v,$)=>{if(n.rhs.symbolToIndices.has($)){let T=n.rhs.symbolToIndices.get($)?.[0];T!==void 0&&n.lhs.forEach((I,E)=>{if(v.inputIndices.includes(E)){let z=I.symbolToIndices.get($);if(z===void 0)throw new Error(\"Invalid symbol error\");z.forEach(M=>{c.push(`${i[E].indicesSet(`input${E}Indices`,M,a.indicesGet(\"outputIndices\",T))}`)})}})}else n.lhs.forEach((T,I)=>{if(v.inputIndices.includes(I)){let E=T.symbolToIndices.get($);if(E===void 0)throw new Error(\"Invalid symbol error\");E.forEach(z=>{h.push(`${i[I].indicesSet(`input${I}Indices`,z,`${$}`)}`)}),g.push(`prod *= ${i[I].getByIndices(`input${I}Indices`)};`)}}),_.push(`for(var ${$}: u32 = 0; ${$} < uniforms.${Os($)}; ${$}++) {`),y.push(\"}\")});let w=b?[...c,`let sum = ${i.map((v,$)=>v.getByIndices(`input${$}Indices`)).join(\" * \")};`]:[...c,f,..._,...h,p,...g,m,...y];return`\n ${l.registerUniforms(u.map(v=>({name:`${Os(v)}`,type:\"u32\"}))).registerUniform(\"outputSize\",\"u32\").declareVariables(...i,a)}\n\n ${l.mainStart()}\n ${l.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n var outputIndices = ${a.offsetToIndices(\"global_idx\")};\n ${i.map((v,$)=>`var input${$}Indices: ${i[$].type.indices};`).join(`\n`)}\n ${w.join(`\n`)};\n ${a.setByOffset(\"global_idx\",\"sum\")};\n }`};return{name:\"Einsum\",shaderCache:{hint:n.equation,inputDependencies:e.map(()=>\"rank\")},getRunData:()=>{let l=u.filter(p=>n.symbolToInfo.has(p)).map(p=>({type:12,data:n.symbolToInfo.get(p)?.dimValue||0}));l.push({type:12,data:s});let c=e.map((p,f)=>[...P(p)]).reduce((p,f)=>p.concat(f),l);return c.push(...P(r)),{outputs:[{dims:r,dataType:t}],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:c}},getShaderSource:d}},Ms=(e,t)=>{let n=new sr(e.inputs,t.equation),r=n.outputDims,o=e.inputs.map((i,s)=>i.dims);e.compute(kl(o,e.inputs[0].dataType,n,r))},Us=e=>{let t=e.equation.replace(/\\s+/g,\"\");return L({equation:t})}});var Pl,Vs,zl,Bl,Ns,Ls=k(()=>{\"use strict\";N();H();q();Pl=e=>{if(!e||e.length!==2)throw new Error(\"Expand requires 2 input.\");let t=e[0].dims,n=Array.from(e[1].getBigInt64Array(),Number),r=n.length<t.length?0:n.length-t.length,o=t.length<n.length?0:t.length-n.length;for(;r<n.length&&o<t.length;++r,++o)if(n[r]!==t[o]&&n[r]!==1&&t[o]!==1)throw new Error(\"Expand requires shape to be broadcastable to input\")},Vs=(e,t)=>{let n=e.length-t.length,r=[];for(let o=0;o<n;++o)r.push(e[o]);for(let o=0;o<t.length;++o)r.push(t[o]===1?e[o+n]:t[o]);return r},zl=(e,t)=>e.length>t.length?Vs(e,t):Vs(t,e),Bl=e=>{let t=e[0].dims,n=Array.from(e[1].getBigInt64Array(),Number),r=zl(t,n),o=e[0].dataType,i=o===9||x.size(t)===1,s=o===9||t.length>0&&t[t.length-1]%4===0?4:1,a=i||r.length>0&&r[r.length-1]%4===0?4:1,u=Math.ceil(x.size(r)/a),d=c=>{let p=S(\"input\",o,t.length,s),f=C(\"output\",o,r.length,a),m;if(o===9){let h=(_,y,g=\"\")=>`\n let outputIndices${y} = ${f.offsetToIndices(`outputOffset + ${y}u`)};\n let offset${y} = ${p.broadcastedIndicesToOffset(`outputIndices${y}`,f)};\n let index${y} = offset${y} / 4u;\n let component${y} = offset${y} % 4u;\n ${_}[${y}] = ${g}(${p.getByOffset(`index${y}`)}[component${y}]);\n `;m=`\n let outputOffset = global_idx * ${a};\n var data = vec4<u32>(0);\n ${h(\"data\",0,\"u32\")}\n ${h(\"data\",1,\"u32\")}\n ${h(\"data\",2,\"u32\")}\n ${h(\"data\",3,\"u32\")}\n ${f.setByOffset(\"global_idx\",\"data\")}\n }`}else m=`\n let outputIndices = ${f.offsetToIndices(`global_idx * ${a}`)};\n let inputOffset = ${p.broadcastedIndicesToOffset(\"outputIndices\",f)};\n let data = ${f.type.value}(${p.getByOffset(`inputOffset / ${s}`)});\n ${f.setByOffset(\"global_idx\",\"data\")}\n }`;return`\n ${c.registerUniform(\"vec_size\",\"u32\").declareVariables(p,f)}\n ${c.mainStart()}\n ${c.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.vec_size\")}\n ${m}`},l=[{type:12,data:u},...P(t,r)];return{name:\"Expand\",shaderCache:{hint:`${r.length};${s}${a}`,inputDependencies:[\"rank\"]},getShaderSource:d,getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(u/64)},programUniforms:l})}},Ns=e=>{Pl(e.inputs),e.compute(Bl(e.inputs),{inputs:[0]})}});var Dl,Ws,Gs=k(()=>{\"use strict\";N();H();q();rn();Dl=e=>{let t=e[0].dataType,n=x.size(e[0].dims),r=x.size(e[1].dims),o=r%4===0,i=s=>{let a=S(\"x\",t,[1],4),u=S(\"bias\",t,[1],4),d=C(\"y\",t,[1],4),l=[{name:\"output_vec_size\",type:\"u32\"},{name:\"bias_size\",type:\"u32\"}],c=f=>`\n let bias${f}_offset: u32 = (global_idx * 4 + ${f}) % uniforms.bias_size;\n let bias${f} = ${u.getByOffset(`bias${f}_offset / 4`)}[bias${f}_offset % 4];`,p=o?`\n let bias = ${u.getByOffset(\"global_idx % (uniforms.bias_size / 4)\")};`:`${c(0)}${c(1)}${c(2)}${c(3)}\n let bias = ${a.type.value}(bias0, bias1, bias2, bias3);`;return`${s.registerUniforms(l).declareVariables(a,u,d)}\n\n ${Qn(pe(t))}\n\n ${s.mainStart(Je)}\n ${s.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_vec_size\")}\n\n let x = ${a.getByOffset(\"global_idx\")};\n ${p}\n let x_in = x + bias;\n ${d.setByOffset(\"global_idx\",Xn(\"x_in\"))}\n }`};return{name:\"FastGeluWithBias\",shaderCache:{hint:`${o}`,inputDependencies:[\"type\",\"type\"]},getShaderSource:i,getRunData:s=>({outputs:[{dims:s[0].dims,dataType:s[0].dataType}],programUniforms:[{type:12,data:Math.ceil(n/4)},{type:12,data:r}],dispatchGroup:{x:Math.ceil(n/Je/4)}})}},Ws=e=>{e.inputs.length<2||x.size(e.inputs[1].dims)===0?Ri(e):e.compute(Dl(e.inputs))}});var Ol,Ml,Hs,Fs,qs=k(()=>{\"use strict\";N();H();ue();q();Ol=e=>{if(!e||e.length!==2)throw new Error(\"Gather requires 2 inputs.\")},Ml=(e,t)=>{let n=e[0].dims,r=e[1].dims,o=n.length,i=x.normalizeAxis(t.axis,o),s=n.slice(0);s.splice(i,1,...r);let a=n[i],u=e[0].dataType===9?4:1,d=Math.ceil(x.size(s)/u),l=[{type:12,data:d},{type:6,data:a},{type:12,data:i},...P(e[0].dims,e[1].dims,s)],c=p=>{let f=S(\"data\",e[0].dataType,e[0].dims.length,u),m=S(\"inputIndices\",e[1].dataType,e[1].dims.length),h=C(\"output\",e[0].dataType,s.length,u),_=g=>{let b=r.length,w=`var indicesIndices${g} = ${m.type.indices}(0);`;for(let v=0;v<b;v++)w+=`${b>1?`indicesIndices${g}[${v}]`:`indicesIndices${g}`} = ${s.length>1?`outputIndices${g}[uniforms.axis + ${v}]`:`outputIndices${g}`};`;w+=`\n var idx${g} = ${m.getByIndices(`indicesIndices${g}`)};\n if (idx${g} < 0) {\n idx${g} = idx${g} + uniforms.axisDimLimit;\n }\n var dataIndices${g} : ${f.type.indices};\n `;for(let v=0,$=0;v<o;v++)v===i?(w+=`${o>1?`dataIndices${g}[${v}]`:`dataIndices${g}`} = u32(idx${g});`,$+=b):(w+=`${o>1?`dataIndices${g}[${v}]`:`dataIndices${g}`} = ${s.length>1?`outputIndices${g}[${$}]`:`outputIndices${g}`};`,$++);return w},y;if(e[0].dataType===9){let g=(b,w,v=\"\")=>`\n let outputIndices${w} = ${h.offsetToIndices(`outputOffset + ${w}u`)};\n ${_(w)};\n let offset${w} = ${f.indicesToOffset(`dataIndices${w}`)};\n let index${w} = offset${w} / 4u;\n let component${w} = offset${w} % 4u;\n ${b}[${w}] = ${v}(${f.getByOffset(`index${w}`)}[component${w}]);\n `;y=`\n let outputOffset = global_idx * ${u};\n var value = vec4<u32>(0);\n ${g(\"value\",0,\"u32\")}\n ${g(\"value\",1,\"u32\")}\n ${g(\"value\",2,\"u32\")}\n ${g(\"value\",3,\"u32\")}\n ${h.setByOffset(\"global_idx\",\"value\")}\n `}else y=`\n let outputIndices = ${h.offsetToIndices(\"global_idx\")};\n ${_(\"\")};\n let value = ${f.getByIndices(\"dataIndices\")};\n ${h.setByOffset(\"global_idx\",\"value\")};\n `;return`\n ${p.registerUniform(\"outputSize\",\"u32\").registerUniform(\"axisDimLimit\",\"i32\").registerUniform(\"axis\",\"u32\").declareVariables(f,m,h)}\n ${p.mainStart()}\n ${p.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n ${y}\n }`};return{name:\"Gather\",shaderCache:{hint:t.cacheKey,inputDependencies:[\"rank\",\"rank\"]},getRunData:()=>({outputs:[{dims:s,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:l}),getShaderSource:c}},Hs=e=>L({axis:e.axis}),Fs=(e,t)=>{let n=e.inputs;Ol(n),e.compute(Ml(e.inputs,t))}});var Ul,Ks,js,Zs=k(()=>{\"use strict\";N();H();q();Ul=(e,t,n,r,o,i,s,a,u)=>{let d=[{type:12,data:i},{type:12,data:r},{type:12,data:o},{type:12,data:n},{type:12,data:s},{type:12,data:a},{type:12,data:u}],l=[i];d.push(...P(t.dims,l));let c=p=>{let f=S(\"indices_data\",t.dataType,t.dims.length),m=C(\"input_slice_offsets_data\",12,1,1),h=[f,m],_=[{name:\"output_size\",type:\"u32\"},{name:\"batch_dims\",type:\"u32\"},{name:\"input_dims\",type:\"u32\",length:o.length},{name:\"sizes_from_slice_dims_data\",type:\"u32\",length:n.length},{name:\"num_slices_per_batch\",type:\"u32\"},{name:\"input_batch_stride\",type:\"u32\"},{name:\"num_slice_dims\",type:\"u32\"}];return`\n ${p.registerUniforms(_).declareVariables(...h)}\n ${p.mainStart()}\n ${p.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let batch_idx = global_idx / uniforms.num_slices_per_batch;\n let base_offset = batch_idx * uniforms.input_batch_stride;\n\n let slice_indices_base_offset = global_idx * uniforms.num_slice_dims;\n var relative_slice_offset = 0;\n for (var dim_idx = 0u; dim_idx < uniforms.num_slice_dims; dim_idx ++) {\n var index = i32(indices_data[dim_idx + slice_indices_base_offset].x);\n let input_dim_idx = uniforms.batch_dims + dim_idx;\n if (index < 0) {\n ${o.length===1?\"index += i32(uniforms.input_dims);\":\"index += i32(uniforms.input_dims[input_dim_idx]);\"}\n }\n ${n.length===1?\"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data);\":\"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data[dim_idx]);\"}\n }\n\n input_slice_offsets_data[global_idx] = base_offset + u32(relative_slice_offset);\n }`};return e.compute({name:\"computeSliceOffsets\",shaderCache:{hint:`${o.length}_${n.length}`,inputDependencies:[\"rank\"]},getRunData:()=>({outputs:[{dims:l,dataType:e.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:d}),getShaderSource:c},{inputs:[t],outputs:[-1]})[0]},Ks=(e,t)=>{let n=e.inputs,r=n[0].dims,o=n[0].dataType,i=n[1].dims,s=i[i.length-1],a=x.sizeToDimension(i,i.length-1),u=x.sizeFromDimension(r,t.batchDims+s),d=x.sizeToDimension(r,t.batchDims),l=x.sizeFromDimension(r,t.batchDims),c=a/d,p=new Array(s),f=u;for(let w=0;w<s;++w)p[s-1-w]=f,f*=r[t.batchDims+s-1-w];let m=Ul(e,n[1],p,t.batchDims,r,a,c,l,s),h=t.batchDims+s;if(h>r.length)throw new Error(\"last dimension of indices must not be larger than rank of input tensor\");let _=i.slice(0,-1).concat(r.slice(h)),y=x.size(_),g=[{type:12,data:y},{type:12,data:u},...P(n[0].dims,m.dims,_)],b=w=>{let v=S(\"data\",n[0].dataType,n[0].dims.length),$=S(\"slice_offsets\",12,m.dims.length),T=C(\"output\",n[0].dataType,_.length);return`\n ${w.registerUniform(\"output_size\",\"u32\").registerUniform(\"slice_size\",\"u32\").declareVariables(v,$,T)}\n ${w.mainStart()}\n ${w.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let slice_offset = slice_offsets[global_idx / uniforms.slice_size];\n output[global_idx] = data[u32(slice_offset) + global_idx % uniforms.slice_size];\n }`};e.compute({name:\"GatherND\",shaderCache:{hint:t.cacheKey,inputDependencies:[\"rank\",\"rank\"]},getRunData:()=>({outputs:[{dims:_,dataType:o}],dispatchGroup:{x:Math.ceil(y/64)},programUniforms:g}),getShaderSource:b},{inputs:[n[0],m]})},js=e=>({batchDims:e.batch_dims,cacheKey:\"\"})});var Rl,Vl,Qs,Xs,Ys=k(()=>{\"use strict\";N();H();ue();q();Rl=(e,t)=>{if(e.length<3||e.length>4)throw new Error(\"GatherBlockQuantized requires 3 or 4 inputs.\");let n=x.normalizeAxis(t.quantizeAxis,e[0].dims.length),r=t.blockSize,o=e[0],i=e[2],s=e.length===4?e[3]:void 0;if(i.dims.length!==o.dims.length||!o.dims.map((a,u)=>u===n?Math.ceil(a/r)===i.dims[u]:a===i.dims[u]).reduce((a,u)=>a&&u,!0))throw new Error(\"Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.\");if(s){if(s.dataType!==o.dataType)throw new Error(\"Zero point must have the same data type as the input tensor.\");if(s.dims.length!==i.dims.length||!s.dims.map((a,u)=>a===i.dims[u]).reduce((a,u)=>a&&u,!0))throw new Error(\"Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.\")}},Vl=(e,t)=>{let n=e[0].dims,r=e[1].dims,o=n.length,i=x.normalizeAxis(t.gatherAxis,o),s=x.normalizeAxis(t.quantizeAxis,o),a=n.slice(0);a.splice(i,1,...r);let u=x.size(a),d=e[2].dataType,c=e[0].dataType===22,p=[{type:12,data:u},{type:12,data:s},{type:12,data:i},{type:12,data:t.blockSize},...P(...e.map((m,h)=>m.dims),a)],f=m=>{let h=S(\"data\",e[0].dataType,e[0].dims.length),_=S(\"inputIndices\",e[1].dataType,e[1].dims.length),y=S(\"scales\",e[2].dataType,e[2].dims.length),g=e.length>3?S(\"zeroPoint\",e[3].dataType,e[3].dims.length):void 0,b=C(\"output\",d,a.length),w=[h,_,y];g&&w.push(g);let v=[{name:\"output_size\",type:\"u32\"},{name:\"quantize_axis\",type:\"u32\"},{name:\"gather_axis\",type:\"u32\"},{name:\"block_size\",type:\"u32\"}];return`\n ${m.registerUniforms(v).declareVariables(...w,b)}\n ${m.mainStart()}\n let output_indices = ${b.offsetToIndices(\"global_idx\")};\n var indices_indices = ${_.type.indices}(0);\n ${r.length>1?`\n for (var i: u32 = 0; i < ${r.length}; i++) {\n let index = ${b.indicesGet(\"output_indices\",\"uniforms.gather_axis + i\")};\n ${_.indicesSet(\"indices_indices\",\"i\",\"index\")};\n }`:`indices_indices = ${b.indicesGet(\"output_indices\",\"uniforms.gather_axis\")};`};\n var data_indices = ${h.type.indices}(0);\n for (var i: u32 = 0; i < uniforms.gather_axis; i++) {\n let index = ${b.indicesGet(\"output_indices\",\"i\")};\n ${h.indicesSet(\"data_indices\",\"i\",\"index\")};\n }\n var index_from_indices = ${_.getByIndices(\"indices_indices\")};\n if (index_from_indices < 0) {\n index_from_indices += ${n[i]};\n }\n ${h.indicesSet(\"data_indices\",\"uniforms.gather_axis\",\"u32(index_from_indices)\")};\n for (var i = uniforms.gather_axis + 1; i < ${a.length}; i++) {\n let index = ${b.indicesGet(\"output_indices\",`i + ${r.length} - 1`)};\n ${h.indicesSet(\"data_indices\",\"i\",\"index\")};\n }\n let data_offset = ${h.indicesToOffset(\"data_indices\")};\n let data_index = data_offset % 8;\n // Convert 4-bit packed data to 8-bit packed data.\n let packed_4bit_quantized_data = ${h.getByOffset(\"data_offset / 8\")};\n let packed_8bit_quantized_data = (packed_4bit_quantized_data >> (4 * (data_index % 2))) & 0x0f0f0f0f;\n let quantized_data_vec = ${c?\"unpack4xI8\":\"unpack4xU8\"}(u32(packed_8bit_quantized_data));\n let quantized_data = quantized_data_vec[data_index / 2];\n var scale_indices = data_indices;\n let quantize_axis_index = ${y.indicesGet(\"data_indices\",\"uniforms.quantize_axis\")} / uniforms.block_size;\n ${y.indicesSet(\"scale_indices\",\"uniforms.quantize_axis\",\"quantize_axis_index\")};\n var scale = ${y.getByIndices(\"scale_indices\")};\n ${g?`\n let zero_point_indices = scale_indices;\n let zero_point_offset = ${g.indicesToOffset(\"zero_point_indices\")};\n let zero_point_index = zero_point_offset % 8;\n let packed_4bit_zero_points = ${g.getByOffset(\"zero_point_offset / 8\")};\n let packed_8bit_zero_points = (packed_4bit_zero_points >> (4 * (zero_point_index % 2))) & 0x0f0f0f0f;\n let zero_point_vec = ${c?\"unpack4xI8\":\"unpack4xU8\"}(u32(packed_8bit_zero_points));\n let zero_point = zero_point_vec[zero_point_index / 2];`:\"var zero_point = 0\"};\n let dequantized_data = ${pe(d)}(quantized_data - zero_point) * scale;\n ${b.setByOffset(\"global_idx\",\"dequantized_data\")};\n }`};return{name:\"GatherBlockQuantized\",shaderCache:{hint:`${t.cacheKey};${e.filter((m,h)=>h!==1).map(m=>m.dims.join(\"_\")).join(\";\")}`,inputDependencies:Array.from({length:e.length},(m,h)=>\"rank\")},getRunData:()=>({outputs:[{dims:a,dataType:d}],dispatchGroup:{x:Math.ceil(u/64)},programUniforms:p}),getShaderSource:f}},Qs=(e,t)=>{let n=e.inputs;Rl(n,t),e.compute(Vl(e.inputs,t))},Xs=e=>L({blockSize:e.blockSize,gatherAxis:e.gatherAxis,quantizeAxis:e.quantizeAxis})});var Nl,Ll,Js,ea,ta=k(()=>{\"use strict\";N();H();ue();q();Nl=e=>{if(!e||e.length!==2)throw new Error(\"GatherElements requires 2 inputs.\");if(e[0].dims.length<1)throw new Error(\"GatherElements requires that the data input be rank >= 1.\");if(e[0].dims.length!==e[1].dims.length)throw new Error(`GatherElements requires that the data input and\n indices input tensors be of same rank.`)},Ll=(e,t)=>{let n=e[0].dims,r=e[0].dataType,o=n.length,i=e[1].dims,s=e[1].dataType,a=x.normalizeAxis(t.axis,o),u=n[a],d=i.slice(0),l=x.size(d),c=S(\"input\",r,o),p=S(\"indicesInput\",s,i.length),f=C(\"output\",r,d.length),m=[{type:12,data:l},{type:6,data:u},{type:12,data:a}];return m.push(...P(n,i,d)),{name:\"GatherElements\",shaderCache:{inputDependencies:[\"rank\",\"rank\"]},getRunData:()=>({outputs:[{dims:d,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:m}),getShaderSource:y=>`\n ${y.registerUniform(\"outputSize\",\"u32\").registerUniform(\"axisDimLimit\",\"i32\").registerUniform(\"axis\",\"u32\").declareVariables(c,p,f)}\n ${y.mainStart()}\n ${y.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n\n let outputIndices = ${f.offsetToIndices(\"global_idx\")};\n\n var idx = ${p.getByOffset(\"global_idx\")};\n if (idx < 0) {\n idx = idx + uniforms.axisDimLimit;\n }\n var inputIndices = ${c.type.indices}(outputIndices);\n ${c.indicesSet(\"inputIndices\",\"uniforms.axis\",\"u32(idx)\")};\n let value = ${c.getByIndices(\"inputIndices\")};\n\n ${f.setByOffset(\"global_idx\",\"value\")};\n }`}},Js=e=>L({axis:e.axis}),ea=(e,t)=>{let n=e.inputs;Nl(n),e.compute(Ll(e.inputs,t))}});var Wl,Gl,na,ra,oa=k(()=>{\"use strict\";N();H();q();Wl=e=>{if(!e)throw new Error(\"Input is missing\");if(e.length<2||e.length>3)throw new Error(\"Invaid input number.\");if(e.length===3&&e[2].dims.length>2)throw new Error(\"Invalid input shape of C\");if(e[0].dataType!==e[1].dataType||e.length===3&&e[0].dataType!==e[2].dataType)throw new Error(\"Input types are mismatched\")},Gl=(e,t)=>{let n=e[0].dims.slice(),r=e[1].dims.slice(),[o,i,s]=Ht.getShapeOfGemmResult(n,t.transA,r,t.transB,e.length===3?e[2].dims:void 0),a=[o,i];if(!a)throw new Error(\"Can't use gemm on the given tensors\");let u=16,d=Math.ceil(i/u),l=Math.ceil(o/u),c=!0,p=x.size(a),f=[{type:12,data:c?d:p},{type:12,data:o},{type:12,data:i},{type:12,data:s},{type:1,data:t.alpha},{type:1,data:t.beta}],m=[\"type\",\"type\"];e.length===3&&(f.push(...P(e[2].dims)),m.push(\"rank\")),f.push(...P(a));let h=y=>{let g=\"\";t.transA&&t.transB?g=\"value += a[k * uniforms.M + m] * b[n * uniforms.K + k];\":t.transA&&!t.transB?g=\"value += a[k * uniforms.M + m] * b[k * uniforms.N + n];\":!t.transA&&t.transB?g=\"value += a[m * uniforms.K + k] * b[n * uniforms.K + k];\":!t.transA&&!t.transB&&(g=\"value += a[m * uniforms.K + k] * b[k * uniforms.N + n];\");let b=t.alpha===1?\"\":\"value *= uniforms.alpha;\",w=S(\"a\",e[0].dataType,e[0].dims),v=S(\"b\",e[1].dataType,e[1].dims),$=w.type.value,T=null,I=[w,v];e.length===3&&(T=S(\"c\",e[2].dataType,e[2].dims.length),I.push(T));let E=C(\"output\",e[0].dataType,a.length);I.push(E);let z=[{name:\"output_size\",type:\"u32\"},{name:\"M\",type:\"u32\"},{name:\"N\",type:\"u32\"},{name:\"K\",type:\"u32\"},{name:\"alpha\",type:\"f32\"},{name:\"beta\",type:\"f32\"}];return`\n ${y.registerUniforms(z).declareVariables(...I)}\n\n ${y.mainStart()}\n ${y.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n\n let m = global_idx / uniforms.N;\n let n = global_idx % uniforms.N;\n\n var value = ${$}(0);\n for (var k: u32 = 0u; k < uniforms.K; k++) {\n ${g}\n }\n\n ${b}\n ${T!=null?`let cOffset = ${T.broadcastedIndicesToOffset(\"vec2(m, n)\",E)}; value += ${$}(uniforms.beta) * ${T.getByOffset(\"cOffset\")};`:\"\"}\n output[global_idx] = value;\n }`},_=y=>{let g=S(\"a\",e[0].dataType,e[0].dims),b=S(\"b\",e[1].dataType,e[1].dims),w=null,v=[g,b];e.length===3&&(w=S(\"c\",e[2].dataType,e[2].dims.length),v.push(w));let $=C(\"output\",e[0].dataType,a.length);v.push($);let T=[{name:\"num_tile_n\",type:\"u32\"},{name:\"M\",type:\"u32\"},{name:\"N\",type:\"u32\"},{name:\"K\",type:\"u32\"},{name:\"alpha\",type:\"f32\"},{name:\"beta\",type:\"f32\"}],I=\"\",E=\"\";t.transA&&t.transB?(E=`\n var col = tile_row_start + local_id.x;\n var row = k_start + local_id.y;\n if (col < uniforms.M && row < uniforms.K) {\n tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col];\n } else {\n tile_a[local_id.y][local_id.x] = ${g.type.value}(0);\n }\n\n col = k_start + local_id.x;\n row = tile_col_start + local_id.y;\n if (col < uniforms.K && row < uniforms.N) {\n tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col];\n } else {\n tile_b[local_id.y][local_id.x] = ${b.type.value}(0);\n }\n `,I=\"value += tile_a[k][local_id.y] * tile_b[local_id.x][k];\"):t.transA&&!t.transB?(E=`\n var col = tile_row_start + local_id.x;\n var row = k_start + local_id.y;\n if (col < uniforms.M && row < uniforms.K) {\n tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col];\n } else {\n tile_a[local_id.y][local_id.x] = ${g.type.value}(0);\n }\n\n col = tile_col_start + local_id.x;\n row = k_start + local_id.y;\n if (col < uniforms.N && row < uniforms.K) {\n tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col];\n } else {\n tile_b[local_id.y][local_id.x] = ${b.type.value}(0);\n }\n `,I=\"value += tile_a[k][local_id.y] * tile_b[k][local_id.x];\"):!t.transA&&t.transB?(E=`\n var col = k_start + local_id.x;\n var row = tile_row_start + local_id.y;\n if (col < uniforms.K && row < uniforms.M) {\n tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col];\n } else {\n tile_a[local_id.y][local_id.x] = ${g.type.value}(0);\n }\n\n col = k_start + local_id.x;\n row = tile_col_start + local_id.y;\n if (col < uniforms.K && row < uniforms.N) {\n tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col];\n } else {\n tile_b[local_id.y][local_id.x] = ${b.type.value}(0);\n }\n `,I=\"value += tile_a[local_id.y][k] * tile_b[local_id.x][k];\"):!t.transA&&!t.transB&&(E=`\n var col = k_start + local_id.x;\n var row = tile_row_start + local_id.y;\n if (col < uniforms.K && row < uniforms.M) {\n tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col];\n } else {\n tile_a[local_id.y][local_id.x] = ${g.type.value}(0);\n }\n\n col = tile_col_start + local_id.x;\n row = k_start + local_id.y;\n if (col < uniforms.N && row < uniforms.K) {\n tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col];\n } else {\n tile_b[local_id.y][local_id.x] = ${b.type.value}(0);\n }\n `,I=\"value += tile_a[local_id.y][k] * tile_b[k][local_id.x];\");let z=t.alpha===1?\"\":\"value *= uniforms.alpha;\";return`\n ${y.registerUniforms(T).declareVariables(...v)}\n var<workgroup> tile_a: array<array<${g.type.storage}, ${u}>, ${u}>;\n var<workgroup> tile_b: array<array<${b.type.storage}, ${u}>, ${u}>;\n ${y.mainStart([u,u,1])}\n let tile_col_start = (workgroup_index % uniforms.num_tile_n) * ${u};\n let tile_row_start = (workgroup_index / uniforms.num_tile_n) * ${u};\n let num_tiles = (uniforms.K - 1) / ${u} + 1;\n var k_start = 0u;\n var value = ${$.type.value}(0);\n for (var t: u32 = 0u; t < num_tiles; t++) {\n ${E}\n k_start = k_start + ${u};\n workgroupBarrier();\n\n for (var k: u32 = 0u; k < ${u}; k++) {\n ${I}\n }\n workgroupBarrier();\n }\n\n ${z}\n let m = tile_row_start + local_id.y;\n let n = tile_col_start + local_id.x;\n ${w!=null?`let cOffset = ${w.broadcastedIndicesToOffset(\"vec2(m, n)\",$)}; value += ${$.type.value}(uniforms.beta) * ${w.getByOffset(\"cOffset\")};`:\"\"}\n if (m < uniforms.M && n < uniforms.N) {\n output[m * uniforms.N + n] = value;\n }\n }`};return c?{name:\"GemmShared\",shaderCache:{hint:`${t.cacheKey}`,inputDependencies:m},getRunData:()=>({outputs:[{dims:a,dataType:e[0].dataType}],dispatchGroup:{x:d*l},programUniforms:f}),getShaderSource:_}:{name:\"Gemm\",shaderCache:{hint:`${t.cacheKey}`,inputDependencies:m},getRunData:()=>({outputs:[{dims:a,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:f}),getShaderSource:h}},na=e=>{let t=e.transA,n=e.transB,r=e.alpha,o=e.beta;return{transA:t,transB:n,alpha:r,beta:o,cacheKey:`${e.transA};${e.transB};${e.alpha===1}`}},ra=(e,t)=>{Wl(e.inputs),e.compute(Gl(e.inputs,t))}});var Le,je,at,ut,Hl,Fl,ql,Kl,jl,Zl,Ql,Xl,ia,sa,aa=k(()=>{\"use strict\";N();H();ue();q();[Le,je,at,ut]=[0,1,2,3],Hl=e=>{if(e[0].dims.length!==4)throw new Error(\"only 4-D tensor is supported.\");if(e[0].dims.length!==e[1].dims.length)throw new Error(\"input dimensions must be equal to grid dimensions\");if(e[0].dims.length-2!==e[1].dims[e[1].dims.length-1])throw new Error(`last dimension of grid must be equal to ${e[0].dims.length-2}`);if(e[0].dims[0]!==e[1].dims[0])throw new Error(\"grid batch size must match input batch size\")},Fl=`\n fn gs_get_cubic_coeffs(x: f32) -> vec4<f32> {\n let cubic_alpha = -0.75f;\n let x_abs = abs(x);\n var coeffs: vec4<f32>;\n coeffs[0] = (((cubic_alpha * (x_abs + 1) - 5 * cubic_alpha) * (x_abs + 1) + 8 * cubic_alpha) * (x_abs + 1) - 4 * cubic_alpha);\n coeffs[1] = (((cubic_alpha + 2) * x_abs - (cubic_alpha + 3)) * x_abs * x_abs + 1);\n coeffs[2] = (((cubic_alpha + 2) * (1 - x_abs) - (cubic_alpha + 3)) * (1 - x_abs) * (1 - x_abs) + 1);\n coeffs[3] = (((cubic_alpha * (2 - x_abs) - 5 * cubic_alpha) * (2 - x_abs) + 8 * cubic_alpha) * (2 - x_abs) - 4 * cubic_alpha);\n return coeffs;\n }\n`,ql=e=>`\n fn gs_bicubic_interpolate(p: mat4x4<${e}>, x: f32, y: f32) -> ${e} {\n var v: vec4<f32>;\n var coeffs = gs_get_cubic_coeffs(x);\n for (var i = 0; i < 4; i++) {\n v[i] = coeffs[0] * p[i][0] + coeffs[1] * p[i][1] + coeffs[2] * p[i][2] + coeffs[3] * p[i][3];\n }\n coeffs = gs_get_cubic_coeffs(y);\n let pixel = ${e}(coeffs[0] * v[0] + coeffs[1] * v[1] + coeffs[2] * v[2] + coeffs[3] * v[3]);\n return pixel;\n }\n`,Kl=e=>`\n fn gs_denormalize(n: f32, length: i32) -> f32 {\n ${e.alignCorners===0?`\n // alignCorners: false => [-1, 1] to [-0.5, length - 0.5]\n return ((n + 1.0) * f32(length) - 1.0) / 2.0;\n `:`\n // alignCorners: true => [-1, 1] to [0, length - 1]\n return (n + 1.0) / 2.0 * (f32(length - 1));\n `}\n }\n`,jl=e=>`\n ${e.paddingMode===\"reflection\"?`\n fn gs_reflect(x: i32, x_min: f32, x_max: f32) -> u32 {\n var dx = 0.0;\n var fx = f32(x);\n let range = x_max - x_min;\n if (fx < x_min) {\n dx = x_min - fx;\n let n = u32(dx / range);\n let r = dx - f32(n) * range;\n if (n % 2 == 0) {\n fx = x_min + r;\n } else {\n fx = x_max - r;\n }\n } else if (fx > x_max) {\n dx = fx - x_max;\n let n = u32(dx / range);\n let r = dx - f32(n) * range;\n if (n % 2 == 0) {\n fx = x_max - r;\n } else {\n fx = x_min + r;\n }\n }\n return u32(fx);\n }`:\"\"}\n`,Zl=(e,t,n)=>`\n fn pixel_at_grid(r: i32, c: i32, H: i32, W: i32, batch: u32, channel: u32, border: vec4<f32>) -> ${t} {\n var pixel = ${t}(0);\n var indices = vec4<u32>(0);\n indices[${Le}] = batch;\n indices[${je}] = channel;`+(()=>{switch(n.paddingMode){case\"zeros\":return`\n if (r >= 0 && r < H && c >=0 && c < W) {\n indices[${at}] = u32(r);\n indices[${ut}] = u32(c);\n } else {\n return ${t}(0);\n }\n `;case\"border\":return`\n indices[${at}] = u32(clamp(r, 0, H - 1));\n indices[${ut}] = u32(clamp(c, 0, W - 1));\n `;case\"reflection\":return`\n indices[${at}] = gs_reflect(r, border[1], border[3]);\n indices[${ut}] = gs_reflect(c, border[0], border[2]);\n `;default:throw new Error(`padding mode ${n.paddingMode} is not supported`)}})()+`\n return ${e.getByIndices(\"indices\")};\n }\n`,Ql=(e,t,n)=>(()=>{switch(n.mode){case\"nearest\":return`\n let result = pixel_at_grid(i32(round(y)), i32(round(x)), H_in, W_in, indices[${Le}], indices[${je}], border);\n `;case\"bilinear\":return`\n let x1 = i32(floor(x));\n let y1 = i32(floor(y));\n let x2 = x1 + 1;\n let y2 = y1 + 1;\n\n let p11 = pixel_at_grid(y1, x1, H_in, W_in, indices[${Le}], indices[${je}], border);\n let p12 = pixel_at_grid(y1, x2, H_in, W_in, indices[${Le}], indices[${je}], border);\n let p21 = pixel_at_grid(y2, x1, H_in, W_in, indices[${Le}], indices[${je}], border);\n let p22 = pixel_at_grid(y2, x2, H_in, W_in, indices[${Le}], indices[${je}], border);\n\n let dx2 = ${t}(f32(x2) - x);\n let dx1 = ${t}(x - f32(x1));\n let dy2 = ${t}(f32(y2) - y);\n let dy1 = ${t}(y - f32(y1));\n let result = dy2 * (dx2 * p11 + dx1 * p12) + dy1 * (dx2 * p21 + dx1 * p22);\n `;case\"bicubic\":return`\n let x0 = i32(floor(x)) - 1;\n let y0 = i32(floor(y)) - 1;\n var p: mat4x4<${t}>;\n for (var h = 0; h < 4; h++) {\n for (var w = 0; w < 4; w++) {\n p[h][w] = pixel_at_grid(h + y0, w + x0, H_in, W_in, indices[${Le}], indices[${je}], border);\n }\n }\n\n let dx = x - f32(x0 + 1);\n let dy = y - f32(y0 + 1);\n let result = gs_bicubic_interpolate(p, dx, dy);\n `;default:throw new Error(`mode ${n.mode} is not supported`)}})()+`${e.setByOffset(\"global_idx\",\"result\")}`,Xl=(e,t)=>{let n=S(\"x\",e[0].dataType,e[0].dims.length),r=[e[1].dims[0],e[1].dims[1],e[1].dims[2]],o=S(\"grid\",e[1].dataType,r.length,2),i=[e[0].dims[0],e[0].dims[1],e[1].dims[1],e[1].dims[2]];t.format===\"NHWC\"&&(i=[e[0].dims[0],e[1].dims[1],e[1].dims[2],e[0].dims[3]],[Le,je,at,ut]=[0,3,1,2]);let s=C(\"output\",e[0].dataType,i.length),a=n.type.value,u=x.size(i),d=[{type:12,data:u},...P(e[0].dims,r,i)],l=c=>`\n ${c.registerUniform(\"output_size\",\"u32\").declareVariables(n,o,s)}\n ${Fl}\n ${ql(a)}\n ${Kl(t)}\n ${jl(t)}\n ${Zl(n,a,t)}\n\n ${c.mainStart()}\n ${c.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let H_in = i32(uniforms.x_shape[${at}]);\n let W_in = i32(uniforms.x_shape[${ut}]);\n\n ${t.alignCorners===0?`\n let x_min = -0.5;\n let x_max = f32(W_in) - 0.5;\n let y_min = -0.5;\n let y_max = f32(H_in) - 0.5;\n `:`\n let x_min = 0.0;\n let x_max = f32(W_in) - 1.0;\n let y_min = 0.0;\n let y_max = f32(H_in) - 1.0;\n `};\n let border = vec4<f32>(x_min, y_min, x_max, y_max);\n\n let indices = ${s.offsetToIndices(\"global_idx\")};\n var grid_indices = vec3<u32>(indices[${Le}], indices[${at}], indices[${ut}]);\n let nxy = ${o.getByIndices(\"grid_indices\")};\n var x = gs_denormalize(f32(nxy[0]), W_in);\n var y = gs_denormalize(f32(nxy[1]), H_in);\n\n ${Ql(s,a,t)}\n }`;return{name:\"GridSample\",shaderCache:{hint:`${t.cacheKey}`,inputDependencies:[\"type\",\"type\"]},getRunData:c=>{let p=x.size(i);return{outputs:[{dims:i,dataType:c[0].dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:d}},getShaderSource:l}},ia=(e,t)=>{Hl(e.inputs),e.compute(Xl(e.inputs,t))},sa=e=>L({alignCorners:e.align_corners,mode:e.mode,paddingMode:e.padding_mode,format:e.format})});var _e,ec,da,ua,tc,$t,la,ar=k(()=>{\"use strict\";N();H();ue();Qt();tn();q();Ne();_e=(e,t)=>e.length>t&&e[t].dims.length>0?e[t]:void 0,ec=(e,t)=>{let n=e[0],r=_e(e,1),o=_e(e,2),i=_e(e,3),s=_e(e,4),a=_e(e,5),u=_e(e,6),d=_e(e,7);if(n.dims.length!==3&&n.dims.length!==5)throw new Error(\"Input query is expected to have 3 or 5 dimensions\");let l=n.dims[0],c=n.dims[1],p=n.dims.length===3?n.dims[2]:t.numHeads*n.dims[4],f=c,m=0,h=0,_=Math.floor(p/t.numHeads);if(u&&d&&x.size(u.dims)&&x.size(d.dims)){if(u.dims.length!==4)throw new Error('Input \"past_key\" is expected to have 4 dimensions');if(u.dims[0]!==l||u.dims[1]!==t.numHeads||u.dims[3]!==_)throw new Error('Input \"past_key\" shape (batch_size, num_heads, past_sequence_length, head_size)');if(d.dims[0]!==l||d.dims[1]!==t.numHeads||d.dims[3]!==_)throw new Error('Input \"past_value\" shape (batch_size, num_heads, past_sequence_length, head_size)');if(u.dims[2]!==d.dims[2])throw new Error('Input \"past_key\" and \"past_value\" shall have same dim 2 (past_sequence_length)');if(d.dims.length!==4)throw new Error('Input \"past_value\" is expected to have 4 dimensions');m=u.dims[2],h=u.dims[2]}else if(u&&x.size(u.dims)||d&&x.size(d.dims))throw new Error('Input \"past_key\" and \"past_value\" shall be both present or both absent');let y;if(r&&x.size(r.dims)>0){if(n.dims.length!==3)throw new Error('Input \"query\" is expected to have 3 dimensions when key is given');if(r.dims.length<3||r.dims.length>5)throw new Error('Input \"key\" is expected to have 3, 4, or 5 dimensions');if(n.dims[0]!==r.dims[0])throw new Error('Input \"query\" and \"key\" shall have same dim 0 (batch size)');if(r.dims.length===3){if(r.dims[2]!==n.dims[2])throw new Error('Input \"query\" and \"key\" shall have same dim 2 (hidden_size)');y=2,f=r.dims[1]}else if(r.dims.length===5){if(r.dims[2]!==t.numHeads||r.dims[3]!==2||r.dims[4]!==_)throw new Error('Expect \"key\" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(o)throw new Error('Expect \"value\" be none when \"key\" has packed kv format.');y=5,f=r.dims[1]}else{if(r.dims[1]!==t.numHeads||r.dims[3]!==_)throw new Error('Expect \"key\" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');y=0,f=r.dims[2]}}else{if(n.dims.length!==5)throw new Error('Input \"query\" is expected to have 5 dimensions when key is empty');if(n.dims[2]!==t.numHeads||n.dims[3]!==3)throw new Error('Expect \"query\" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');y=3}if(i&&x.size(i.dims)>0){if(i.dims.length!==1)throw new Error('Input \"bias\" is expected to have 1 dimension');if(r&&r.dims.length===5&&r.dims[3]===2)throw new Error(\"bias is not allowed for packed kv.\")}let g=m+f,b=0;if(s&&x.size(s.dims)>0){b=8;let T=s.dims;throw T.length===1?T[0]===l?b=1:T[0]===3*l+2&&(b=3):T.length===2&&T[0]===l&&T[1]===g&&(b=5),b===8?new Error('Input \"key_padding_mask\" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error(\"Mask not supported\")}let w=!1,v=p;if(o&&x.size(o.dims)>0){if(o.dims.length!==3&&o.dims.length!==4)throw new Error('Input \"value\" is expected to have 3 or 4 dimensions');if(n.dims[0]!==o.dims[0])throw new Error('Input \"query\" and \"value\" shall have same dim 0 (batch_size)');if(o.dims.length===3){if(f!==o.dims[1])throw new Error('Input \"key\" and \"value\" shall have the same dim 1 (kv_sequence_length)');v=o.dims[2]}else{if(f!==o.dims[2])throw new Error('Input \"key\" and \"value\" shall have the same dim 2 (kv_sequence_length)');v=o.dims[1]*o.dims[3],w=!0}}let $=!1;if(s&&x.size(s.dims)>0)throw new Error(\"Key padding mask is not supported\");if(a&&x.size(a.dims)>0){if(a.dims.length!==4)throw new Error('Input \"attention_bias\" is expected to have 4 dimensions');if(a.dims[0]!==l||a.dims[1]!==t.numHeads||a.dims[2]!==c||a.dims[3]!==g)throw new Error('Expect \"attention_bias\" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:l,sequenceLength:c,pastSequenceLength:m,kvSequenceLength:f,totalSequenceLength:g,maxSequenceLength:h,inputHiddenSize:0,hiddenSize:p,vHiddenSize:v,headSize:_,vHeadSize:Math.floor(v/t.numHeads),numHeads:t.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:t.maskFilterValue,maskType:b,scale:t.scale,broadcastResPosBias:$,passPastInKv:w,qkvFormat:y}},da=e=>L({...e}),ua=L({perm:[0,2,1,3]}),tc=(e,t,n,r,o,i,s)=>{let a=[r,o,i],u=x.size(a),d=[{type:12,data:u},{type:12,data:s},{type:12,data:i}],l=c=>{let p=C(\"qkv_with_bias\",t.dataType,a),f=S(\"qkv\",t.dataType,a),m=S(\"bias\",n.dataType,a),h=[{name:\"output_size\",type:\"u32\"},{name:\"bias_offset\",type:\"u32\"},{name:\"hidden_size\",type:\"u32\"}];return`\n ${c.registerUniforms(h).declareVariables(f,m,p)}\n ${c.mainStart()}\n ${c.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let bias_offset_idx = (global_idx % uniforms.hidden_size) + uniforms.bias_offset;\n\n qkv_with_bias[global_idx] = qkv[global_idx] + bias[bias_offset_idx];\n }`};return e.compute({name:\"MultiHeadAttentionAddBias\",shaderCache:{inputDependencies:[\"type\",\"type\"]},getRunData:()=>({outputs:[{dims:a,dataType:t.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(u/64)},programUniforms:d}),getShaderSource:l},{inputs:[t,n],outputs:[-1]})[0]},$t=(e,t,n,r,o,i,s,a)=>{let u=i;if(s&&x.size(s.dims)>0){if(r===1)throw new Error(\"AddBiasReshape is not implemented. Please export your model with packed QKV or KV\");return u=tc(e,i,s,t,r,n*o,a),u=u.reshape([t,r,n,o]),n===1||r===1?u:e.compute(me(u,ua.perm),{inputs:[u],outputs:[-1]})[0]}else return i.dims.length===3&&(u=i.reshape([t,r,n,o])),n===1||r===1?u:e.compute(me(u,ua.perm),{inputs:[u],outputs:[-1]})[0]},la=(e,t)=>{let n=ec(e.inputs,t),r=e.inputs[0],o=_e(e.inputs,1),i=_e(e.inputs,2),s=_e(e.inputs,3),a=_e(e.inputs,4),u=_e(e.inputs,5),d=_e(e.inputs,6),l=_e(e.inputs,7);if(r.dims.length===5)throw new Error(\"Packed QKV is not implemented\");if(o?.dims.length===5)throw new Error(\"Packed KV is not implemented\");let c=o&&i&&o.dims.length===4&&i.dims.length===4,p=$t(e,n.batchSize,n.numHeads,n.sequenceLength,n.headSize,r,s,0);if(c)return st(e,p,o,i,a,void 0,d,l,u,n);if(!o||!i)throw new Error(\"key and value must be provided\");let f=$t(e,n.batchSize,n.numHeads,n.kvSequenceLength,n.headSize,o,s,n.hiddenSize),m=$t(e,n.batchSize,n.numHeads,n.kvSequenceLength,n.vHeadSize,i,s,2*n.hiddenSize);st(e,p,f,m,a,void 0,d,l,u,n)}});var nc,rc,oc,ic,ur,ca,pa,dr=k(()=>{\"use strict\";N();H();ue();q();nc=e=>{if(!e||e.length<1)throw new Error(\"too few inputs\")},rc=(e,t)=>{let n=[],r=t.numOutputs;return e[1].dims[0]>0&&(e[1].getBigInt64Array().forEach(o=>n.push(Number(o))),r=n.length),L({numOutputs:r,axis:t.axis,splitSizes:n})},oc=e=>`\nfn calculateOutputIndex(index: u32) -> u32 {\n for (var i: u32 = 0u; i < ${e}u; i += 1u ) {\n if (index < ${D(\"uniforms.size_in_split_axis\",\"i\",e)}) {\n return i;\n }\n }\n return ${e}u;\n}`,ic=e=>{let t=e.length,n=[];for(let r=0;r<t;++r){let o=e[r].setByIndices(\"indices\",\"input[global_idx]\");t===1?n.push(o):r===0?n.push(`if (output_number == ${r}u) { ${o} }`):r===t-1?n.push(`else { ${o} }`):n.push(`else if (output_number == ${r}) { ${o} }`)}return`\n fn writeBufferData(output_number: u32, indices: ${e[0].type.indices}, global_idx: u32) {\n ${n.join(`\n`)}\n }`},ur=(e,t)=>{let n=e[0].dims,r=x.size(n),o=e[0].dataType,i=x.normalizeAxis(t.axis,n.length),s=new Array(t.numOutputs),a=S(\"input\",o,n.length),u=new Array(t.numOutputs),d=[],l=[],c=0,p=[{type:12,data:r}];for(let m=0;m<t.numOutputs;m++){c+=t.splitSizes[m],u[m]=c;let h=n.slice();h[i]=t.splitSizes[m],l.push(h),s[m]=C(`output${m}`,o,h.length),d.push({dims:l[m],dataType:e[0].dataType})}p.push({type:12,data:u},...P(n,...l));let f=m=>`\n ${m.registerUniform(\"input_size\",\"u32\").registerUniform(\"size_in_split_axis\",\"u32\",u.length).declareVariables(a,...s)}\n ${oc(u.length)}\n ${ic(s)}\n\n ${m.mainStart()}\n ${m.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.input_size\")}\n\n var indices = ${a.offsetToIndices(\"global_idx\")};\n var index = ${a.indicesGet(\"indices\",i)};\n let output_number = calculateOutputIndex(index);\n if (output_number != 0) {\n index -= ${D(\"uniforms.size_in_split_axis\",\"output_number - 1u\",u.length)};\n ${a.indicesSet(\"indices\",i,\"index\")};\n }\n writeBufferData(output_number, indices, global_idx);\n }`;return{name:\"Split\",shaderCache:{hint:t.cacheKey,inputDependencies:[\"rank\"]},getShaderSource:f,getRunData:()=>({outputs:d,dispatchGroup:{x:Math.ceil(r/64)},programUniforms:p})}},ca=(e,t)=>{nc(e.inputs);let n=e.inputs.length===1?t:rc(e.inputs,t);e.compute(ur(e.inputs,n),{inputs:[0]})},pa=e=>{let t=e.axis,n=e.splitSizes,r=e.numOutputs<0?n.length:e.numOutputs;if(r!==n.length)throw new Error(\"numOutputs and splitSizes length must be equal\");return L({axis:t,numOutputs:r,splitSizes:n})}});var sc,pn,ma,lr=k(()=>{\"use strict\";N();H();ue();q();sc=(e,t)=>{let[n,r,o,i]=e,{numHeads:s,rotaryEmbeddingDim:a}=t;if(n.dims.length!==3&&n.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${n.dims.length}`);if(!x.areEqual(r.dims,[])&&!x.areEqual(r.dims,[1])&&r.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${r.dims.length}`);if(o.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${o.dims.length}`);if(i.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${i.dims.length}`);if(!x.areEqual(o.dims,i.dims))throw new Error(\"Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape\");if(a>0&&s===0)throw new Error(\"num_heads must be provided if rotary_embedding_dim is specified\");let u=n.dims[0],d=n.dims[n.dims.length-2],l=o.dims[0],c=x.sizeFromDimension(n.dims,1)/d,p=a===0?o.dims[1]*2:c/s;if(a>p)throw new Error(\"rotary_embedding_dim must be less than or equal to head_size\");if(r.dims.length===2){if(u!==r.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${r.dims[0]}`);if(d!==r.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${r.dims[1]}`)}if(d>l)throw new Error(\"Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported\");if(p/2!==o.dims[1]&&a/2!==o.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${o.dims[1]}`)},pn=(e,t)=>{let{interleaved:n,numHeads:r,rotaryEmbeddingDim:o,scale:i}=t,s=e[0].dims[0],a=x.sizeFromDimension(e[0].dims,1),u=e[0].dims[e[0].dims.length-2],d=a/u,l=e[2].dims[1],c=o===0?l*2:d/r,p=new Array(s,u,d/c,c-l),f=x.computeStrides(p),m=[{type:1,data:i},{type:12,data:p},{type:12,data:f},...e[0].dims.length===3?new Array({type:12,data:[a,d,c,1]}):[],...e[0].dims.length===4?new Array({type:12,data:[a,c,u*c,1]}):[],...P(e[0].dims,e[1].dims,e[2].dims,e[3].dims,e[0].dims)],h=_=>{let y=S(\"input\",e[0].dataType,e[0].dims.length),g=S(\"position_ids\",e[1].dataType,e[1].dims.length),b=S(\"cos_cache\",e[2].dataType,e[2].dims.length),w=S(\"sin_cache\",e[3].dataType,e[3].dims.length),v=C(\"output\",e[0].dataType,e[0].dims.length);return _.registerUniforms([{name:\"scale\",type:\"f32\"},{name:\"global_shape\",type:\"u32\",length:p.length},{name:\"global_strides\",type:\"u32\",length:f.length},{name:\"input_output_strides\",type:\"u32\",length:f.length}]),`\n ${_.declareVariables(y,g,b,w,v)}\n\n ${_.mainStart(Je)}\n let half_rotary_emb_dim = uniforms.${b.name}_shape[1];\n let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape;\n let size = uniforms.global_shape[0] * uniforms.global_strides[0];\n ${_.guardAgainstOutOfBoundsWorkgroupSizes(\"size\")}\n\n if (bsnh[3] < half_rotary_emb_dim) {\n let position_ids_idx =\n ${g.broadcastedIndicesToOffset(\"bsnh.xy\",C(\"\",g.type.tensor,2))};\n let position_id =\n u32(${g.getByOffset(\"position_ids_idx\")}) + select(0, bsnh[1], position_ids_idx == 0);\n let i = dot(bsnh, uniforms.input_output_strides) + select(0, bsnh[3], ${n});\n let j = i + select(half_rotary_emb_dim, 1, ${n});\n let re = ${y.getByOffset(\"i\")} * ${b.get(\"position_id\",\"bsnh[3]\")} -\n ${y.getByOffset(\"j\")} * ${w.get(\"position_id\",\"bsnh[3]\")};\n ${v.setByOffset(\"i\",\"re\")}\n let im = ${y.getByOffset(\"i\")} * ${w.get(\"position_id\",\"bsnh[3]\")} +\n ${y.getByOffset(\"j\")} * ${b.get(\"position_id\",\"bsnh[3]\")};\n ${v.setByOffset(\"j\",\"im\")}\n } else {\n let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim;\n ${v.setByOffset(\"k\",y.getByOffset(\"k\"))}\n }\n }`};return{name:\"RotaryEmbedding\",shaderCache:{hint:L({interleaved:n}).cacheKey,inputDependencies:[\"rank\",\"rank\",\"rank\",\"rank\"]},getShaderSource:h,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(x.size(p)/Je)},programUniforms:m})}},ma=(e,t)=>{sc(e.inputs,t),e.compute(pn(e.inputs,t))}});var ac,uc,fa,dc,ha,ga=k(()=>{\"use strict\";ue();N();tn();ar();dr();Ne();lr();q();ac=(e,t)=>{if(t.doRotary&&e.length<=7)throw new Error(\"cos_cache and sin_cache inputs are required if do_rotary is specified\");let n=e[0],r=e[1],o=e[2],i=e[3],s=e[4];if(t.doRotary!==0&&e.length<=7)throw new Error(\"cos_cast and sin_cache are expected if do_rotary attribute is non-zero\");if(t.localWindowSize!==-1)throw new Error(\"Local attention is not supported\");if(t.softcap!==0)throw new Error(\"Softcap is not supported\");if(t.rotaryInterleaved!==0)throw new Error(\"Rotary interleaved is not supported\");if(t.smoothSoftmax)throw new Error(\"Smooth softmax is not supported\");if(n.dims.length!==3&&n.dims.length!==5)throw new Error(\"Input query is expected to have 3 or 5 dimensions\");let a=!1,u=n.dims[0],d=n.dims[1],l=n.dims.length===3?a?n.dims[2]/3:n.dims[2]:t.numHeads*n.dims[4],c=d,p=0,f=!r||r.dims.length===0,m=Math.floor(f?l/(t.numHeads+2*t.kvNumHeads):l/t.numHeads);f&&(l=m*t.numHeads);let h=i&&i.dims.length!==0,_=s&&s.dims.length!==0;if(h&&i.dims.length===4&&i.dims[0]===u&&i.dims[1]!==t.kvNumHeads&&i.dims[2]===t.kvNumHeads&&i.dims[3]===m)throw new Error(\"BSNH pastKey/pastValue is not supported\");if(h&&_){if(i.dims.length!==4)throw new Error('Input \"past_key\" is expected to have 4 dimensions');if(s.dims.length!==4)throw new Error('Input \"past_value\" is expected to have 4 dimensions');p=i.dims[2]}else if(h||_)throw new Error('Input \"past_key\" and \"past_value\" shall be both present or both absent');let g=1;if(r&&r.dims.length>0){if(n.dims.length!==3)throw new Error('Input \"query\" is expected to have 3 dimensions when key is given');if(r.dims.length<3||r.dims.length>5)throw new Error('Input \"key\" is expected to have 3, 4, or 5 dimensions');if(n.dims[0]!==r.dims[0])throw new Error('Input \"query\" and \"key\" shall have same dim 0 (batch size)');if(r.dims.length===3){if(n.dims[2]%r.dims[2]!==0)throw new Error('Dimension 2 of \"query\" should be a multiple of \"key\"');c=r.dims[1]}else if(r.dims.length===5){if(r.dims[2]!==t.numHeads||r.dims[3]!==2||r.dims[4]!==m)throw new Error('Expect \"key\" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(o)throw new Error('Expect \"value\" be none when \"key\" has packed kv format.');c=r.dims[1]}else{if(r.dims[1]!==t.numHeads||r.dims[3]!==m)throw new Error('Expect \"key\" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');c=r.dims[2]}}else{if(n.dims.length!==3&&n.dims.length!==5)throw new Error('Input \"query\" is expected to have 3 or 5 dimensions when key is empty');if(n.dims.length===5&&(n.dims[2]!==t.numHeads||n.dims[3]!==3))throw new Error('Expect \"query\" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');g=3}let b=0,w=!1,v=t.kvNumHeads?m*t.kvNumHeads:l;if(o&&o.dims.length>0){if(o.dims.length!==3&&o.dims.length!==4)throw new Error('Input \"value\" is expected to have 3 or 4 dimensions');if(n.dims[0]!==o.dims[0])throw new Error('Input \"query\" and \"value\" shall have same dim 0 (batch_size)');if(o.dims.length===3){if(c!==o.dims[1])throw new Error('Input \"key\" and \"value\" shall have the same dim 1 (kv_sequence_length)');v=o.dims[2]}else{if(c!==o.dims[2])throw new Error('Input \"past_key\" and \"past_value\" shall have the same dim 2 (kv_sequence_length)');v=o.dims[1]*o.dims[3],w=!0}}let $=e.length>4?e[5]:void 0;if($){if($.dims.length===0)throw new Error(\"seqlens_k must be at least 1D, got scalar.\");let z=$.dims.reduce((M,O)=>M*O,1);if(z!==u)throw new Error(`seqlens_k must have batch_size (${u}) elements, got ${z}.`);for(let M=0;M<$.dims.length;M++)if($.dims[M]!==1&&$.dims[M]!==u)throw new Error(`seqlens_k has unexpected shape. Each dimension must be 1 or batch_size (${u}), got dims[${M}] = ${$.dims[M]}.`)}return{batchSize:u,sequenceLength:d,pastSequenceLength:p,kvSequenceLength:c,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:l,vHiddenSize:v,headSize:m,vHeadSize:Math.floor(v/t.kvNumHeads),numHeads:t.numHeads,kvNumHeads:t.kvNumHeads,nReps:t.numHeads/t.kvNumHeads,pastPresentShareBuffer:!1,maskType:b,scale:t.scale,broadcastResPosBias:!1,passPastInKv:w,qkvFormat:g}},uc=L({perm:[0,2,1,3]}),fa=(e,t,n)=>{let r=t,o=n.kvNumHeads;return t.dims.length===3&&n.kvSequenceLength!==0&&(r=t.reshape([n.batchSize,n.kvSequenceLength,o,n.headSize]),r=e.compute(me(r,uc.perm),{inputs:[r],outputs:[-1]})[0]),r},dc=(e,t,n,r)=>{let o=7,i=[\"type\",\"type\"],s=[e*t],a=e*t,u=[{type:12,data:a},{type:12,data:t},{type:12,data:e}],d=l=>{let c=S(\"seq_lens\",n.dataType,n.dims),p=S(\"total_seq_lens\",r.dataType,r.dims),f=C(\"pos_ids\",o,s),m=[{name:\"output_size\",type:\"u32\"},{name:\"sequence_length\",type:\"u32\"},{name:\"batch_size\",type:\"u32\"}];return`\n ${l.registerUniforms(m).declareVariables(c,p,f)}\n ${l.mainStart()}\n ${l.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let total_sequence_length = u32(${p.getByOffset(\"0\")});\n let is_subsequent_prompt = uniforms.sequence_length > 1 && uniforms.sequence_length != total_sequence_length;\n let is_first_prompt = !is_subsequent_prompt && uniforms.sequence_length == total_sequence_length;\n let batch_idx = global_idx / uniforms.sequence_length;\n let sequence_idx = i32(global_idx % uniforms.sequence_length);\n var pos_id: i32 = 0;\n let seqlen = ${c.getByOffset(\"batch_idx\")};\n let total_seqlen = seqlen + 1;\n if (is_first_prompt) {\n if (sequence_idx < total_seqlen) {\n pos_id = sequence_idx;\n } else {\n pos_id = 1;\n }\n ${f.setByOffset(\"global_idx\",\"pos_id\")}\n } else if (is_subsequent_prompt) {\n let past_seqlen = total_seqlen - i32(uniforms.sequence_length);\n if (past_seqlen + sequence_idx < total_seqlen) {\n pos_id = past_seqlen + sequence_idx;\n } else {\n pos_id = 1;\n }\n ${f.setByOffset(\"global_idx\",\"pos_id\")}\n } else if (global_idx < uniforms.batch_size) {\n ${f.setByOffset(\"global_idx\",\"seqlen\")}\n };\n }\n `};return{name:\"GeneratePositionIds\",shaderCache:{hint:`${e};${t}`,inputDependencies:i},getRunData:()=>({outputs:[{dims:s,dataType:o}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:u}),getShaderSource:d}},ha=(e,t)=>{let n=ac(e.inputs,t);if(e.inputs[0].dims.length===5)throw new Error(\"Packed QKV is not implemented\");if(e.inputs[1]?.dims.length===5)throw new Error(\"Packed KV is not implemented\");let r=e.inputs[0],o=e.inputs[1]&&e.inputs[1].dims.length>0?e.inputs[1]:void 0,i=e.inputs[2]&&e.inputs[2].dims.length>0?e.inputs[2]:void 0,s=e.inputs[3]&&e.inputs[3].dims.length!==0?e.inputs[3]:void 0,a=e.inputs[4]&&e.inputs[4].dims.length!==0?e.inputs[4]:void 0,u=e.inputs.length>4?e.inputs[5]:void 0,d=e.inputs.length>5?e.inputs[6]:void 0,l=n.kvNumHeads?n.kvNumHeads:n.numHeads,c=L({axis:2,numOutputs:3,splitSizes:[n.numHeads*n.headSize,l*n.headSize,l*n.headSize]}),[p,f,m]=!o&&!i?e.compute(ur([r],c),{inputs:[r],outputs:[-1,-1,-1]}):[r,o,i],h,_;if(t.doRotary){let w=e.compute(dc(n.batchSize,n.sequenceLength,u,d),{inputs:[u,d],outputs:[-1]})[0],v=e.inputs[7],$=e.inputs[8],T=L({interleaved:t.rotaryInterleaved!==0,numHeads:n.numHeads,rotaryEmbeddingDim:0,scale:t.scale}),I=[p,w,v,$],E=[-1];h=e.compute(pn(I,T),{inputs:I,outputs:E})[0],I.splice(0,1,f);let z=L({interleaved:t.rotaryInterleaved!==0,numHeads:n.kvNumHeads,rotaryEmbeddingDim:0,scale:t.scale});_=e.compute(pn(I,z),{inputs:I,outputs:E})[0]}let y=$t(e,n.batchSize,n.numHeads,n.sequenceLength,n.headSize,t.doRotary?h:p,void 0,0),g=fa(e,t.doRotary?_:f,n),b=fa(e,m,n);st(e,y,g,b,void 0,void 0,s,a,void 0,n,u,d)}});var ya,lc,cc,ba,_a=k(()=>{\"use strict\";N();H();Ne();q();ya=(e,t,n,r,o,i,s,a)=>{let u=J(i),d=u===1?\"f32\":`vec${u}f`,l=u===1?\"vec2f\":`mat2x${u}f`,c=o*s,p=64;c===1&&(p=256);let f=[o,s,i/u],m=[o,s,2],h=[\"rank\",\"type\",\"type\"],_=[];_.push(...P(f,m));let y=g=>{let b=S(\"x\",t.dataType,3,u),w=S(\"scale\",n.dataType,n.dims),v=S(\"bias\",r.dataType,r.dims),$=C(\"output\",1,3,2),T=[b,w,v,$];return`\n var<workgroup> workgroup_shared : array<${l}, ${p}>;\n const workgroup_size = ${p}u;\n ${g.declareVariables(...T)}\n ${g.mainStart(p)}\n let batch = workgroup_index / uniforms.x_shape[1];\n let channel = workgroup_index % uniforms.x_shape[1];\n let hight = uniforms.x_shape[2];\n // initialize workgroup memory\n var sum = ${d}(0);\n var squared_sum = ${d}(0);\n for (var h = local_idx; h < hight; h += workgroup_size) {\n let value = ${d}(${b.get(\"batch\",\"channel\",\"h\")});\n sum += value;\n squared_sum += value * value;\n }\n workgroup_shared[local_idx] = ${l}(sum, squared_sum);\n workgroupBarrier();\n\n for (var currSize = workgroup_size >> 1; currSize > 0; currSize = currSize >> 1) {\n if (local_idx < currSize) {\n workgroup_shared[local_idx] = workgroup_shared[local_idx] + workgroup_shared[local_idx + currSize];\n }\n workgroupBarrier();\n }\n if (local_idx == 0) {\n let sum_final = ${Ie(\"workgroup_shared[0][0]\",u)} / f32(hight * ${u});\n let squared_sum_final = ${Ie(\"workgroup_shared[0][1]\",u)} / f32(hight * ${u});\n\n let inv_std_dev = inverseSqrt(squared_sum_final - sum_final * sum_final + f32(${a}));\n let channel_scale = inv_std_dev * f32(scale[channel]);\n let channel_shift = f32(bias[channel]) - sum_final * channel_scale;\n output[workgroup_index] = vec2f(channel_scale, channel_shift);\n }\n }`};return e.compute({name:\"InstanceNormComputeChannelScaleShift\",shaderCache:{hint:`${u};${a};${p}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:m,dataType:1}],dispatchGroup:{x:c},programUniforms:_}),getShaderSource:y},{inputs:[t,n,r],outputs:[-1]})[0]},lc=(e,t,n)=>{let r=t[0].dims,o=r,i=2,s=r[0],a=r[1],u=x.sizeFromDimension(r,i),d=J(u),l=x.size(o)/d,c=ya(e,t[0],t[1],t[2],s,u,a,n.epsilon),p=[s,a,u/d],f=[s,a],m=[\"type\",\"none\"],h=_=>{let y=S(\"x\",t[0].dataType,p.length,d),g=S(\"scale_shift\",1,f.length,2),b=C(\"output\",t[0].dataType,p.length,d),w=[y,g,b];return`\n ${_.registerUniform(\"output_size\",\"u32\").declareVariables(...w)}\n ${_.mainStart()}\n ${_.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let outputIndices = ${b.offsetToIndices(\"global_idx\")};\n let batch = outputIndices[0];\n let channel = outputIndices[1];\n let scale_shift = ${g.getByIndices(\"vec2<u32>(batch, channel)\")};\n let value = ${y.getByOffset(\"global_idx\")} * ${b.type.value}(scale_shift.x) + ${b.type.value}(scale_shift.y);\n ${b.setByOffset(\"global_idx\",\"value\")};\n }`};e.compute({name:\"InstanceNormalization\",shaderCache:{hint:`${d}`,inputDependencies:m},getRunData:()=>({outputs:[{dims:o,dataType:t[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:[{type:12,data:l},...P(p,f,p)]}),getShaderSource:h},{inputs:[t[0],c]})},cc=(e,t,n)=>{let r=t[0].dims,o=r,i=r[0],s=r[r.length-1],a=x.sizeFromDimension(r,1)/s,u=J(s),d=x.size(o)/u,l=[{type:12,data:a},{type:12,data:Math.floor(s/u)}],c=[\"type\",\"type\"],p=!1,f=[0,r.length-1];for(let y=0;y<r.length-2;y++)p=p||r[y+1]!==1,f.push(y+1);p=p&&r[r.length-1]!==1;let m=p?e.compute(me(e.inputs[0],f),{inputs:[e.inputs[0]],outputs:[-1]})[0]:e.inputs[0].reshape(Array.from({length:r.length},(y,g)=>r[f[g]])),h=ya(e,m,t[1],t[2],i,a,s,n.epsilon),_=y=>{let g=re(t[0].dataType),b=u===1?\"vec2f\":`mat${u}x2f`,w=T=>{let I=T===0?\"x\":\"y\",E=u===1?\"f32\":`vec${u}f`;switch(u){case 1:return`${g}(${E}(scale.${I}))`;case 2:return`vec2<${g}>(${E}(scale[0].${I}, scale[1].${I}))`;case 4:return`vec4<${g}>(${E}(scale[0].${I}, scale[1].${I}, scale[2].${I}, scale[3].${I}))`;default:throw new Error(`Not supported compoents ${u}`)}},v=S(\"input\",t[0].dataType,t[0].dims,u),$=C(\"output\",t[0].dataType,o,u);return`\n @group(0) @binding(0) var<storage, read> input : array<${v.type.storage}>;\n @group(0) @binding(1) var<storage, read> scale_input : array<${b}>;\n @group(0) @binding(2) var<storage, read_write> output : array<${$.type.storage}>;\n struct Uniforms {H: u32, C : u32};\n @group(0) @binding(3) var<uniform> uniforms: Uniforms;\n\n ${y.mainStart()}\n let current_image_number = global_idx / (uniforms.C * uniforms.H);\n let current_channel_number = global_idx % uniforms.C;\n\n let scale_offset = current_image_number * uniforms.C + current_channel_number;\n let scale = scale_input[scale_offset];\n output[global_idx] = fma(input[global_idx], ${w(0)}, ${w(1)});\n }`};e.compute({name:\"InstanceNormalizationNHWC\",shaderCache:{hint:`${u}`,inputDependencies:c},getRunData:()=>({outputs:[{dims:o,dataType:t[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:l}),getShaderSource:_},{inputs:[t[0],h]})},ba=(e,t)=>{t.format===\"NHWC\"?cc(e,e.inputs,t):lc(e,e.inputs,t)}});var pc,mc,wa,$a=k(()=>{\"use strict\";N();H();q();pc=e=>{if(!e||e.length<2)throw new Error(\"layerNorm requires at least 2 inputs.\")},mc=(e,t,n)=>{let r=t.simplified,o=e[0].dims,i=e[1],s=!r&&e[2],a=o,u=x.normalizeAxis(t.axis,o.length),d=x.sizeToDimension(o,u),l=x.sizeFromDimension(o,u),c=x.size(i.dims),p=s?x.size(s.dims):0;if(c!==l||s&&p!==l)throw new Error(`Size of X.shape()[axis:] == ${l}.\n Size of scale and bias (if provided) must match this.\n Got scale size of ${c} and bias size of ${p}`);let f=[];for(let v=0;v<o.length;++v)v<u?f.push(o[v]):f.push(1);let m=J(l),h=[\"type\",\"type\"],_=[{type:12,data:d},{type:1,data:l},{type:12,data:Math.floor(l/m)},{type:1,data:t.epsilon}];s&&h.push(\"type\");let y=n>1,g=n>2,b=v=>{let $=re(e[0].dataType),T=[S(\"x\",e[0].dataType,e[0].dims,m),S(\"scale\",i.dataType,i.dims,m)];s&&T.push(S(\"bias\",s.dataType,s.dims,m)),T.push(C(\"output\",e[0].dataType,a,m)),y&&T.push(C(\"mean_data_output\",1,f)),g&&T.push(C(\"inv_std_output\",1,f));let I=[{name:\"norm_count\",type:\"u32\"},{name:\"norm_size\",type:\"f32\"},{name:\"norm_size_vectorized\",type:\"u32\"},{name:\"epsilon\",type:\"f32\"}];return`\n ${v.registerUniforms(I).declareVariables(...T)}\n ${v.mainStart()}\n ${v.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.norm_count\")}\n let offset = global_idx * uniforms.norm_size_vectorized;\n var mean_vector = ${qn(\"f32\",m)};\n var mean_square_vector = ${qn(\"f32\",m)};\n\n for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) {\n let value = ${et($,m,\"x[h + offset]\")};\n mean_vector += value;\n mean_square_vector += value * value;\n }\n let mean = ${Ie(\"mean_vector\",m)} / uniforms.norm_size;\n let inv_std_dev = inverseSqrt(${Ie(\"mean_square_vector\",m)} / uniforms.norm_size ${r?\"\":\"- mean * mean\"} + uniforms.epsilon);\n\n for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) {\n let f32input = ${et($,m,\"x[j + offset]\")};\n let f32scale = ${et($,m,\"scale[j]\")};\n output[j + offset] = ${T[0].type.value}((f32input ${r?\"\":\"- mean\"}) * inv_std_dev * f32scale\n ${s?`+ ${et($,m,\"bias[j]\")}`:\"\"}\n );\n }\n\n ${y?\"mean_data_output[global_idx] = mean\":\"\"};\n ${g?\"inv_std_output[global_idx] = inv_std_dev\":\"\"};\n }`},w=[{dims:a,dataType:e[0].dataType}];return y&&w.push({dims:f,dataType:1}),g&&w.push({dims:f,dataType:1}),{name:\"LayerNormalization\",shaderCache:{hint:`${m};${n};${r}`,inputDependencies:h},getRunData:()=>({outputs:w,dispatchGroup:{x:Math.ceil(d/64)},programUniforms:_}),getShaderSource:b}},wa=(e,t)=>{pc(e.inputs),e.compute(mc(e.inputs,t,e.outputCount))}});var fc,va,xa=k(()=>{\"use strict\";H();un();dn();fc=e=>{if(!e||e.length!==2)throw new Error(\"MatMul requires 2 inputs.\");if(e[0].dims[e[0].dims.length-1]!==e[1].dims[e[1].dims.length-2])throw new Error(\"shared dimension does not match.\")},va=e=>{fc(e.inputs);let t=ze.calcShape(e.inputs[0].dims,e.inputs[1].dims,!0);if(!t)throw new Error(\"Can't use matmul on the given tensors\");let n=t[t.length-1],r=e.inputs[0].dims[e.inputs[0].dims.length-1];if(n<8&&r<8)e.compute(an(e.inputs,{activation:\"\"},t));else{let o=t[t.length-2],i=x.size(e.inputs[0].dims.slice(0,-2)),s=x.size(e.inputs[1].dims.slice(0,-2));if(i!==1&&o===1&&s===1){let a=e.inputs[0].reshape([1,i,r]),u=e.inputs[1].reshape([1,r,n]),d=[1,i,n],l=[a,u];e.compute(wt(l,{activation:\"\"},t,d),{inputs:l})}else e.compute(wt(e.inputs,{activation:\"\"},t))}}});var hc,gc,yc,Sa,Ta,Ia=k(()=>{\"use strict\";N();H();ue();q();hc=(e,t)=>{if(e.length<3||e.length>4)throw new Error(\"MatMulNBits requires 3 or 4 inputs\");let n=e[0],r=n.dims.length;if(n.dims[r-1]!==t.k)throw new Error(\"The last dim of input shape does not match the k value\");let o=Math.floor((t.k+t.blockSize-1)/t.blockSize),i=t.blockSize/8*t.bits,s=e[1];if(!x.areEqual(s.dims,[t.n,o,i]))throw new Error(\"The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize\");let u=e[2].dims;if(x.size(u)!==t.n*o)throw new Error(\"scales input size error.\");if(e.length===4){let l=e[3].dims,c=t.n*(t.bits===8?o:Math.floor((o*t.bits+7)/8));if(x.size(l)!==c)throw new Error(\"zeroPoints input size error.\")}},gc=(e,t)=>{let n=e[0].dims,r=n.length,o=n[r-2],i=t.k,s=t.n,a=n.slice(0,r-2),u=x.size(a),l=e[1].dims[2]/4,c=e[0].dataType,p=J(t.k),f=J(l),m=J(s),h=a.concat([o,s]),_=o>1&&s/m%2===0?2:1,y=x.size(h)/m/_,g=64,b=[],w=[u,o,i/p],v=x.convertShape(e[1].dims).slice();v.splice(-1,1,l/f),b.push(...P(w)),b.push(...P(v)),b.push(...P(e[2].dims)),e.length===4&&b.push(...P(x.convertShape(e[3].dims)));let $=[u,o,s/m];b.push(...P($));let T=I=>{let E=w.length,z=S(\"a\",e[0].dataType,E,p),M=S(\"b\",12,v.length,f),O=S(\"scales\",e[2].dataType,e[2].dims.length),W=[z,M,O],K=e.length===4?S(\"zero_points\",12,e[3].dims.length):void 0;K&&W.push(K);let U=$.length,R=C(\"output\",e[0].dataType,U,m),G=re(e[0].dataType),V=(()=>{switch(p){case 1:return`array<${G}, 8>`;case 2:return`mat4x2<${G}>`;case 4:return`mat2x4<${G}>`;default:throw new Error(`${p}-component is not supported.`)}})(),j=Math.floor(32/t.bits),Q=Math.floor(j/8),X=()=>{let A=\"\";for(let B=0;B<Q;B++){let oe=B*t.bits*4,he=oe+t.bits;A+=`\n // reuse a data (pass ${B})\n var input_offset${B>0?B:\"\"} = ${B===0?z.indicesToOffset(`${z.type.indices}(batch, row, word_offset)`):\"input_offset\"};\n var a_data${B>0?B:\"\"}: ${V};\n for (var j${B>0?B:\"\"}: u32 = 0; j${B>0?B:\"\"} < ${8/p}; j${B>0?B:\"\"}++) {\n a_data${B>0?B:\"\"}[j${B>0?B:\"\"}] = ${z.getByOffset(`input_offset${B>0?B:\"\"}`)};\n input_offset${B>0?B:\"\"}++;\n }\n `;for(let ae=0;ae<m*_;ae++)A+=`\n b_value = ${f===1?`b${ae}_data`:`b${ae}_data[i]`};\n ${t.bits===2?`{\n let half_word = b_value >> ${B*16}u;\n let byte_lo = half_word & 0xFFu;\n let byte_hi = (half_word >> 8u) & 0xFFu;\n let spread_word = (byte_lo & 0xFu) | ((byte_lo >> 4u) << 8u) | ((byte_hi & 0xFu) << 16u) | ((byte_hi >> 4u) << 24u);\n b_value_lower = unpack4xU8(spread_word & b_mask);\n b_value_upper = unpack4xU8((spread_word >> 2u) & b_mask);\n }`:`b_value_lower = unpack4xU8((b_value >> ${oe}u) & b_mask);\n b_value_upper = unpack4xU8((b_value >> ${he}u) & b_mask);`}\n b_quantized_values = ${V}(${Array.from({length:4},(ge,ie)=>`${G}(b_value_lower[${ie}]), ${G}(b_value_upper[${ie}])`).join(\", \")});\n b_dequantized_values = ${p===1?`${V}(${Array.from({length:8},(ge,ie)=>`(b_quantized_values[${ie}] - ${K?`zero_point${ae}`:\"zero_point\"}) * scale${ae}`).join(\", \")});`:`(b_quantized_values - ${V}(${Array(8).fill(`${K?`zero_point${ae}`:\"zero_point\"}`).join(\",\")})) * scale${ae};`};\n workgroup_shared[local_id.x * ${_} + ${Math.floor(ae/m)}]${m>1?`[${ae%m}]`:\"\"} += ${Array.from({length:8/p},(ge,ie)=>`${p===1?`a_data${B>0?B:\"\"}[${ie}] * b_dequantized_values[${ie}]`:`dot(a_data${B>0?B:\"\"}[${ie}], b_dequantized_values[${ie}])`}`).join(\" + \")};\n `}return A},Te=()=>{let A=`\n var col_index = col * ${m};\n ${K?`\n let zero_point_values_per_byte: u32 = ${Math.floor(8/t.bits)}u;\n let zero_point_bytes_per_col = (nBlocksPerCol + zero_point_values_per_byte - 1u) / zero_point_values_per_byte;\n var zero_point_byte_count: u32;\n var zero_point_word_index: u32;\n var zero_point_byte_offset: u32;\n let zero_point_sub_offset: u32 = block % zero_point_values_per_byte;\n var zero_point_bits_offset: u32;\n var zero_point_word: u32;`:`\n // The default zero point is ${Math.pow(2,t.bits-1)} for unsigned ${t.bits}-bit quantization.\n let zero_point = ${G}(${Math.pow(2,t.bits-1).toFixed(1)});`}\n `;for(let B=0;B<m*_;B++)A+=`\n let scale${B} = ${O.getByOffset(\"col_index * nBlocksPerCol + block\")};\n ${K?`\n zero_point_byte_count = col_index * zero_point_bytes_per_col + (block / zero_point_values_per_byte);\n zero_point_word_index = zero_point_byte_count >> 0x2u;\n zero_point_byte_offset = zero_point_byte_count & 0x3u;\n zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_sub_offset * ${t.bits}u);\n zero_point_word = ${K.getByOffset(\"zero_point_word_index\")} >> zero_point_bits_offset;\n let zero_point${B} = ${G}((zero_point_word) & ${t.bits===2?\"0x3u\":\"0xFu\"});`:\"\"}\n col_index += 1;`;return A},se=()=>{let A=`col_index = col * ${m};`;for(let B=0;B<m*_;B++)A+=`\n let b${B}_data = ${M.getByIndices(`${M.type.indices}(col_index, block, word)`)};\n col_index += 1;`;return A+=`\n var b_value: u32;\n let b_mask: u32 = ${t.bits===2?\"0x03030303u\":\"0x0F0F0F0Fu\"};\n var b_value_lower: vec4<u32>;\n var b_value_upper: vec4<u32>;\n var b_quantized_values: ${V};\n var b_dequantized_values: ${V};`,A};return`\n var<workgroup> workgroup_shared: array<${R.type.value}, ${_*g}>;\n ${I.declareVariables(...W,R)}\n ${I.mainStart([g,1,1])}\n let output_indices = ${R.offsetToIndices(`(global_idx / ${g}) * ${_}`)};\n let col = output_indices[2];\n let row = output_indices[1];\n let batch = output_indices[0];\n let nBlocksPerCol = uniforms.b_shape[1];\n\n for (var block = local_id.x; block < nBlocksPerCol; block += ${g}) {\n //process one block\n var word_offset: u32 = block * ${t.blockSize/p};\n ${Te()}\n for (var word: u32 = 0; word < ${l}; word += ${f}) {\n ${se()}\n for (var i: u32 = 0; i < ${f}; i++) {\n ${X()}\n word_offset += ${j/p};\n }\n }\n }\n workgroupBarrier();\n\n if (local_id.x < ${_}) {\n var output_value: ${R.type.value} = ${R.type.value}(0);\n var workgroup_shared_offset: u32 = local_id.x;\n for (var b: u32 = 0u; b < ${g}u; b++) {\n output_value += workgroup_shared[workgroup_shared_offset];\n workgroup_shared_offset += ${_};\n }\n ${R.setByIndices(`${R.type.indices}(batch, row, col + local_id.x)`,\"output_value\")};\n }\n }`};return{name:\"MatMulNBits\",shaderCache:{hint:`${t.blockSize};${t.bits};${p};${f};${m};${_};${g}`,inputDependencies:Array(e.length).fill(\"rank\")},getRunData:()=>({outputs:[{dims:h,dataType:c}],dispatchGroup:{x:y},programUniforms:b}),getShaderSource:T}},yc=(e,t)=>{let n=e[0].dims,r=n.length,o=n[r-2],i=t.k,s=t.n,a=n.slice(0,r-2),u=x.size(a),l=e[1].dims[2]/4,c=e[0].dataType,p=J(t.k),f=J(l),m=a.concat([o,s]),h=128,_=s%8===0?8:s%4===0?4:1,y=h/_,g=Math.floor(32/t.bits),b=y*f*g,w=b/p,v=b/t.blockSize,$=x.size(m)/_,T=[],I=[u,o,i/p],E=x.convertShape(e[1].dims).slice();E.splice(-1,1,l/f),T.push(...P(I)),T.push(...P(E)),T.push(...P(e[2].dims)),e.length===4&&T.push(...P(x.convertShape(e[3].dims)));let z=[u,o,s];T.push(...P(z));let M=O=>{let W=I.length,K=S(\"a\",e[0].dataType,W,p),U=S(\"b\",12,E.length,f),R=S(\"scales\",e[2].dataType,e[2].dims.length),G=[K,U,R],V=e.length===4?S(\"zero_points\",12,e[3].dims.length):void 0;V&&G.push(V);let j=z.length,Q=C(\"output\",e[0].dataType,j),X=re(e[0].dataType),Te=()=>{switch(p){case 1:return`\n let a_data0 = vec4<${X}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]);\n let a_data1 = vec4<${X}>(sub_a[word_offset + 4], sub_a[word_offset + 5], sub_a[word_offset + 6], sub_a[word_offset + 7]);`;case 2:return`\n let a_data0 = vec4<${X}>(sub_a[word_offset], sub_a[word_offset + 1]);\n let a_data1 = vec4<${X}>(sub_a[word_offset + 2], sub_a[word_offset + 3]);`;case 4:return`\n let a_data0 = sub_a[word_offset];\n let a_data1 = sub_a[word_offset + 1];`;default:throw new Error(`${p}-component is not supported.`)}};return`\n var<workgroup> sub_a: array<${K.type.value}, ${w}>;\n var<workgroup> inter_results: array<array<${Q.type.value}, ${y}>, ${_}>;\n ${O.declareVariables(...G,Q)}\n ${O.mainStart([y,_,1])}\n let output_indices = ${Q.offsetToIndices(`workgroup_index * ${_}`)};\n let col = output_indices[2];\n let row = output_indices[1];\n let batch = output_indices[0];\n let n_blocks_per_col = uniforms.b_shape[1];\n let num_tiles = (n_blocks_per_col - 1) / ${v} + 1;\n\n // Loop over shared dimension.\n for (var tile: u32 = 0; tile < num_tiles; tile += 1) {\n let a_col_start = tile * ${w};\n // load one tile A data into shared memory.\n for (var a_offset = local_idx; a_offset < ${w}; a_offset += ${h})\n {\n let a_col = a_col_start + a_offset;\n if (a_col < uniforms.a_shape[2])\n {\n sub_a[a_offset] = ${K.getByIndices(`${K.type.indices}(batch, row, a_col)`)};\n } else {\n sub_a[a_offset] = ${K.type.value}(0);\n }\n }\n workgroupBarrier();\n\n // each thread process one block\n let b_row = col + local_id.y;\n let block = tile * ${v} + local_id.x;\n ${V?`\n let zero_point_values_per_byte: u32 = ${Math.floor(8/t.bits)}u;\n let zero_point_bytes_per_col = (n_blocks_per_col + zero_point_values_per_byte - 1u) / zero_point_values_per_byte;\n let zero_point_byte_count = b_row * zero_point_bytes_per_col + (block / zero_point_values_per_byte);\n let zero_point_word_index = zero_point_byte_count >> 0x2u;\n let zero_point_byte_offset = zero_point_byte_count & 0x3u;\n let zero_point_sub_offset: u32 = block % zero_point_values_per_byte;\n let zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_sub_offset * ${t.bits}u);\n let zero_point_word = ${V.getByOffset(\"zero_point_word_index\")} >> zero_point_bits_offset;\n let zero_point = ${X}((zero_point_word) & ${t.bits===2?\"0x3u\":\"0xFu\"});`:`\n // The default zero point is ${Math.pow(2,t.bits-1)} for unsigned ${t.bits}-bit quantization.\n let zero_point = ${X}(${Math.pow(2,t.bits-1).toFixed(1)});`}\n let scale = ${R.getByOffset(\"b_row * n_blocks_per_col + block\")};\n let b_data = ${U.getByIndices(`${U.type.indices}(b_row, block, 0)`)};\n var word_offset = local_id.x * ${t.blockSize/p};\n for (var i: u32 = 0; i < ${f}; i++) {\n let b_value = ${f===1?\"b_data\":\"b_data[i]\"};\n ${(()=>{let se=Math.floor(g/8),A=\"\";for(let B=0;B<se;B++){let oe=B*t.bits*4,he=oe+t.bits;A+=`\n ${Te()}\n {${t.bits===2?`\n let half_word = b_value >> ${B*16}u;\n let byte_lo = half_word & 0xFFu;\n let byte_hi = (half_word >> 8u) & 0xFFu;\n let spread_word = (byte_lo & 0xFu) | ((byte_lo >> 4u) << 8u) | ((byte_hi & 0xFu) << 16u) | ((byte_hi >> 4u) << 24u);\n let b_value_lower = unpack4xU8(spread_word & 0x03030303u);\n let b_value_upper = unpack4xU8((spread_word >> 2u) & 0x03030303u);`:`\n let b_value_lower = unpack4xU8((b_value >> ${oe}u) & 0x0F0F0F0Fu);\n let b_value_upper = unpack4xU8((b_value >> ${he}u) & 0x0F0F0F0Fu);`}\n let b_quantized_values = mat2x4<${X}>(${Array.from({length:4},(ae,ge)=>`${X}(b_value_lower[${ge}]), ${X}(b_value_upper[${ge}])`).join(\", \")});\n let b_dequantized_values = (b_quantized_values - mat2x4<${X}>(${Array(8).fill(\"zero_point\").join(\",\")})) * scale;\n inter_results[local_id.y][local_id.x] += ${Array.from({length:2},(ae,ge)=>`${`dot(a_data${ge}, b_dequantized_values[${ge}])`}`).join(\" + \")};\n }\n word_offset += ${8/p};`}return A})()}\n }\n workgroupBarrier();\n }\n\n if (local_idx < ${_}) {\n var output_value: ${Q.type.value} = ${Q.type.value}(0);\n for (var b = 0u; b < ${y}; b++) {\n output_value += inter_results[local_idx][b];\n }\n if (col + local_idx < uniforms.output_shape[2])\n {\n ${Q.setByIndices(`${Q.type.indices}(batch, row, col + local_idx)`,\"output_value\")}\n }\n }\n }`};return{name:\"BlockwiseMatMulNBits32\",shaderCache:{hint:`${t.blockSize};${p};${f};${y};${_}`,inputDependencies:Array(e.length).fill(\"rank\")},getRunData:()=>({outputs:[{dims:m,dataType:c}],dispatchGroup:{x:$},programUniforms:T}),getShaderSource:M}},Sa=(e,t)=>{hc(e.inputs,t),t.blockSize===32&&e.adapterInfo.isVendor(\"intel\")&&e.adapterInfo.isArchitecture(\"gen-12lp\")?e.compute(yc(e.inputs,t)):e.compute(gc(e.inputs,t))},Ta=e=>L(e)});var bc,_c,wc,$c,vc,xc,Sc,Tc,Ca,Aa=k(()=>{\"use strict\";N();H();q();bc=e=>{if(!e||e.length<1)throw new Error(\"Too few inputs\");if(e[0].dataType!==1&&e[0].dataType!==10)throw new Error(\"Input type must be float or float16.\");if(e.length>=2){let t=e[0].dims.length*2===e[1].dims[0];if(e.length===4&&(t=e[3].dims[0]*2===e[1].dims[0]),!t)throw new Error(\"The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].\")}},_c=(e,t,n)=>{let r=\"\";for(let o=t-1;o>=0;--o)r+=`\n k = i32(${e.indicesGet(\"indices\",o)}) - ${D(\"uniforms.pads\",o,n)};\n if (k < 0) {\n break;\n }\n if (k >= i32(${D(\"uniforms.x_shape\",o,t)})) {\n break;\n }\n offset += k * i32(${D(\"uniforms.x_strides\",o,t)});\n `;return`\n value = ${e.type.value}(uniforms.constant_value);\n for (var i = 0; i < 1; i++) {\n var offset = 0;\n var k = 0;\n ${r}\n value = x[offset];\n }\n `},wc=(e,t,n)=>{let r=\"\";for(let o=t-1;o>=0;--o)r+=`\n k = i32(${e.indicesGet(\"indices\",o)}) - ${D(\"uniforms.pads\",o,n)};\n if (k < 0) {\n k = -k;\n }\n {\n let _2n_1 = 2 * (i32(${D(\"uniforms.x_shape\",o,t)}) - 1);\n k = k % _2n_1;\n if(k >= i32(${D(\"uniforms.x_shape\",o,t)})) {\n k = _2n_1 - k;\n }\n }\n offset += k * i32(${D(\"uniforms.x_strides\",o,t)});\n `;return`\n var offset = 0;\n var k = 0;\n ${r}\n value = x[offset];\n `},$c=(e,t,n)=>{let r=\"\";for(let o=t-1;o>=0;--o)r+=`\n k = i32(${e.indicesGet(\"indices\",o)}) - ${D(\"uniforms.pads\",o,n)};\n if (k < 0) {\n k = 0;\n }\n if (k >= i32(${D(\"uniforms.x_shape\",o,t)})) {\n k = i32(${D(\"uniforms.x_shape\",o,t)}) - 1;\n }\n offset += k * i32(${D(\"uniforms.x_strides\",o,t)});\n `;return`\n var offset = 0;\n var k = 0;\n ${r}\n value = x[offset];\n `},vc=(e,t,n)=>{let r=\"\";for(let o=t-1;o>=0;--o)r+=`\n k = i32(${e.indicesGet(\"indices\",o)}) - ${D(\"uniforms.pads\",o,n)};\n if (k < 0) {\n k += i32(${D(\"uniforms.x_shape\",o,t)}]);\n }\n if (k >= i32(${D(\"uniforms.x_shape\",o,t)})) {\n k -= i32(${D(\"uniforms.x_shape\",o,t)});\n }\n offset += k * i32(${D(\"uniforms.x_strides\",o,t)});\n `;return`\n var offset = 0;\n var k = 0;\n ${r}\n value = x[offset];\n `},xc=(e,t,n)=>{switch(n.mode){case 0:return _c(e,t,n.pads.length);case 1:return wc(e,t,n.pads.length);case 2:return $c(e,t,n.pads.length);case 3:return vc(e,t,n.pads.length);default:throw new Error(\"Invalid mode\")}},Sc=(e,t)=>{let n=x.padShape(e[0].dims.slice(),t.pads),r=e[0].dims,o=x.size(n),i=[{type:12,data:o},{type:6,data:t.pads}],s=e.length>=3&&e[2].data;t.mode===0&&i.push({type:s?e[2].dataType:1,data:t.value}),i.push(...P(e[0].dims,n));let a=[\"rank\"],u=d=>{let l=C(\"output\",e[0].dataType,n.length),c=S(\"x\",e[0].dataType,r.length),p=c.type.value,f=xc(l,r.length,t),m=[{name:\"output_size\",type:\"u32\"},{name:\"pads\",type:\"i32\",length:t.pads.length}];return t.mode===0&&m.push({name:\"constant_value\",type:s?p:\"f32\"}),`\n ${d.registerUniforms(m).declareVariables(c,l)}\n ${d.mainStart()}\n ${d.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n\n let indices = ${l.offsetToIndices(\"global_idx\")};\n\n var value = ${p}(0);\n ${f}\n output[global_idx] = value;\n }`};return{name:\"Pad\",shaderCache:{hint:`${t.mode}${s}`,inputDependencies:a},getRunData:()=>({outputs:[{dims:n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(x.size(n)/64)},programUniforms:i}),getShaderSource:u}},Tc=(e,t)=>{if(e.length>1){let n=e[1].getBigInt64Array(),r=e.length>=3&&e[2].data?e[2].dataType===10?e[2].getUint16Array()[0]:e[2].getFloat32Array()[0]:0,o=e[0].dims.length,i=new Int32Array(2*o).fill(0);if(e.length>=4){let a=e[3].getBigInt64Array();for(let u=0;u<a.length;u++)i[Number(a[u])]=Number(n[u]),i[Number(a[u])+o]=Number(n[u+a.length])}else n.forEach((a,u)=>i[Number(u)]=Number(a));let s=[];return i.forEach(a=>s.push(a)),{mode:t.mode,value:r,pads:s}}else return t},Ca=(e,t)=>{bc(e.inputs);let n=Tc(e.inputs,t);e.compute(Sc(e.inputs,n),{inputs:[0]})}});var mn,Ea,ka,Pa,za,Ic,Cc,Ba,Da,Oa,Ma,Ua,Ra,Va,Na,La,Wa,Ga,Ha,Fa=k(()=>{\"use strict\";we();N();H();q();mn=e=>{if(te.webgpu.validateInputContent&&(!e||e.length!==1))throw new Error(\"Pool ops requires 1 input.\")},Ea=(e,t,n)=>{let r=t.format===\"NHWC\",o=e.dims.slice();r&&o.splice(1,0,o.pop());let i=Object.hasOwnProperty.call(t,\"dilations\"),s=t.kernelShape.slice(),a=t.strides.slice(),u=i?t.dilations.slice():[],d=t.pads.slice();Ye.adjustPoolAttributes(n,o,s,a,u,d);let l=Ye.computePoolOutputShape(n,o,a,u,s,d,t.autoPad),c=Object.assign({},t);i?Object.assign(c,{kernelShape:s,strides:a,pads:d,dilations:u,cacheKey:t.cacheKey}):Object.assign(c,{kernelShape:s,strides:a,pads:d,cacheKey:t.cacheKey});let p=l.slice();return p.push(p.splice(1,1)[0]),[c,r?p:l]},ka=(e,t)=>{let n=t.format===\"NHWC\",r=x.size(e),o=x.size(t.kernelShape),i=[{type:12,data:r},{type:12,data:o}],s=[{name:\"outputSize\",type:\"u32\"},{name:\"kernelSize\",type:\"u32\"}];if(t.kernelShape.length<=2){let a=t.kernelShape[t.kernelShape.length-1],u=t.strides[t.strides.length-1],d=t.pads[t.pads.length/2-1],l=t.pads[t.pads.length-1],c=!!(d+l);i.push({type:12,data:a},{type:12,data:u},{type:12,data:d},{type:12,data:l}),s.push({name:\"kw\",type:\"u32\"},{name:\"sw\",type:\"u32\"},{name:\"pwStart\",type:\"u32\"},{name:\"pwEnd\",type:\"u32\"});let p=!1;if(t.kernelShape.length===2){let f=t.kernelShape[t.kernelShape.length-2],m=t.strides[t.strides.length-2],h=t.pads[t.pads.length/2-2],_=t.pads[t.pads.length-2];p=!!(h+_),i.push({type:12,data:f},{type:12,data:m},{type:12,data:h},{type:12,data:_}),s.push({name:\"kh\",type:\"u32\"},{name:\"sh\",type:\"u32\"},{name:\"phStart\",type:\"u32\"},{name:\"phEnd\",type:\"u32\"})}return[i,s,!0,c,p]}else{if(n)throw new Error(\"Pooling with kernelShape.length > 2 is not supported for NHWC format.\");let a=x.computeStrides(t.kernelShape);i.push({type:12,data:a},{type:12,data:t.pads},{type:12,data:t.strides}),s.push({name:\"kernelStrides\",type:\"u32\",length:a.length},{name:\"pads\",type:\"u32\",length:t.pads.length},{name:\"strides\",type:\"u32\",length:t.strides.length});let u=t.pads.reduce((d,l)=>d+l);return[i,s,!!u,!1,!1]}},Pa=(e,t,n,r,o,i,s,a,u,d,l,c)=>{let p=o.format===\"NHWC\",f=t.type.value,m=C(\"output\",t.type.tensor,r);if(o.kernelShape.length<=2){let h=\"\",_=\"\",y=\"\",g=n-(p?2:1);if(l?h=`\n for (var i: u32 = 0u; i < uniforms.kw; i++) {\n xIndices[${g}] = indices[${g}] * uniforms.sw - uniforms.pwStart + i;\n if (xIndices[${g}] < 0 || xIndices[${g}]\n >= uniforms.x_shape[${g}]) {\n pad++;\n continue;\n }\n let x_val = x[${t.indicesToOffset(\"xIndices\")}];\n ${i}\n }`:h=`\n for (var i: u32 = 0u; i < uniforms.kw; i++) {\n xIndices[${g}] = indices[${g}] * uniforms.sw - uniforms.pwStart + i;\n let x_val = x[${t.indicesToOffset(\"xIndices\")}];\n ${i}\n }`,o.kernelShape.length===2){let w=n-(p?3:2);c?_=`\n for (var j: u32 = 0u; j < uniforms.kh; j++) {\n xIndices[${w}] = indices[${w}] * uniforms.sh - uniforms.phStart + j;\n if (xIndices[${w}] < 0 || xIndices[${w}] >= uniforms.x_shape[${w}]) {\n pad += i32(uniforms.kw);\n continue;\n }\n `:_=`\n for (var j: u32 = 0u; j < uniforms.kh; j++) {\n xIndices[${w}] = indices[${w}] * uniforms.sh - uniforms.phStart + j;\n `,y=`\n }\n `}return`\n ${e.registerUniforms(u).declareVariables(t,m)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n\n let indices = ${m.offsetToIndices(\"global_idx\")};\n var xIndices = ${m.offsetToIndices(\"global_idx\")};\n\n var value = ${f}(${a});\n var pad = 0;\n ${_}\n ${h}\n ${y}\n ${s}\n\n output[global_idx] = value;\n }`}else{if(p)throw new Error(\"Pooling with kernelShape.length > 2 is not supported for NHWC format.\");let h=o.kernelShape.length,_=o.pads.length,y=\"\";return d?y=`\n if (xIndices[j] >= uniforms.x_shape[j]) {\n pad++;\n isPad = true;\n break;\n }\n }\n if (!isPad) {\n let x_val = x[${t.indicesToOffset(\"xIndices\")}];\n ${i}\n }`:y=`\n }\n let x_val = x[${t.indicesToOffset(\"xIndices\")}];\n ${i}\n `,`\n ${e.registerUniforms(u).declareVariables(t,m)}\n\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n let indices = ${m.offsetToIndices(\"global_idx\")};\n var xIndices = ${m.offsetToIndices(\"global_idx\")};\n\n var offsets: array<u32, ${h}>;\n\n var value = ${f}(${a});\n var pad = 0;\n var isPad = false;\n\n for (var i: u32 = 0u; i < uniforms.kernelSize; i++) {\n var offset = i;\n for (var j = 0u; j < ${h-1}u; j++) {\n offsets[j] = offset / ${D(\"uniforms.kernelStrides\",\"j\",h)};\n offset -= offsets[j] * ${D(\"uniforms.kernelStrides\",\"j\",h)};\n }\n offsets[${h-1}] = offset;\n\n isPad = false;\n for (var j = ${n-h}u; j < ${n}u; j++) {\n xIndices[j] = indices[j] * ${D(\"uniforms.strides\",`j - ${n-h}u`,h)}\n + offsets[j - ${n-h}u] - ${D(\"uniforms.pads\",\"j - 2u\",_)};\n ${y}\n }\n ${s}\n\n output[global_idx] = value;\n }`}},za=e=>`${e.format};${e.ceilMode};${e.autoPad};${e.kernelShape.length}`,Ic=e=>`${za(e)};${e.countIncludePad}`,Cc=e=>`${za(e)};${e.storageOrder};${e.dilations}`,Ba=e=>({format:e.format,autoPad:[\"NOTSET\",\"VALID\",\"SAME_UPPER\",\"SAME_LOWER\"][e.auto_pad],ceilMode:e.ceil_mode,kernelShape:e.kernel_shape,strides:e.strides,pads:e.pads}),Da=(e,t,n,r)=>{let[o,i]=Ea(t,r,n),s=S(\"x\",t.dataType,t.dims.length),a=s.type.value,u=\"value += x_val;\",d=\"\";o.countIncludePad?d+=`value /= ${a}(uniforms.kernelSize);`:d+=`value /= ${a}(i32(uniforms.kernelSize) - pad);`;let[l,c,p,f,m]=ka(i,o);l.push(...P(t.dims,i));let h=[\"rank\"];return{name:e,shaderCache:{hint:`${r.cacheKey};${p};${f};${m}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:i,dataType:t.dataType}],dispatchGroup:{x:Math.ceil(x.size(i)/64)},programUniforms:l}),getShaderSource:_=>Pa(_,s,t.dims.length,i.length,o,u,d,0,c,p,f,m)}},Oa=e=>{let t=e.count_include_pad!==0,n=Ba(e);if(n.ceilMode!==0)throw new Error(\"using ceil() in shape computation is not yet supported for AveragePool\");let r={countIncludePad:t,...n,cacheKey:\"\"};return{...r,cacheKey:Ic(r)}},Ma=(e,t)=>{mn(e.inputs),e.compute(Da(\"AveragePool\",e.inputs[0],!1,t))},Ua={autoPad:\"\",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},Ra=e=>{let t=e.format;return{format:t,...Ua,cacheKey:t}},Va=(e,t)=>{mn(e.inputs),e.compute(Da(\"GlobalAveragePool\",e.inputs[0],!0,t))},Na=(e,t,n,r)=>{let[o,i]=Ea(t,r,n),s=`\n value = max(x_val, value);\n `,a=\"\",u=S(\"x\",t.dataType,t.dims.length),d=[\"rank\"],[l,c,p,f,m]=ka(i,o);return l.push(...P(t.dims,i)),{name:e,shaderCache:{hint:`${r.cacheKey};${p};${f};${m}`,inputDependencies:d},getRunData:()=>({outputs:[{dims:i,dataType:t.dataType}],dispatchGroup:{x:Math.ceil(x.size(i)/64)},programUniforms:l}),getShaderSource:h=>Pa(h,u,t.dims.length,i.length,o,s,a,t.dataType===10?-65504:-1e5,c,p,f,m)}},La=(e,t)=>{mn(e.inputs),e.compute(Na(\"MaxPool\",e.inputs[0],!1,t))},Wa=e=>{let t=e.storage_order,n=e.dilations,r=Ba(e);if(t!==0)throw new Error(\"column major storage order is not yet supported for MaxPool\");if(r.ceilMode!==0)throw new Error(\"using ceil() in shape computation is not yet supported for MaxPool\");let o={storageOrder:t,dilations:n,...r,cacheKey:\"\"};return{...o,cacheKey:Cc(o)}},Ga=e=>{let t=e.format;return{format:t,...Ua,cacheKey:t}},Ha=(e,t)=>{mn(e.inputs),e.compute(Na(\"GlobalMaxPool\",e.inputs[0],!0,t))}});var Ec,kc,qa,Ka,ja=k(()=>{\"use strict\";N();H();ue();q();Ec=(e,t)=>{if(e.length<2||e.length>3)throw new Error(\"DequantizeLinear requires 2 or 3 inputs.\");if(e.length===3&&e[1].dims===e[2].dims)throw new Error(\"x-scale and x-zero-point must have the same shape.\");if(e.length===3&&e[0].dataType!==e[2].dataType)throw new Error(\"x and x-zero-point must have the same data type.\");if(e[1].dims.length!==0&&e[1].dims.length!==1&&e[1].dims.length!==e[0].dims.length)throw new Error(\"scale input must be a scalar, a 1D tensor, or have the same rank as the input tensor.\");if(e.length>2){if(e[0].dataType!==e[2].dataType)throw new Error(\"x and x-zero-point must have the same data type.\");if(e[1].dims.length!==e[2].dims.length)throw new Error(\"scale and zero-point inputs must have the same rank.\");if(!e[1].dims.map((n,r)=>n===e[2].dims[r]).reduce((n,r)=>n&&r,!0))throw new Error(\"scale and zero-point inputs must have the same shape.\")}if(t.blockSize>0){if(e[1].dims.length===0||e[1].dims.length===1&&e[1].dims[0]===1)throw new Error(\"blockSize must be set only for block quantization.\");if(!e[1].dims.map((o,i)=>i===t.axis||o===e[0].dims[i]).reduce((o,i)=>o&&i,!0))throw new Error(\"For block qunatization, scale input shape to match the input shape except for the axis\");if(e[1].dims.length!==e[0].dims.length)throw new Error(\"For block qunatization the scale input rank must be the same as the x rank.\");let n=e[0].dims[t.axis],r=e[1].dims[t.axis];if(t.blockSize<Math.ceil(n/r)||t.blockSize>Math.ceil(n/(r-1)-1))throw new Error(\"blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].\")}},kc=(e,t)=>{let n=x.normalizeAxis(t.axis,e[0].dims.length),r=e[0].dataType,o=r===3,i=e[0].dims,s=e[1].dataType,a=x.size(i),u=r===3||r===2,d=u?[Math.ceil(x.size(e[0].dims)/4)]:e[0].dims,l=e[1].dims,c=e.length>2?e[2]:void 0,p=c?u?[Math.ceil(x.size(c.dims)/4)]:c.dims:void 0,f=l.length===0||l.length===1&&l[0]===1,m=f===!1&&l.length===1,h=J(a),_=f&&(!u||h===4),y=_?h:1,g=_&&!u?h:1,b=S(\"input\",u?12:r,d.length,g),w=S(\"scale\",s,l.length),v=c?S(\"zero_point\",u?12:r,p.length):void 0,$=C(\"output\",s,i.length,y),T=[b,w];v&&T.push(v);let I=[d,l];c&&I.push(p);let E=[{type:12,data:a/y},{type:12,data:n},{type:12,data:t.blockSize},...P(...I,i)],z=M=>{let O=[{name:\"output_size\",type:\"u32\"},{name:\"axis\",type:\"u32\"},{name:\"block_size\",type:\"u32\"}];return`\n ${M.registerUniforms(O).declareVariables(...T,$)}\n ${M.mainStart()}\n ${M.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let output_indices = ${$.offsetToIndices(\"global_idx\")};\n\n // Set input x\n ${u?`\n let input = ${b.getByOffset(\"global_idx / 4\")};\n let x_vec = ${o?\"unpack4xI8(input)\":\"unpack4xU8(input)\"};\n let x_value = ${y===1?\"x_vec[global_idx % 4]\":\"x_vec\"};`:`let x_value = ${b.getByOffset(\"global_idx\")};`};\n\n // Set scale input\n ${f?`let scale_value= ${w.getByOffset(\"0\")}`:m?`\n let scale_index = ${$.indicesGet(\"output_indices\",\"uniforms.axis\")};\n let scale_value= ${w.getByOffset(\"scale_index\")};`:`\n var scale_indices: ${w.type.indices} = output_indices;\n let index = ${w.indicesGet(\"scale_indices\",\"uniforms.axis\")} / uniforms.block_size;\n ${w.indicesSet(\"scale_indices\",\"uniforms.axis\",\"index\")};\n let scale_value= ${w.getByIndices(\"scale_indices\")};`};\n\n // Set zero-point input\n ${v?f?u?`\n let zero_point_input = ${v.getByOffset(\"0\")};\n let zero_point_vec = ${o?\"unpack4xI8(zero_point_input)\":\"unpack4xU8(zero_point_input)\"};\n let zero_point_value= zero_point_vec[0]`:`let zero_point_value = ${v.getByOffset(\"0\")}`:m?u?`\n let zero_point_index = ${$.indicesGet(\"output_indices\",\"uniforms.axis\")};\n let zero_point_input = ${v.getByOffset(\"zero_point_index / 4\")};\n let zero_point_vec = ${o?\"unpack4xI8(zero_point_input)\":\"unpack4xU8(zero_point_input)\"};\n let zero_point_value = zero_point_vec[zero_point_index % 4]`:`\n let zero_point_index = ${$.indicesGet(\"output_indices\",\"uniforms.axis\")};\n let zero_point_value = ${v.getByOffset(\"zero_point_index\")};`:u?`\n let zero_point_offset = ${w.indicesToOffset(\"scale_indices\")};\n let zero_point_input = ${v.getByOffset(\"zero_point_offset / 4\")};\n let zero_point_vec = ${o?\"unpack4xI8(zero_point_input)\":\"unpack4xU8(zero_point_input)\"};\n let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${v.getByIndices(\"scale_indices\")};`:`let zero_point_value = ${u?o?\"i32\":\"u32\":b.type.value}(0);`};\n // Compute and write output\n ${$.setByOffset(\"global_idx\",`${$.type.value}(x_value - zero_point_value) * scale_value`)};\n }`};return{name:\"DequantizeLinear\",shaderCache:{hint:t.cacheKey,inputDependencies:v?[\"rank\",\"rank\",\"rank\"]:[\"rank\",\"rank\"]},getShaderSource:z,getRunData:()=>({outputs:[{dims:i,dataType:s}],dispatchGroup:{x:Math.ceil(a/y/64),y:1,z:1},programUniforms:E})}},qa=(e,t)=>{Ec(e.inputs,t),e.compute(kc(e.inputs,t))},Ka=e=>L({axis:e.axis,blockSize:e.blockSize})});var Pc,zc,Za,Qa=k(()=>{\"use strict\";we();N();q();Pc=(e,t,n)=>{let r=e===t,o=e<t&&n<0,i=e>t&&n>0;if(r||o||i)throw new Error(\"Range these inputs' contents are invalid.\")},zc=(e,t,n,r)=>{let o=Math.abs(Math.ceil((t-e)/n)),i=[o],s=o,a=[{type:12,data:s},{type:r,data:e},{type:r,data:n},...P(i)],u=d=>{let l=C(\"output\",r,i.length),c=l.type.value,p=[{name:\"outputSize\",type:\"u32\"},{name:\"start\",type:c},{name:\"delta\",type:c}];return`\n ${d.registerUniforms(p).declareVariables(l)}\n ${d.mainStart()}\n ${d.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n output[global_idx] = uniforms.start + ${c}(global_idx) * uniforms.delta;\n }`};return{name:\"Range\",shaderCache:{hint:`${r}`},getShaderSource:u,getRunData:()=>({outputs:[{dims:i,dataType:r}],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:a})}},Za=e=>{let t=0,n=0,r=0;e.inputs[0].dataType===6?(t=e.inputs[0].getInt32Array()[0],n=e.inputs[1].getInt32Array()[0],r=e.inputs[2].getInt32Array()[0]):e.inputs[0].dataType===1&&(t=e.inputs[0].getFloat32Array()[0],n=e.inputs[1].getFloat32Array()[0],r=e.inputs[2].getFloat32Array()[0]),te.webgpu.validateInputContent&&Pc(t,n,r),e.compute(zc(t,n,r,e.inputs[0].dataType),{inputs:[]})}});var Bc,Dc,Xa,Ya,Ja=k(()=>{\"use strict\";N();H();ue();q();Bc=(e,t,n,r)=>{if(e!==\"none\"&&r!==\"i32\"&&r!==\"u32\"&&r!==\"f32\")throw new Error(`Input ${r} is not supported with reduction ${e}.`);let o=`{\n var oldValue = 0;\n loop {\n let newValueF32 =`,i=`;\n let newValue = bitcast<i32>(newValueF32);\n let res = atomicCompareExchangeWeak(&${t}, oldValue, newValue);\n if res.exchanged {\n break;\n }\n oldValue = res.old_value;\n }\n }`;switch(e){case\"none\":return`${t}=${n};`;case\"add\":return r===\"i32\"||r===\"u32\"?`atomicAdd(&${t}, bitcast<${r}>(${n}));`:`\n ${o}bitcast<${r}>(oldValue) + (${n})${i}`;case\"max\":return r===\"i32\"||r===\"u32\"?`atomicMax(&${t}, bitcast<${r}>(${n}));`:`\n ${o}max(bitcast<f32>(oldValue), (${n}))${i}`;case\"min\":return r===\"i32\"||r===\"u32\"?`atomicMin(&${t}, bitcast<${r}>(${n}));`:`${o}min(bitcast<${r}>(oldValue), (${n}))${i}`;case\"mul\":return`${o}(bitcast<${r}>(oldValue) * (${n}))${i}`;default:throw new Error(`Reduction ${e} is not supported.`)}},Dc=(e,t)=>{let n=e[0].dims,r=e[1].dims,o=n,i=1,s=Math.ceil(x.sizeToDimension(r,r.length-1)/i),a=r[r.length-1],u=x.sizeFromDimension(n,a),d=[{type:12,data:s},{type:12,data:a},{type:12,data:u},...P(e[1].dims,e[2].dims,o)],l=c=>{let p=S(\"indices\",e[1].dataType,e[1].dims.length),f=S(\"updates\",e[2].dataType,e[2].dims.length,i),m=t.reduction!==\"none\"&&t.reduction!==\"\"?To(\"output\",e[0].dataType,o.length):C(\"output\",e[0].dataType,o.length,i);return`\n ${c.registerUniform(\"output_size\",\"u32\").registerUniform(\"last_index_dimension\",\"u32\").registerUniform(\"num_updates_elements\",\"u32\").declareVariables(p,f,m)}\n ${c.mainStart()}\n ${c.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n var data_offset = 0u;\n let indices_start = uniforms.last_index_dimension * global_idx;\n let indices_end = indices_start + uniforms.last_index_dimension;\n for (var i = indices_start; i < indices_end; i++) {\n var index = i32(indices[i].x);\n ${e[0].dims.length===1?`\n let element_count_dim = uniforms.output_strides;\n let dim_value = uniforms.output_shape;`:`\n let element_count_dim = uniforms.output_strides[i - indices_start];\n let dim_value = uniforms.output_shape[i - indices_start];`}\n if (index >= 0) {\n if (index >= i32(dim_value)) {\n index = i32(dim_value - 1);\n }\n } else {\n if (index < -i32(dim_value)) {\n index = 0;\n } else {\n index += i32(dim_value);\n }\n }\n data_offset += u32((u32(index) * element_count_dim));\n }\n\n for (var i = 0u; i < uniforms.num_updates_elements; i++) {\n let value = updates[uniforms.num_updates_elements * global_idx + i];\n ${Bc(t.reduction,\"output[data_offset + i]\",\"value\",m.type.value)}\n }\n\n }`};return{name:\"ScatterND\",shaderCache:{hint:`${t.cacheKey}_${t.reduction}`,inputDependencies:[\"rank\",\"rank\"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:d}),getShaderSource:l}},Xa=e=>L({reduction:e.reduction}),Ya=(e,t)=>{e.compute(Dc(e.inputs,t),{inputs:[e.inputs[1],e.inputs[2]],outputs:[]})}});var Oc,Mc,Uc,eu,Rc,Vc,Nc,Lc,Wc,Gc,Hc,Fc,tu,qc,Kc,jc,Zc,Qc,nu,ru,ou=k(()=>{\"use strict\";N();H();ue();q();Oc=(e,t)=>{if(e.every(n=>n>0||(()=>{throw new Error(\"Resize requires scales input values to be positive\")})),e.length>0){if(t.mode===\"linear\"){if(!(e.length===2||e.length===3||e.length===4&&e[0]===1&&e[1]===1||e.length===4&&e[0]===1&&e[3]===1||e.length===5&&e[0]===1&&e[1]===1))throw new Error(`For linear mode, Resize requires scales to be 2D, 3D, 4D with either two outermost or one innermost and\n one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(t.mode===\"cubic\"&&!(e.length===2||e.length===4&&e[0]===1&&e[1]===1||e.length===4&&e[0]===1&&e[3]===1))throw new Error(\"Resize requires scales input size to be 2 or 4 for cubic mode\")}},Mc=(e,t,n)=>{t.every(o=>o>=0&&o<n||(()=>{throw new Error(\"Resize requires axes input values to be positive and less than rank\")}));let r=new Array(n).fill(1);return t.forEach((o,i)=>r[o]=e[i]),r},Uc=(e,t,n,r,o,i)=>{let[s,a,u]=n>10?[1,2,3]:[-1,e.length>1?1:-1,-1],d=e[0].dims.length;if(s>0&&e.length>s&&e[s].dims.length>0)e[s].getFloat32Array().forEach(l=>i.push(l));else if(t.coordinateTransformMode===\"tf_crop_and_resize\")throw new Error(\"Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize\");if(a>0&&e.length>a&&e[a].dims.length===1&&e[a].dims[0]>0){if(e[a].getFloat32Array().forEach(l=>r.push(l)),r.length!==0&&r.length!==d&&n>=18&&r.length!==t.axes.length)throw new Error(\"Resize requires scales input size to be same as input rank or axes size for opset 18 and up\");Oc(r,t),t.axes.length>0&&Mc(r,t.axes,d).forEach((l,c)=>r[c]=l)}if(u>0&&e.length>u&&e[u].dims.length===1&&e[u].dims[0]>0&&(e[u].getBigInt64Array().forEach(l=>o.push(Number(l))),o.length!==0&&o.length!==d&&n>=18&&o.length!==t.axes.length))throw new Error(\"Resize requires sizes input size to be same as input rank or axes size for opset 18 and up\");if(t.axes.length>0){if(r.length!==0&&r.length!==t.axes.length)throw new Error('Resize requires \"scales\" input size to be of axes rank when axes attributes is specified');if(o.length!==0&&o.length!==t.axes.length)throw new Error('Resize requires \"sizes\" input size to be of rank axes rank when axes attributes is specified')}if(typeof r<\"u\"&&typeof o<\"u\"&&r.length>0&&o.length>d)throw new Error(\"Resize requires only of scales or sizes to be specified\")},eu=(e,t,n,r)=>`\n // The whole part and the fractional part are calculated separately due to inaccuracy of floating\n // point division. As an example, f32(21) / f32(7) may evaluate to 2.99... instead of 3, causing an\n // offset-by-one error later in floor().\n let big = (${e}) * (${t});\n let whole = ${r}(big / (${n}));\n let fract = ${r}(big % (${n})) / ${r}(${n});\n return whole + fract;\n`,Rc=(e,t)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32,\n lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${t} { `+(()=>{switch(e){case\"asymmetric\":return`\n if (xScale < 1.0 || floor(xScale) != xScale) {\n return ${t}(xResized) / ${t}(xScale);\n } else {\n ${eu(\"xResized\",\"lengthOriginal\",\"lengthResized\",t)}\n }\n `;case\"pytorch_half_pixel\":return`if (lengthResized > 1) {\n return (${t}(xResized) + 0.5) / ${t}(xScale) - 0.5;\n } else {\n return 0.0;\n }`;case\"tf_half_pixel_for_nn\":return`return (${t}(xResized) + 0.5) / ${t}(xScale);`;case\"align_corners\":return`if (lengthResized == 1) {\n return 0.0;\n } else {\n ${eu(\"xResized\",\"lengthOriginal - 1\",\"lengthResized - 1\",t)}\n }`;case\"tf_crop_and_resize\":return`if (lengthResized > 1) {\n return ${t}(roiStart) * ${t}(lengthOriginal - 1) +\n (${t}(xResized) * ${t}(roiEnd - roiStart) * ${t}(lengthOriginal - 1)) /\n ${t}(lengthResized - 1);\n } else {\n return 0.5 * ${t}(roiStart + roiEnd) * ${t}(lengthOriginal - 1);\n }`;case\"half_pixel_symmetric\":return`const outputWidth = ${t}xScale * ${t}(lengthResized);\n const adjustment = ${t}(lengthResized) / outputWidth;\n const center = ${t}(lengthOriginal) / 2;\n const offset = center * (1 - adjustment);\n return offset + ((${t}(xResized) + 0.5) / ${t}(xScale)) - 0.5;`;case\"half_pixel\":return`return ((${t}(xResized) + 0.5) / ${t}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${e} is not supported`)}})()+\"}\",Vc=(e,t,n)=>`fn getNearestPixelFromOriginal(xOriginal: ${n}, isDownSample: bool) -> ${n} {`+(()=>{switch(e){case\"round_prefer_ceil\":return\"if (fract(xOriginal) == 0.5) { return ceil(xOriginal); } else { return round(xOriginal); }\";case\"floor\":return\"return floor(xOriginal);\";case\"ceil\":return\"return ceil(xOriginal);\";case\"round_prefer_floor\":return\"if (fract(xOriginal) == 0.5) { return floor(xOriginal); } else { return round(xOriginal); }\";case\"simple\":default:if(t<11)return\"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }\";throw new Error(`Nearest mode ${e} is not supported`)}})()+\"}\",Nc=(e,t,n)=>{let r=new Array(n).fill(0).concat(new Array(n).fill(1)),o=e.length===0?r:e.slice();return t.length>0?(t.forEach((i,s)=>{r[i]=o[s],r[s+n]=o[t.length+s]}),r):o},Lc=(e,t,n,r)=>{let o=[];if(n.length>0)if(r.length>0){if(e.forEach(i=>o.push(i)),Math.max(...r)>e.length)throw new Error(\"axes is out of bound\");r.forEach((i,s)=>o[i]=n[s])}else n.forEach(i=>o.push(i));else{if(t.length===0)throw new Error(\"Resize requires either scales or sizes.\");o=e.map((i,s)=>Math.round(i*t[s]))}return o},Wc=(e,t,n)=>{let r=(()=>{switch(n.keepAspectRatioPolicy){case\"not_larger\":return n.axes.length>0?Math.min(...n.axes.map(i=>t[i]),Number.MAX_VALUE):Math.min(...t,Number.MAX_VALUE);case\"not_smaller\":return n.axes.length>0?Math.max(...n.axes.map(i=>t[i]),Number.MIN_VALUE):Math.max(...t,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${n.keepAspectRatioPolicy} is not supported`)}})();t.fill(1,0,t.length);let o=e.slice();return n.axes.length>0?(n.axes.forEach(i=>t[i]=r),n.axes.forEach(i=>o[i]=Math.round(e[i]*t[i]))):(t.fill(r,0,t.length),o.forEach((i,s)=>o[s]=Math.round(i*t[s]))),o},Gc=(e,t,n,r,o)=>`\n fn calculateOriginalIndicesFromOutputIndices(output_indices: ${e.type.indices}) -> array<${e.type.value}, ${n.length}> {\n var original_indices: array<${e.type.value}, ${n.length}>;\n for (var i:u32 = 0; i < ${n.length}; i++) {\n var output_index = ${e.indicesGet(\"output_indices\",\"i\")};\n var scale = ${D(\"uniforms.scales\",\"i\",r)};\n var roi_low = ${D(\"uniforms.roi\",\"i\",o)};\n var roi_hi = ${D(\"uniforms.roi\",`i + ${t.length}`,o)};\n if (scale == 1.0) {\n original_indices[i] = ${e.type.value}(output_index);\n } else {\n var input_shape_i = ${D(\"uniforms.input_shape\",\"i\",t.length)};\n var output_shape_i = ${D(\"uniforms.output_shape\",\"i\",n.length)};\n original_indices[i] = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i,\n input_shape_i, roi_low, roi_hi);\n }\n }\n return original_indices;\n }`,Hc=(e,t,n,r,o,i,s)=>`\n fn calculateInputIndicesFromOutputIndices(output_indices: ${t.type.indices}) -> ${e.type.indices} {\n var input_indices: ${e.type.indices};\n for (var i:u32 = 0; i < ${r.length}; i++) {\n var output_index = ${t.indicesGet(\"output_indices\",\"i\")};\n var input_index: u32;\n var scale = ${D(\"uniforms.scales\",\"i\",o)};\n if (scale == 1.0) {\n input_index = output_index;\n } else {\n var roi_low = ${D(\"uniforms.roi\",\"i\",i)};\n var roi_hi = ${D(\"uniforms.roi\",`i + ${n.length}`,i)};\n var input_shape_i = ${D(\"uniforms.input_shape\",\"i\",n.length)};\n var output_shape_i = ${D(\"uniforms.output_shape\",\"i\",r.length)};\n var original_idx = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i,\n input_shape_i, roi_low, roi_hi);\n if (!${s} || (original_idx >= 0 && original_idx < ${t.type.value}(input_shape_i))) {\n if (original_idx < 0) {\n input_index = 0;\n } else if (original_idx > ${t.type.value}(input_shape_i - 1)) {\n input_index = input_shape_i - 1;\n } else {\n input_index = u32(getNearestPixelFromOriginal(original_idx, scale < 1));\n }\n } else {\n input_index = u32(original_idx);\n }\n }\n ${e.indicesSet(\"input_indices\",\"i\",\"input_index\")}\n }\n return input_indices;\n }`,Fc=(e,t)=>`\n fn checkInputIndices(input_indices: ${e.type.indices}) -> bool {\n for (var i:u32 = 0; i < ${t.length}; i++) {\n var input_index = ${e.indicesGet(\"input_indices\",\"i\")};\n if (input_index < 0 || input_index >= ${D(\"uniforms.input_shape\",\"i\",t.length)}) {\n return false;\n }\n }\n return true;\n }`,tu=(e,t,n,r)=>e.rank>r?`\n ${e.indicesSet(\"input_indices\",t,\"channel\")};\n ${e.indicesSet(\"input_indices\",n,\"batch\")};\n`:\"\",qc=(e,t,n,r,o)=>{let[s,a,u,d]=n.length===2?[-1,0,1,-1]:[0,2,3,1],l=e.type.value;return`\n fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${l} {\n var input_indices: ${e.type.indices};\n ${e.indicesSet(\"input_indices\",a,`max(0, min(row, ${n[a]} - 1))`)};\n ${e.indicesSet(\"input_indices\",u,`max(0, min(col, ${n[u]} - 1))`)};\n ${tu(e,d,s,2)}\n return ${e.getByIndices(\"input_indices\")};\n }\n\n fn bilinearInterpolation(output_indices: ${t.type.indices}) -> ${l} {\n var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices);\n var row:${l} = originalIndices[${a}];\n var col:${l} = originalIndices[${u}];\n ${r?`if (row < 0 || row > (${n[a]} - 1) || col < 0 || col > (${n[u]} - 1)) {\n return ${o};\n }`:\"\"};\n row = max(0, min(row, ${n[a]} - 1));\n col = max(0, min(col, ${n[u]} - 1));\n var row1: u32 = u32(row);\n var col1: u32 = u32(col);\n var row2: u32 = u32(row + 1);\n var col2: u32 = u32(col + 1);\n var channel: u32 = ${n.length>2?`u32(originalIndices[${d}])`:\"0\"};\n var batch: u32 = ${n.length>2?`u32(originalIndices[${s}])`:\"0\"};\n var x11: ${l} = getInputValue(batch, channel, row1, col1);\n var x12: ${l} = getInputValue(batch, channel, row1, col2);\n var x21: ${l} = getInputValue(batch, channel, row2, col1);\n var x22: ${l} = getInputValue(batch, channel, row2, col2);\n var dx1: ${l} = abs(row - ${l}(row1));\n var dx2: ${l} = abs(${l}(row2) - row);\n var dy1: ${l} = abs(col - ${l}(col1));\n var dy2: ${l} = abs(${l}(col2) - col);\n if (row1 == row2) {\n dx1 = 0.5;\n dx2 = 0.5;\n }\n if (col1 == col2) {\n dy1 = 0.5;\n dy2 = 0.5;\n }\n return (x11 * dx2 * dy2 + x12 * dx2 * dy1 + x21 * dx1 * dy2 + x22 * dx1 * dy1);\n }`},Kc=(e,t,n,r,o,i,s,a,u,d)=>{let l=n.length===2,c=!0,[p,f]=l?[0,1]:c?[2,3]:[1,2],m=e.type.value,h=_=>{let y=_===p?\"row\":\"col\";return`\n fn ${y}CubicInterpolation(input_indices: ${e.type.indices}, output_indices: ${t.type.indices}) -> ${m} {\n var output_index = ${t.indicesGet(\"output_indices\",_)};\n var originalIdx: ${m} = getOriginalCoordinateFromResizedCoordinate(output_index, ${o[_]},\n ${r[_]}, ${n[_]}, ${i[_]}, ${i[_]} + ${n.length});\n var fractOriginalIdx: ${m} = originalIdx - floor(originalIdx);\n var coefs = getCubicInterpolationCoefs(fractOriginalIdx);\n\n if (${a} && (originalIdx < 0 || originalIdx > (${n[_]} - 1))) {\n return ${u};\n }\n var data: array<${m}, 4> = array<${m}, 4>(0.0, 0.0, 0.0, 0.0);\n for (var i: i32 = -1; i < 3; i++) {\n var ${y}: ${m} = originalIdx + ${m}(i);\n if (${y} < 0 || ${y} >= ${n[_]}) {\n ${d?`coefs[i + 1] = 0.0;\n continue;`:a?`return ${u};`:`${y} = max(0, min(${y}, ${n[_]} - 1));`};\n }\n var input_indices_copy: ${e.type.indices} = input_indices;\n ${e.indicesSet(\"input_indices_copy\",_,`u32(${y})`)};\n data[i + 1] = ${_===p?e.getByIndices(\"input_indices_copy\"):\"rowCubicInterpolation(input_indices_copy, output_indices)\"};\n }\n return cubicInterpolation1D(data, coefs);\n }`};return`\n ${h(p)};\n ${h(f)};\n fn getCubicInterpolationCoefs(s: ${m}) -> array<${m}, 4> {\n var absS = abs(s);\n var coeffs: array<${m}, 4> = array<${m}, 4>(0.0, 0.0, 0.0, 0.0);\n var oneMinusAbsS: ${m} = 1.0 - absS;\n var twoMinusAbsS: ${m} = 2.0 - absS;\n var onePlusAbsS: ${m} = 1.0 + absS;\n coeffs[0] = ((${s} * onePlusAbsS - 5 * ${s}) * onePlusAbsS + 8 * ${s}) * onePlusAbsS - 4 * ${s};\n coeffs[1] = ((${s} + 2) * absS - (${s} + 3)) * absS * absS + 1;\n coeffs[2] = ((${s} + 2) * oneMinusAbsS - (${s} + 3)) * oneMinusAbsS * oneMinusAbsS + 1;\n coeffs[3] = ((${s} * twoMinusAbsS - 5 * ${s}) * twoMinusAbsS + 8 * ${s}) * twoMinusAbsS - 4 * ${s};\n return coeffs;\n }\n\n fn cubicInterpolation1D(x: array<${m}, 4>, coefs: array<${m}, 4>) -> ${m} {\n var coefsSum: ${m} = coefs[0] + coefs[1] + coefs[2] + coefs[3];\n return (x[0] * coefs[0] + x[1] * coefs[1]+ x[2] * coefs[2]+ x[3] * coefs[3]) / coefsSum;\n }\n\n fn bicubicInterpolation(output_indices: ${t.type.indices}) -> ${m} {\n var input_indices: ${e.type.indices} = output_indices;\n return colCubicInterpolation(input_indices, output_indices);\n }\n `},jc=(e,t,n,r,o)=>{let[s,a,u,d,l]=n.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],c=e.type.value;return`\n fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${c} {\n var input_indices: ${e.type.indices};\n ${e.indicesSet(\"input_indices\",a,`max(0, min(depth, ${n[a]} - 1))`)};\n ${e.indicesSet(\"input_indices\",u,`max(0, min(height, ${n[u]} - 1))`)};\n ${e.indicesSet(\"input_indices\",d,`max(0, min(width, ${n[d]} - 1))`)};\n ${tu(e,l,s,3)}\n return ${e.getByIndices(\"input_indices\")};\n }\n\n fn trilinearInterpolation(output_indices: ${t.type.indices}) -> ${c} {\n var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices);\n var depth:${c} = originalIndices[${a}];\n var height:${c} = originalIndices[${u}];\n var width:${c} = originalIndices[${d}];\n ${r?`if (depth < 0 || depth > (${n[a]} - 1) || height < 0 || height > (${n[u]} - 1) || width < 0 || (width > ${n[d]} - 1)) {\n return ${o};\n }`:\"\"};\n\n depth = max(0, min(depth, ${n[a]} - 1));\n height = max(0, min(height, ${n[u]} - 1));\n width = max(0, min(width, ${n[d]} - 1));\n var depth1: u32 = u32(depth);\n var height1: u32 = u32(height);\n var width1: u32 = u32(width);\n var depth2: u32 = u32(depth + 1);\n var height2: u32 = u32(height + 1);\n var width2: u32 = u32(width + 1);\n var channel: u32 = ${n.length>3?`u32(originalIndices[${l}])`:\"0\"};\n var batch: u32 = ${n.length>3?`u32(originalIndices[${s}])`:\"0\"};\n\n var x111: ${c} = getInputValue(batch, channel, depth1, height1, width1);\n var x112: ${c} = getInputValue(batch, channel, depth1, height1, width2);\n var x121: ${c} = getInputValue(batch, channel, depth1, height2, width1);\n var x122: ${c} = getInputValue(batch, channel, depth1, height2, width2);\n var x211: ${c} = getInputValue(batch, channel, depth2, height1, width1);\n var x212: ${c} = getInputValue(batch, channel, depth2, height1, width2);\n var x221: ${c} = getInputValue(batch, channel, depth2, height2, width1);\n var x222: ${c} = getInputValue(batch, channel, depth2, height2, width2);\n var dx1: ${c} = abs(depth - ${c}(depth1));\n var dx2: ${c} = abs(${c}(depth2) - depth);\n var dy1: ${c} = abs(height - ${c}(height1));\n var dy2: ${c} = abs(${c}(height2) - height);\n var dz1: ${c} = abs(width - ${c}(width1));\n var dz2: ${c} = abs(${c}(width2) - width);\n if (depth1 == depth2) {\n dx1 = 0.5;\n dx2 = 0.5;\n }\n if (height1 == height2) {\n dy1 = 0.5;\n dy2 = 0.5;\n }\n if (width1 == width2) {\n dz1 = 0.5;\n dz2 = 0.5;\n }\n return (x111 * dx2 * dy2 * dz2 + x112 * dx2 * dy2 * dz1 + x121 * dx2 * dy1 *dz2 + x122 * dx2 * dy1 * dz1 +\n x211 * dx1 * dy2 * dz2 + x212 * dx1 * dy2 * dz1 + x221 * dx1 * dy1 *dz2 + x222 * dx1 * dy1 * dz1);\n }`},Zc=(e,t,n,r,o,i)=>{let s=e.dims,a=Nc(i,t.axes,s.length),u=Lc(s,r,o,t.axes),d=r.slice();r.length===0&&(d=s.map((g,b)=>g===0?1:u[b]/g),t.keepAspectRatioPolicy!==\"stretch\"&&(u=Wc(s,d,t)));let l=C(\"output\",e.dataType,u.length),c=S(\"input\",e.dataType,s.length),p=x.size(u),f=s.length===u.length&&s.every((g,b)=>g===u[b]),m=t.coordinateTransformMode===\"tf_crop_and_resize\",h=t.extrapolationValue,_=c.type.value,y=g=>`\n ${f?\"\":`\n ${Rc(t.coordinateTransformMode,_)};\n ${(()=>{switch(t.mode){case\"nearest\":return`\n ${Fc(c,s)};\n ${Vc(t.nearestMode,n,_)};\n ${Hc(c,l,s,u,d.length,a.length,m)};\n `;case\"linear\":return`\n ${Gc(l,s,u,d.length,a.length)};\n ${(()=>{if(s.length===2||s.length===4)return`${qc(c,l,s,m,h)}`;if(s.length===3||s.length===5)return`${jc(c,l,s,m,h)}`;throw Error(\"Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.\")})()};\n `;case\"cubic\":return`\n ${(()=>{if(s.length===2||s.length===4)return`${Kc(c,l,s,u,d,a,t.cubicCoeffA,m,t.extrapolationValue,t.excludeOutside)}`;throw Error(\"Cubic mode only supports input dims 2 and 4 are supported in linear mode.\")})()};\n `;default:throw Error(\"Invalid resize mode\")}})()};\n `}\n ${g.registerUniform(\"output_size\",\"u32\").registerUniform(\"scales\",\"f32\",d.length).registerUniform(\"roi\",\"f32\",a.length).declareVariables(c,l)}\n ${g.mainStart()}\n ${g.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n ${f?\"output[global_idx] = input[global_idx];\":`\n let output_indices = ${l.offsetToIndices(\"global_idx\")};\n var input_indices: ${c.type.indices};\n ${(()=>{switch(t.mode){case\"nearest\":return`input_indices = calculateInputIndicesFromOutputIndices(output_indices);\n if (checkInputIndices(input_indices)) {\n output[global_idx] = ${c.getByIndices(\"input_indices\")};\n } else {\n output[global_idx] = ${t.extrapolationValue};\n }`;case\"linear\":return`output[global_idx] = ${s.length===2||s.length===4?\"bilinearInterpolation\":\"trilinearInterpolation\"}(output_indices);`;case\"cubic\":return\"output[global_idx] = bicubicInterpolation(output_indices);\";default:throw Error(`Unsupported resize mode: ${t.mode}`)}})()};\n`}\n }`;return{name:\"Resize\",shaderCache:{hint:`${t.cacheKey}|${n}|${d.length>0?t.mode===\"cubic\"?d:d.length:\"\"}|${o.length>0?o:\"\"}|${a.length>0?a:\"\"}|${f}|${t.mode===\"nearest\"?s.length:s}`,inputDependencies:[\"rank\"]},getShaderSource:y,getRunData:()=>({outputs:[{dims:u,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:[{type:12,data:p},{type:1,data:d},{type:1,data:a},...P(s,u)]})}},Qc=e=>{let t=e.customDataBuffer;return new Uint32Array(t,t.byteOffset,1)[0]},nu=(e,t)=>{let n=[],r=[],o=[],i=Qc(e);if(t.antialias!==0)throw Error(\"Only default value (0) for Antialias attribute is supported\");Uc(e.inputs,t,i,n,r,o),e.compute(Zc(e.inputs[0],t,i,n,r,o),{inputs:[0]})},ru=e=>{let t=e.antialias,n=e.axes,r=e.coordinateTransformMode,o=e.cubicCoeffA,i=e.excludeOutside!==0,s=e.extrapolationValue,a=e.keepAspectRatioPolicy,u=e.mode,d=e.nearestMode===\"\"?\"simple\":e.nearestMode;return L({antialias:t,axes:n,coordinateTransformMode:r,cubicCoeffA:o,excludeOutside:i,extrapolationValue:s,keepAspectRatioPolicy:a,mode:u,nearestMode:d})}});var Xc,Yc,iu,su=k(()=>{\"use strict\";N();H();q();Xc=e=>{if(!e||e.length<3)throw new Error(\"layerNorm requires at least 3 inputs.\");let t=e[0],n=e[1],r=e[2];if(t.dataType!==n.dataType||t.dataType!==r.dataType)throw new Error(\"All inputs must have the same data type\");if(t.dims.length!==3&&t.dims.length!==2)throw new Error(\"Input must be 2D or 3D\");if(n.dims.length!==3&&n.dims.length!==2)throw new Error(\"Skip must be 2D or 3D\");let o=t.dims[t.dims.length-1],i=t.dims[t.dims.length-2];if(n.dims[n.dims.length-1]!==o)throw new Error(\"Skip must have the same hidden size as input\");if(n.dims[n.dims.length-2]!==i)throw new Error(\"Skip must have the same sequence length as input\");if(r.dims.length!==1)throw new Error(\"Gamma must be 1D\");if(r.dims[r.dims.length-1]!==o)throw new Error(\"Gamma must have the same hidden size as input\");if(e.length>3){let s=e[3];if(s.dims.length!==1)throw new Error(\"Beta must be 1D\");if(s.dims[s.dims.length-1]!==o)throw new Error(\"Beta must have the same hidden size as input\")}if(e.length>4){let s=e[4];if(s.dims.length!==1)throw new Error(\"Bias must be 1D\");if(s.dims[s.dims.length-1]!==o)throw new Error(\"Bias must have the same hidden size as input\")}},Yc=(e,t,n,r)=>{let o=t.simplified,i=e[0].dims,s=x.size(i),a=i,u=s,d=i.slice(-1)[0],l=r?i.slice(0,-1).concat(1):[],c=!o&&e.length>3,p=e.length>4,f=r&&n>1,m=r&&n>2,h=n>3,_=64,y=J(d),g=[{type:12,data:u},{type:12,data:y},{type:12,data:d},{type:1,data:t.epsilon}],b=v=>{let $=[{name:\"output_size\",type:\"u32\"},{name:\"components\",type:\"u32\"},{name:\"hidden_size\",type:\"u32\"},{name:\"epsilon\",type:\"f32\"}],T=[S(\"x\",e[0].dataType,e[0].dims,y),S(\"skip\",e[1].dataType,e[1].dims,y),S(\"gamma\",e[2].dataType,e[2].dims,y)];c&&T.push(S(\"beta\",e[3].dataType,e[3].dims,y)),p&&T.push(S(\"bias\",e[4].dataType,e[4].dims,y)),T.push(C(\"output\",e[0].dataType,a,y)),f&&T.push(C(\"mean_output\",1,l)),m&&T.push(C(\"inv_std_output\",1,l)),h&&T.push(C(\"input_skip_bias_sum\",e[0].dataType,a,y));let I=re(e[0].dataType),E=re(1,y);return`\n\n ${v.registerUniforms($).declareVariables(...T)}\n var<workgroup> sum_shared : array<${E}, ${_}>;\n var<workgroup> sum_squared_shared : array<${E}, ${_}>;\n\n ${v.mainStart([_,1,1])}\n let ix = local_id.x;\n let iy = global_id.x / ${_};\n\n let hidden_size_vectorized: u32 = uniforms.hidden_size / uniforms.components;\n var stride = hidden_size_vectorized / ${_};\n let offset = ix * stride + iy * hidden_size_vectorized;\n let offset1d = stride * ix;\n if (ix == ${_-1}) {\n stride = hidden_size_vectorized - stride * ix;\n }\n for (var i: u32 = 0; i < stride; i++) {\n let skip_value = skip[offset + i];\n let bias_value = ${p?\"bias[offset1d + i]\":I+\"(0.0)\"};\n let input_value = x[offset + i];\n let value = input_value + skip_value + bias_value;\n ${h?\"input_skip_bias_sum[offset + i] = value;\":\"\"}\n output[offset + i] = value;\n let f32_value = ${et(I,y,\"value\")};\n sum_shared[ix] += f32_value;\n sum_squared_shared[ix] += f32_value * f32_value;\n }\n workgroupBarrier();\n\n var reduce_size : u32 = ${_};\n for (var curr_size = reduce_size >> 1; curr_size > 0; curr_size = reduce_size >> 1) {\n reduce_size = curr_size + (reduce_size & 1);\n if (ix < curr_size) {\n sum_shared[ix] += sum_shared[ix + reduce_size];\n sum_squared_shared[ix] += sum_squared_shared[ix + reduce_size];\n }\n workgroupBarrier();\n }\n\n let sum = sum_shared[0];\n let square_sum = sum_squared_shared[0];\n let mean = ${Ie(\"sum\",y)} / f32(uniforms.hidden_size);\n let inv_std_dev = inverseSqrt(${Ie(\"square_sum\",y)} / f32(uniforms.hidden_size) ${o?\"\":\"- mean * mean\"} + uniforms.epsilon);\n ${f?\"mean_output[global_idx] = mean;\":\"\"}\n ${m?\"inv_std_output[global_idx] = inv_std_dev;\":\"\"}\n\n for (var i: u32 = 0; i < stride; i++) {\n output[offset + i] = (output[offset + i] ${o?\"\":`- ${I}(mean)`}) *\n ${I}(inv_std_dev) * gamma[offset1d + i]\n ${c?\"+ beta[offset1d + i]\":\"\"};\n }\n }`},w=[{dims:a,dataType:e[0].dataType}];return n>1&&w.push({dims:l,dataType:1}),n>2&&w.push({dims:l,dataType:1}),n>3&&w.push({dims:i,dataType:e[0].dataType}),{name:\"SkipLayerNormalization\",shaderCache:{hint:`${y};${f};${m};${h}`,inputDependencies:e.map((v,$)=>\"type\")},getShaderSource:b,getRunData:()=>({outputs:w,dispatchGroup:{x:Math.ceil(u/d)},programUniforms:g})}},iu=(e,t)=>{Xc(e.inputs);let r=[0];e.outputCount>1&&r.push(-3),e.outputCount>2&&r.push(-3),e.outputCount>3&&r.push(3),e.compute(Yc(e.inputs,t,e.outputCount,!1),{outputs:r})}});var Jc,fn,ep,au,tp,np,uu,du,lu=k(()=>{\"use strict\";N();H();ue();q();Jc=(e,t)=>{if(!e||e.length<1)throw new Error(\"too few inputs\");if(t.axes.length!==0){if(t.axes.length!==t.starts.length||t.axes.length!==t.ends.length)throw new Error(\"axes, starts and ends must have the same length\")}else if(t.starts.length!==t.ends.length)throw new Error(\"starts and ends must have the same length\");e.slice(1).forEach((n,r)=>{if(e[r+1].dataType!==6&&e[r+1].dataType!==7)throw new Error(`Input ${r} must be an array of int32 or int64`)})},fn=(e,t)=>{let n=[];if(e.length>t)if(e[t].dataType===7)e[t].getBigInt64Array().forEach(r=>n.push(Number(r)));else if(e[t].dataType===6)e[t].getInt32Array().forEach(r=>n.push(Number(r)));else throw new Error(`Input ${t} must be an array of int32 or int64`);return n},ep=(e,t)=>{if(e.length>1){let n=fn(e,1),r=fn(e,2),o=fn(e,3);return o.length===0&&(o=[...Array(e[0].dims.length).keys()]),L({starts:n,ends:r,axes:o})}else return t},au=(e,t,n,r,o)=>{let i=e;return e<0&&(i+=n[r[t]]),o[t]<0?Math.max(0,Math.min(i,n[r[t]]-1)):Math.max(0,Math.min(i,n[r[t]]))},tp=(e,t,n)=>`fn calculateInputIndices(output_indices: ${t.type.indices}) -> ${e.type.indices} {\n var input_indices: ${e.type.indices};\n var carry = 0u;\n for (var i = ${n.length-1}; i >= 0; i--) {\n let input_shape_i = ${D(\"uniforms.input_shape\",\"i\",n.length)};\n let steps_i = ${D(\"uniforms.steps\",\"i\",n.length)};\n let signs_i = ${D(\"uniforms.signs\",\"i\",n.length)};\n let starts_i = ${D(\"uniforms.starts\",\"i\",n.length)};\n var output_index = ${t.indicesGet(\"output_indices\",\"i\")};\n var input_index = output_index * steps_i + starts_i + carry;\n carry = input_index / input_shape_i;\n input_index = input_index % input_shape_i;\n if (signs_i < 0) {\n input_index = input_shape_i - input_index - 1u + starts_i;\n }\n ${e.indicesSet(\"input_indices\",\"i\",\"input_index\")};\n }\n return input_indices;\n }`,np=(e,t)=>{let n=e[0].dims,r=x.size(n),o=t.axes.length>0?x.normalizeAxes(t.axes,n.length):[...Array(n.length).keys()],i=fn(e,4);i.forEach(y=>y!==0||(()=>{throw new Error(\"step cannot be 0\")})),i.length===0&&(i=Array(o.length).fill(1));let s=t.starts.map((y,g)=>au(y,g,n,o,i)),a=t.ends.map((y,g)=>au(y,g,n,o,i));if(o.length!==s.length||o.length!==a.length)throw new Error(\"start, ends and axes should have the same number of elements\");if(o.length!==n.length)for(let y=0;y<n.length;++y)o.includes(y)||(s.splice(y,0,0),a.splice(y,0,n[y]),i.splice(y,0,1));let u=i.map(y=>Math.sign(y));i.forEach((y,g,b)=>{if(y<0){let w=(a[g]-s[g])/y,v=s[g],$=v+w*i[g];s[g]=$,a[g]=v,b[g]=-y}});let d=n.slice(0);o.forEach((y,g)=>{d[y]=Math.ceil((a[y]-s[y])/i[y])});let l={dims:d,dataType:e[0].dataType},c=C(\"output\",e[0].dataType,d.length),p=S(\"input\",e[0].dataType,e[0].dims.length),f=x.size(d),m=[{name:\"outputSize\",type:\"u32\"},{name:\"starts\",type:\"u32\",length:s.length},{name:\"signs\",type:\"i32\",length:u.length},{name:\"steps\",type:\"u32\",length:i.length}],h=[{type:12,data:f},{type:12,data:s},{type:6,data:u},{type:12,data:i},...P(e[0].dims,d)],_=y=>`\n ${y.registerUniforms(m).declareVariables(p,c)}\n ${tp(p,c,n)}\n ${y.mainStart()}\n ${y.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.outputSize\")}\n let output_indices = ${c.offsetToIndices(\"global_idx\")};\n let input_indices = calculateInputIndices(output_indices);\n ${c.setByOffset(\"global_idx\",p.getByIndices(\"input_indices\"))}\n }`;return{name:\"Slice\",shaderCache:{hint:`${u.length}_${s.length}_${i.length}`,inputDependencies:[\"rank\"]},getShaderSource:_,getRunData:()=>({outputs:[l],dispatchGroup:{x:Math.ceil(r/64)},programUniforms:h})}},uu=(e,t)=>{Jc(e.inputs,t);let n=ep(e.inputs,t);e.compute(np(e.inputs,n),{inputs:[0]})},du=e=>{let t=e.starts,n=e.ends,r=e.axes;return L({starts:t,ends:n,axes:r})}});var rp,op,cu,pu,mu=k(()=>{\"use strict\";N();H();ue();Ne();q();rp=e=>{if(!e||e.length!==1)throw new Error(\"Softmax op requires 1 input.\")},op=(e,t)=>{let n=e.inputs[0],r=n.dims,o=x.size(r),i=r.length,s=x.normalizeAxis(t.axis,i),a=s<r.length-1,u,d=[];a?(d=Array.from({length:i},(T,I)=>I),d[s]=i-1,d[i-1]=s,u=e.compute(me(n,d),{inputs:[n],outputs:[-1]})[0]):u=n;let l=u.dims,c=l[i-1],p=o/c,f=J(c),m=c/f,h=64;p===1&&(h=256);let _=(T,I)=>I===4?`max(max(${T}.x, ${T}.y), max(${T}.z, ${T}.w))`:I===2?`max(${T}.x, ${T}.y)`:I===3?`max(max(${T}.x, ${T}.y), ${T}.z)`:T,y=S(\"x\",u.dataType,u.dims,f),g=C(\"result\",u.dataType,u.dims,f),b=y.type.value,w=re(u.dataType)===\"f32\"?`var threadMax = ${b}(-3.4028234663852886e+38f);`:`var threadMax = ${b}(-65504.0h);`,v=T=>`\n var<workgroup> rowMaxShared : ${b};\n var<workgroup> rowSumShared : ${b};\n var<workgroup> threadShared : array<${b}, ${h}>;\n\n fn getValue(row: i32, col: i32, row_stride: i32) -> ${b} {\n let index = row * row_stride + col;\n return x[index];\n }\n\n fn setValue(row: i32, col: i32, row_stride: i32, value: ${b}) {\n let index = row * row_stride + col;\n result[index] = value;\n }\n ${T.registerUniform(\"packedCols\",\"i32\").declareVariables(y,g)}\n ${T.mainStart(h)}\n let gindex = i32(global_idx);\n let lindex = i32(local_idx);\n const wg = ${h};\n let row = gindex / wg;\n let cols = uniforms.packedCols;\n let row_stride : i32 = uniforms.packedCols;\n\n // find the rows max\n ${w}\n for (var col = lindex; col < cols; col += wg) {\n let value = getValue(row, col, row_stride);\n threadMax = max(threadMax, value);\n }\n if (lindex < cols) {\n threadShared[lindex] = threadMax;\n }\n workgroupBarrier();\n\n var reduceSize = min(cols, wg);\n for (var currSize = reduceSize >> 1; currSize > 0; currSize = reduceSize >> 1) {\n reduceSize = currSize + (reduceSize & 1);\n if (lindex < currSize) {\n threadShared[lindex] = max(threadShared[lindex], threadShared[lindex + reduceSize]);\n }\n workgroupBarrier();\n }\n if (lindex == 0) {\n rowMaxShared = ${b}(${_(\"threadShared[0]\",f)});\n }\n workgroupBarrier();\n\n // find the rows sum\n var threadSum = ${b}(0.0);\n for (var col = lindex; col < cols; col += wg) {\n let subExp = exp(getValue(row, col, row_stride) - rowMaxShared);\n threadSum += subExp;\n }\n threadShared[lindex] = threadSum;\n workgroupBarrier();\n\n for (var currSize = wg >> 1; currSize > 0; currSize = currSize >> 1) {\n if (lindex < currSize) {\n threadShared[lindex] = threadShared[lindex] + threadShared[lindex + currSize];\n }\n workgroupBarrier();\n }\n if (lindex == 0) {\n rowSumShared = ${b}(${Ie(\"threadShared[0]\",f)});\n }\n workgroupBarrier();\n\n // calculate final value for each element in the row\n for (var col = lindex; col < cols; col += wg) {\n var value = exp(getValue(row, col, row_stride) - rowMaxShared) / rowSumShared;\n // max operation protects against NaN since all values should be >=0\n value = max(value, ${b}(0.0));\n setValue(row, col, row_stride, value);\n }\n }`,$=e.compute({name:\"Softmax\",shaderCache:{hint:`${f};${h}`,inputDependencies:[\"type\"]},getRunData:()=>({outputs:[{dims:l,dataType:u.dataType}],dispatchGroup:{x:p},programUniforms:[{type:6,data:m}]}),getShaderSource:v},{inputs:[u],outputs:[a?-1:0]})[0];a&&e.compute(me($,d),{inputs:[$]})},cu=(e,t)=>{rp(e.inputs),op(e,t)},pu=e=>L({axis:e.axis})});var fu,ip,sp,ap,hu,gu=k(()=>{\"use strict\";N();H();q();fu=e=>Array.from(e.getBigInt64Array(),Number),ip=e=>{if(!e||e.length!==2)throw new Error(\"Tile requires 2 inputs.\");if(e[0].dataType!==1&&e[0].dataType!==10&&e[0].dataType!==6&&e[0].dataType!==12)throw new Error(\"Tile only support float, float16, int32, and uint32 data types\");if(e[1].dataType!==7)throw new Error(\"Tile `repeats` input should be of int64 data type\");if(e[1].dims.length!==1)throw new Error(\"Tile `repeats` input should be 1-D\");if(fu(e[1]).length!==e[0].dims.length)throw new Error(\"Tile `repeats` input should have same number of elements as rank of input data tensor\")},sp=(e,t)=>{let n=[];for(let r=0;r<e.length;++r)n.push(e[r]*t[r]);return n},ap=(e,t)=>{let n=e[0].dims,r=t??fu(e[1]),o=sp(n,r),i=x.size(o),s=e[0].dataType,a=S(\"input\",s,n.length),u=C(\"output\",s,o.length),d=l=>`\n const inputShape = ${a.indices(...n)};\n ${l.registerUniform(\"output_size\",\"u32\").declareVariables(a,u)}\n ${l.mainStart()}\n ${l.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.output_size\")}\n let output_indices = ${u.offsetToIndices(\"global_idx\")};\n var input_indices: ${a.type.indices};\n for (var i = 0; i < ${n.length}; i++) {\n let input_dim_i = ${a.indicesGet(\"uniforms.input_shape\",\"i\")};\n let input_dim_value = ${u.indicesGet(\"output_indices\",\"i\")} % input_dim_i;\n\n ${a.indicesSet(\"input_indices\",\"i\",\"input_dim_value\")}\n }\n ${u.setByOffset(\"global_idx\",a.getByIndices(\"input_indices\"))}\n }`;return{name:\"Tile\",shaderCache:{hint:`${r}`,inputDependencies:[\"rank\"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:[{type:12,data:i},...P(e[0].dims,o)]}),getShaderSource:d}},hu=e=>{ip(e.inputs),e.compute(ap(e.inputs),{inputs:[0]})}});var up,dp,yu,bu=k(()=>{\"use strict\";N();H();q();up=(e,t,n,r,o)=>{let i=C(\"output_data\",o,n.length,4),s=S(\"a_data\",t[1].dataType,t[1].dims.length,4),a=S(\"b_data\",t[2].dataType,t[2].dims.length,4),u=S(\"c_data\",t[0].dataType,t[0].dims.length,4),d,l=(c,p,f)=>`select(${p}, ${c}, ${f})`;if(!r)d=i.setByOffset(\"global_idx\",l(s.getByOffset(\"global_idx\"),a.getByOffset(\"global_idx\"),u.getByOffset(\"global_idx\")));else{let c=(p,f,m=\"\")=>{let h=`a_data[index_a${f}][component_a${f}]`,_=`b_data[index_b${f}][component_b${f}]`,y=`bool(c_data[index_c${f}] & (0xffu << (component_c${f} * 8)))`;return`\n let output_indices${f} = ${i.offsetToIndices(`global_idx * 4u + ${f}u`)};\n let offset_a${f} = ${s.broadcastedIndicesToOffset(`output_indices${f}`,i)};\n let offset_b${f} = ${a.broadcastedIndicesToOffset(`output_indices${f}`,i)};\n let offset_c${f} = ${u.broadcastedIndicesToOffset(`output_indices${f}`,i)};\n let index_a${f} = offset_a${f} / 4u;\n let index_b${f} = offset_b${f} / 4u;\n let index_c${f} = offset_c${f} / 4u;\n let component_a${f} = offset_a${f} % 4u;\n let component_b${f} = offset_b${f} % 4u;\n let component_c${f} = offset_c${f} % 4u;\n ${p}[${f}] = ${m}(${l(h,_,y)});\n `};o===9?d=`\n var data = vec4<u32>(0);\n ${c(\"data\",0,\"u32\")}\n ${c(\"data\",1,\"u32\")}\n ${c(\"data\",2,\"u32\")}\n ${c(\"data\",3,\"u32\")}\n output_data[global_idx] = dot(vec4<u32>(0x1, 0x100, 0x10000, 0x1000000), vec4<u32>(data));`:d=`\n ${c(\"output_data[global_idx]\",0)}\n ${c(\"output_data[global_idx]\",1)}\n ${c(\"output_data[global_idx]\",2)}\n ${c(\"output_data[global_idx]\",3)}\n `}return`\n ${e.registerUniform(\"vec_size\",\"u32\").declareVariables(u,s,a,i)}\n ${e.mainStart()}\n ${e.guardAgainstOutOfBoundsWorkgroupSizes(\"uniforms.vec_size\")}\n ${d}\n }`},dp=e=>{let t=e[1].dims,n=e[2].dims,r=e[0].dims,o=e[1].dataType,i=!(x.areEqual(t,n)&&x.areEqual(n,r)),s=t,a=x.size(t);if(i){let d=ze.calcShape(ze.calcShape(t,n,!1),r,!1);if(!d)throw new Error(\"Can't perform where op on the given tensors\");s=d,a=x.size(s)}let u=Math.ceil(a/4);return{name:\"Where\",shaderCache:{inputDependencies:[\"rank\",\"rank\",\"rank\"]},getShaderSource:d=>up(d,e,s,i,o),getRunData:()=>({outputs:[{dims:s,dataType:o}],dispatchGroup:{x:Math.ceil(a/64/4)},programUniforms:[{type:12,data:u},...P(r,t,n,s)]})}},yu=e=>{e.compute(dp(e.inputs))}});var _u,wu=k(()=>{\"use strict\";ei();tn();ri();ii();Hi();ts();os();ws();Cs();ks();Bs();Rs();Ls();Gs();qs();Zs();Ys();ta();oa();aa();ga();_a();$a();xa();Ia();ar();Aa();Fa();ja();Qa();Ja();Jt();ou();lr();su();lu();mu();dr();gu();Ne();rn();bu();_u=new Map([[\"Abs\",[si]],[\"Acos\",[ai]],[\"Acosh\",[ui]],[\"Add\",[Fi]],[\"ArgMax\",[Jo,jn]],[\"ArgMin\",[Yo,jn]],[\"Asin\",[di]],[\"Asinh\",[li]],[\"Atan\",[ci]],[\"Atanh\",[pi]],[\"Attention\",[ti]],[\"AveragePool\",[Ma,Oa]],[\"BatchNormalization\",[ni]],[\"BiasAdd\",[oi]],[\"BiasSplitGelu\",[Gi]],[\"Cast\",[fi,mi]],[\"Ceil\",[gi]],[\"Clip\",[hi]],[\"Concat\",[ns,rs]],[\"Conv\",[rr,nr]],[\"ConvTranspose\",[Is,Ss]],[\"Cos\",[yi]],[\"Cosh\",[bi]],[\"CumSum\",[As,Es]],[\"DepthToSpace\",[Ps,zs]],[\"DequantizeLinear\",[qa,Ka]],[\"Div\",[qi]],[\"Einsum\",[Ms,Us]],[\"Elu\",[_i,bt]],[\"Equal\",[Ki]],[\"Erf\",[wi]],[\"Exp\",[$i]],[\"Expand\",[Ns]],[\"FastGelu\",[Ws]],[\"Floor\",[vi]],[\"FusedConv\",[rr,nr]],[\"Gather\",[Fs,Hs]],[\"GatherElements\",[ea,Js]],[\"GatherBlockQuantized\",[Qs,Xs]],[\"GatherND\",[Ks,js]],[\"Gelu\",[xi]],[\"Gemm\",[ra,na]],[\"GlobalAveragePool\",[Va,Ra]],[\"GlobalMaxPool\",[Ha,Ga]],[\"Greater\",[Xi]],[\"GreaterOrEqual\",[Ji]],[\"GridSample\",[ia,sa]],[\"GroupQueryAttention\",[ha]],[\"HardSigmoid\",[Pi,ki]],[\"InstanceNormalization\",[ba]],[\"LayerNormalization\",[wa]],[\"LeakyRelu\",[Si,bt]],[\"Less\",[Yi]],[\"LessOrEqual\",[es]],[\"Log\",[Ni]],[\"MatMul\",[va]],[\"MatMulNBits\",[Sa,Ta]],[\"MaxPool\",[La,Wa]],[\"Mul\",[ji]],[\"MultiHeadAttention\",[la,da]],[\"Neg\",[Ii]],[\"Not\",[Ti]],[\"Pad\",[Ca]],[\"Pow\",[Zi]],[\"QuickGelu\",[Li,bt]],[\"Range\",[Za]],[\"Reciprocal\",[Ci]],[\"ReduceMin\",[qo]],[\"ReduceMean\",[Lo]],[\"ReduceMax\",[Fo]],[\"ReduceSum\",[jo]],[\"ReduceProd\",[Ko]],[\"ReduceL1\",[Wo]],[\"ReduceL2\",[Go]],[\"ReduceLogSum\",[Qo]],[\"ReduceLogSumExp\",[Ho]],[\"ReduceSumSquare\",[Zo]],[\"Relu\",[Ai]],[\"Resize\",[nu,ru]],[\"RotaryEmbedding\",[ma]],[\"ScatterND\",[Ya,Xa]],[\"Sigmoid\",[Ei]],[\"Sin\",[zi]],[\"Sinh\",[Bi]],[\"Slice\",[uu,du]],[\"SkipLayerNormalization\",[iu]],[\"Split\",[ca,pa]],[\"Sqrt\",[Di]],[\"Softmax\",[cu,pu]],[\"Sub\",[Qi]],[\"Tan\",[Oi]],[\"Tanh\",[Ui]],[\"ThresholdedRelu\",[Vi,bt]],[\"Tile\",[hu]],[\"Transpose\",[Ao,Eo]],[\"Where\",[yu]]])});var hn,$u=k(()=>{\"use strict\";we();Pe();q();hn=class{constructor(t){this.backend=t;this.repo=new Map,this.attributesBound=!1}getArtifact(t){return this.repo.get(t)}setArtifact(t,n){this.repo.set(t,n)}run(t,n,r,o,i){be(t.programInfo.name);let s=this.backend.device,a=this.backend.getComputePassEncoder();this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2);let u=[];for(let l of n)u.push({binding:u.length,resource:{buffer:l.buffer}});for(let l of r)u.push({binding:u.length,resource:{buffer:l.buffer}});i&&u.push({binding:u.length,resource:i});let d=s.createBindGroup({layout:t.computePipeline.getBindGroupLayout(0),entries:u,label:t.programInfo.name});if(this.backend.sessionStatus===\"capturing\"){let l={kernelId:this.backend.currentKernelId,computePipeline:t.computePipeline,bindGroup:d,dispatchGroup:o};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(l)}a.setPipeline(t.computePipeline),a.setBindGroup(0,d),a.dispatchWorkgroups(...o),this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2+1),this.backend.pendingDispatchNumber++,(this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber||this.backend.queryType===\"at-passes\")&&this.backend.endComputePass(),this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber&&this.backend.flush(),ye(t.programInfo.name)}dispose(){}build(t,n){be(t.name);let r=this.backend.device,o=[];[{feature:\"shader-f16\",extension:\"f16\"},{feature:\"subgroups\",extension:\"subgroups\"}].forEach(c=>{r.features.has(c.feature)&&o.push(`enable ${c.extension};`)});let s=Io(n,this.backend.device.limits),a=t.getShaderSource(s),u=`${o.join(`\n`)}\n${s.additionalImplementations}\n${a}`,d=r.createShaderModule({code:u,label:t.name});Z(\"verbose\",()=>`[WebGPU] ${t.name} shader code: ${u}`);let l=r.createComputePipeline({compute:{module:d,entryPoint:\"main\"},layout:\"auto\",label:t.name});return ye(t.name),{programInfo:t,computePipeline:l,uniformVariablesInfo:s.variablesInfo}}normalizeDispatchGroupSize(t){let n=typeof t==\"number\"?t:t.x,r=typeof t==\"number\"?1:t.y||1,o=typeof t==\"number\"?1:t.z||1,i=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(n<=i&&r<=i&&o<=i)return[n,r,o];let s=n*r*o,a=Math.ceil(Math.sqrt(s));if(a>i){if(a=Math.ceil(Math.cbrt(s)),a>i)throw new Error(\"Total dispatch size exceeds WebGPU maximum.\");return[a,a,a]}else return[a,a,1]}}});var vu={};rt(vu,{WebGpuBackend:()=>pr});var lp,cp,cr,pr,xu=k(()=>{\"use strict\";we();N();Pe();Mn();So();wu();$u();lp=(e,t)=>{if(t.length!==e.length)throw new Error(`inputDependencies length ${t.length} is not equal to inputTensors length ${e.length}.`);let n=[];for(let r=0;r<e.length;++r){let o=e[r].dataType;switch(t[r]){case\"none\":{n.push(\"\");break}case\"type\":{n.push(`${o}`);break}case\"rank\":{let i=e[r].dims.length;n.push(`${o};${i}`);break}case\"dims\":{let i=e[r].dims.join(\",\");n.push(`${o};${i}`);break}default:throw new Error(`unsupported input dependency: ${t[r]}`)}}return n.join(\"|\")},cp=(e,t,n)=>{let r=e.name;return e.shaderCache?.hint&&(r+=\"[\"+e.shaderCache.hint+\"]\"),r+=\":\"+n+`:${lp(t,e.shaderCache?.inputDependencies??new Array(t.length).fill(\"dims\"))}`,r},cr=class{constructor(t){t&&(this.architecture=t.architecture,this.vendor=t.vendor)}isArchitecture(t){return this.architecture===t}isVendor(t){return this.vendor===t}},pr=class{constructor(){this.currentSessionId=null;this.currentKernelId=null;this.commandEncoder=null;this.computePassEncoder=null;this.maxDispatchNumber=16;this.pendingDispatchNumber=0;this.pendingKernels=[];this.pendingQueries=new Map;this.sessionStatus=\"default\";this.capturedCommandList=new Map;this.capturedPendingKernels=new Map;this.sessionExternalDataMapping=new Map}get currentKernelCustomData(){if(this.currentKernelId===null)throw new Error(\"currentKernelCustomData(): currentKernelId is null. (should not happen)\");let t=this.kernelCustomData.get(this.currentKernelId);return t||(t={},this.kernelCustomData.set(this.currentKernelId,t)),t}async initialize(t,n){this.env=t;let r=[],o={requiredLimits:{maxComputeWorkgroupStorageSize:n.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:n.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:n.limits.maxStorageBufferBindingSize,maxBufferSize:n.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:n.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:n.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:n.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:n.limits.maxComputeWorkgroupSizeZ},requiredFeatures:r},i=s=>n.features.has(s)&&r.push(s)&&!0;i(\"chromium-experimental-timestamp-query-inside-passes\")||i(\"timestamp-query\"),i(\"shader-f16\"),i(\"subgroups\"),this.device=await n.requestDevice(o),this.adapterInfo=new cr(n.info||await n.requestAdapterInfo()),this.gpuDataManager=xo(this),this.programManager=new hn(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,Gt(t.logLevel,!!t.debug),this.device.onuncapturederror=s=>{s.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${s.error.message}`)},Object.defineProperty(this.env.webgpu,\"device\",{value:this.device,writable:!1,enumerable:!0,configurable:!0}),Object.defineProperty(this.env.webgpu,\"adapter\",{value:n,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<\"u\"&&this.querySet.destroy(),this.gpuDataManager.dispose(),this.device&&this.env?.webgpu&&this.device.lost.then(()=>{delete this.env.webgpu.device})}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}getComputePassEncoder(){if(!this.computePassEncoder){let t=this.getCommandEncoder(),n={};this.queryType===\"at-passes\"&&(n.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=t.beginComputePass(n)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;be(),this.endComputePass();let t;this.queryType!==\"none\"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),t=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(t,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,t,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!==\"none\"&&t.mapAsync(GPUMapMode.READ).then(()=>{let n=new BigUint64Array(t.getMappedRange()),r=this.pendingQueries.get(t);for(let o=0;o<n.length/2;o++){let i=r[o],s=i.kernelId,a=this.kernels.get(s),u=a.kernelType,d=a.kernelName,l=i.programName,c=i.inputTensorViews,p=i.outputTensorViews,f=n[o*2],m=n[o*2+1];typeof this.queryTimeBase>\"u\"&&(this.queryTimeBase=f);let h=Number(f-this.queryTimeBase),_=Number(m-this.queryTimeBase);if(!Number.isSafeInteger(h)||!Number.isSafeInteger(_))throw new RangeError(\"incorrect timestamp range\");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:c.map(y=>({dims:y.dims,dataType:ke(y.dataType)})),outputsMetadata:p.map(y=>({dims:y.dims,dataType:ke(y.dataType)})),kernelId:s,kernelType:u,kernelName:d,programName:l,startTime:h,endTime:_});else{let y=\"\";c.forEach((b,w)=>{y+=`input[${w}]: [${b.dims}] | ${ke(b.dataType)}, `});let g=\"\";p.forEach((b,w)=>{g+=`output[${w}]: [${b.dims}] | ${ke(b.dataType)}, `}),console.log(`[profiling] kernel \"${s}|${u}|${d}|${l}\" ${y}${g}start time: ${h} ns, execution time: ${_-h} ns`)}mt(\"GPU\",`${l}::${f}::${m}`)}t.unmap(),this.pendingQueries.delete(t)}),ye()}run(t,n,r,o,i,s){be(t.name);let a=[];for(let b=0;b<n.length;++b){let w=n[b].data;if(w===0)continue;let v=this.gpuDataManager.get(w);if(!v)throw new Error(`no GPU data for input: ${w}`);a.push(v)}let{outputs:u,dispatchGroup:d,programUniforms:l}=t.getRunData(n),c=r.length===0?u.map((b,w)=>w):r;if(c.length!==u.length)throw new Error(`Output size ${c.length} must be equal to ${u.length}.`);let p=[],f=[];for(let b=0;b<u.length;++b){if(!Number.isInteger(c[b])||c[b]<-3||c[b]>=s)throw new Error(`Invalid output index: ${c[b]}`);if(c[b]===-3)continue;let w=c[b]===-1,v=c[b]===-2,$=w||v?i(u[b].dataType,u[b].dims):o(c[b],u[b].dataType,u[b].dims);if(p.push($),$.data===0)continue;let T=this.gpuDataManager.get($.data);if(!T)throw new Error(`no GPU data for output: ${$.data}`);if(w&&this.temporaryData.push(T),v){let I=this.kernelPersistentData.get(this.currentKernelId);I||(I=[],this.kernelPersistentData.set(this.currentKernelId,I)),I.push(T)}f.push(T)}if(a.length!==n.length||f.length!==p.length){if(f.length===0)return ye(t.name),p;throw new Error(`Program ${t.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let m;if(l){let b=0,w=[];l.forEach(I=>{let E=typeof I.data==\"number\"?[I.data]:I.data;if(E.length===0)return;let z=I.type===10?2:4,M,O;I.type===10?(O=E.length>4?16:E.length>2?8:E.length*z,M=E.length>4?16:z*E.length):(O=E.length<=2?E.length*z:16,M=16),b=Math.ceil(b/O)*O,w.push(b);let W=I.type===10?8:4;b+=E.length>4?Math.ceil(E.length/W)*M:E.length*z});let v=16;b=Math.ceil(b/v)*v;let $=new ArrayBuffer(b);l.forEach((I,E)=>{let z=w[E],M=typeof I.data==\"number\"?[I.data]:I.data;if(I.type===6)new Int32Array($,z,M.length).set(M);else if(I.type===12)new Uint32Array($,z,M.length).set(M);else if(I.type===10)new Uint16Array($,z,M.length).set(M);else if(I.type===1)new Float32Array($,z,M.length).set(M);else throw new Error(`Unsupported uniform type: ${ke(I.type)}`)});let T=this.gpuDataManager.create(b,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(T.buffer,0,$,0,b),this.gpuDataManager.release(T.id),m={offset:0,size:b,buffer:T.buffer}}let h=this.programManager.normalizeDispatchGroupSize(d),_=h[1]===1&&h[2]===1,y=cp(t,n,_),g=this.programManager.getArtifact(y);if(g||(g=this.programManager.build(t,h),this.programManager.setArtifact(y,g),Z(\"info\",()=>`[artifact] key: ${y}, programName: ${t.name}`)),l&&g.uniformVariablesInfo){if(l.length!==g.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${g.uniformVariablesInfo.length}, got ${l.length} in program \"${g.programInfo.name}\".`);for(let b=0;b<l.length;b++){let w=l[b],v=w.type,$=typeof w.data==\"number\"?1:w.data.length,[T,I]=g.uniformVariablesInfo[b];if(v!==T||$!==I)throw new Error(`Uniform variable ${b} mismatch: expect type ${T} with size ${I}, got type ${v} with size ${$} in program \"${g.programInfo.name}\".`)}}if(Z(\"info\",()=>`[ProgramManager] run \"${t.name}\" (key=${y}) with ${h[0]}x${h[1]}x${h[2]}`),this.queryType!==\"none\"||this.sessionStatus===\"capturing\"){let b={kernelId:this.currentKernelId,programName:g.programInfo.name,inputTensorViews:n,outputTensorViews:p};this.pendingKernels.push(b),this.sessionStatus===\"capturing\"&&this.capturedPendingKernels.get(this.currentSessionId).push(b)}return this.programManager.run(g,a,f,h,m),ye(t.name),p}upload(t,n){this.gpuDataManager.upload(t,n)}memcpy(t,n){this.gpuDataManager.memcpy(t,n)}async download(t,n){await this.gpuDataManager.download(t,n)}alloc(t){return this.gpuDataManager.create(t).id}free(t){return this.gpuDataManager.release(t)}createKernel(t,n,r,o){let i=_u.get(t);if(!i)throw new Error(`kernel not implemented: ${t}`);let s={kernelType:t,kernelName:o,kernelEntry:i[0],attributes:[i[1],r]};this.kernels.set(n,s)}releaseKernel(t){let n=this.kernelPersistentData.get(t);if(n){for(let r of n)this.gpuDataManager.release(r.id);this.kernelPersistentData.delete(t)}this.kernelCustomData.delete(t),this.kernels.delete(t)}computeKernel(t,n,r){let o=this.kernels.get(t);if(!o)throw new Error(`kernel not created: ${t}`);let i=o.kernelType,s=o.kernelName,a=o.kernelEntry,u=o.attributes;if(this.currentKernelId!==null)throw new Error(`kernel \"[${i}] ${s}\" is not allowed to be called recursively`);this.currentKernelId=t,u[0]&&(u[1]=u[0](u[1]),u[0]=void 0),Z(\"info\",()=>`[WebGPU] Start to run kernel \"[${i}] ${s}\"...`);let d=this.env.debug;this.temporaryData=[];try{return d&&this.device.pushErrorScope(\"validation\"),a(n,u[1]),0}catch(l){return r.push(Promise.resolve(`[WebGPU] Kernel \"[${i}] ${s}\" failed. ${l}`)),1}finally{d&&r.push(this.device.popErrorScope().then(l=>l?`GPU validation error for kernel \"[${i}] ${s}\": ${l.message}`:null));for(let l of this.temporaryData)this.gpuDataManager.release(l.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(t,n,r,o){let i=this.sessionExternalDataMapping.get(t);i||(i=new Map,this.sessionExternalDataMapping.set(t,i));let s=i.get(n),a=this.gpuDataManager.registerExternalBuffer(r,o,s);return i.set(n,[a,r]),a}unregisterBuffers(t){let n=this.sessionExternalDataMapping.get(t);n&&(n.forEach(r=>this.gpuDataManager.unregisterExternalBuffer(r[0])),this.sessionExternalDataMapping.delete(t))}getBuffer(t){let n=this.gpuDataManager.get(t);if(!n)throw new Error(`no GPU data for buffer: ${t}`);return n.buffer}createDownloader(t,n,r){return async()=>{let o=await Wn(this,t,n);return Ft(o.buffer,r)}}writeTimestamp(t){this.queryType===\"inside-passes\"&&this.computePassEncoder.writeTimestamp(this.querySet,t)}setQueryType(){this.queryType=\"none\",(this.env.webgpu.profiling?.mode===\"default\"||(typeof this.env.trace>\"u\"?this.env.wasm.trace:this.env.trace))&&(this.device.features.has(\"chromium-experimental-timestamp-query-inside-passes\")?this.queryType=\"inside-passes\":this.device.features.has(\"timestamp-query\")&&(this.queryType=\"at-passes\"),this.queryType!==\"none\"&&typeof this.querySet>\"u\"&&(this.querySet=this.device.createQuerySet({type:\"timestamp\",count:this.maxDispatchNumber*2}),this.queryResolveBuffer=this.device.createBuffer({size:this.maxDispatchNumber*2*8,usage:GPUBufferUsage.COPY_SRC|GPUBufferUsage.QUERY_RESOLVE})))}captureBegin(){Z(\"info\",\"captureBegin\"),this.capturedCommandList.get(this.currentSessionId)||this.capturedCommandList.set(this.currentSessionId,[]),this.capturedPendingKernels.get(this.currentSessionId)||this.capturedPendingKernels.set(this.currentSessionId,[]),this.flush(),this.sessionStatus=\"capturing\"}captureEnd(){Z(\"info\",\"captureEnd\"),this.flush(),this.sessionStatus=\"default\"}replay(){Z(\"info\",\"replay\"),this.sessionStatus=\"replaying\";let t=this.capturedCommandList.get(this.currentSessionId),n=this.capturedPendingKernels.get(this.currentSessionId),r=t.length;this.pendingKernels=[];for(let o=0;o<r;o++){let i=this.getComputePassEncoder(),s=t[o];this.writeTimestamp(this.pendingDispatchNumber*2),i.setPipeline(s.computePipeline),i.setBindGroup(0,s.bindGroup),i.dispatchWorkgroups(...s.dispatchGroup),this.writeTimestamp(this.pendingDispatchNumber*2+1),this.pendingDispatchNumber++,this.queryType!==\"none\"&&this.pendingKernels.push(n[o]),(this.pendingDispatchNumber>=this.maxDispatchNumber||this.queryType===\"at-passes\")&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus=\"default\"}onCreateSession(){this.gpuDataManager.onCreateSession()}onReleaseSession(t){this.unregisterBuffers(t),this.capturedCommandList.has(t)&&this.capturedCommandList.delete(t),this.capturedPendingKernels.has(t)&&this.capturedPendingKernels.delete(t),this.gpuDataManager.onReleaseSession(t)}onRunStart(t){this.currentSessionId=t,this.setQueryType()}}});var Su={};rt(Su,{init:()=>pp});var vt,mr,pp,Tu=k(()=>{\"use strict\";N();Pe();H();_o();vt=class e{constructor(t,n,r,o){this.module=t;this.dataType=n;this.data=r;this.dims=o}getFloat32Array(){if(this.dataType!==1)throw new Error(\"Invalid data type\");let t=x.size(this.dims);return t===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,t)}getBigInt64Array(){if(this.dataType!==7)throw new Error(\"Invalid data type\");let t=x.size(this.dims);return t===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,t)}getInt32Array(){if(this.dataType!==6)throw new Error(\"Invalid data type\");let t=x.size(this.dims);return t===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,t)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error(\"Invalid data type\");let t=x.size(this.dims);return t===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,t)}reshape(t){if(x.size(t)!==x.size(this.dims))throw new Error(\"Invalid new shape\");return new e(this.module,this.dataType,this.data,t)}},mr=class{constructor(t,n,r){this.module=t;this.backend=n;this.customDataOffset=0;this.customDataSize=0;this.adapterInfo=n.adapterInfo;let o=t.PTR_SIZE,i=r/t.PTR_SIZE,s=o===4?\"i32\":\"i64\";this.opKernelContext=Number(t.getValue(o*i++,s));let a=Number(t.getValue(o*i++,s));this.outputCount=Number(t.getValue(o*i++,s)),this.customDataOffset=Number(t.getValue(o*i++,\"*\")),this.customDataSize=Number(t.getValue(o*i++,s));let u=[];for(let d=0;d<a;d++){let l=Number(t.getValue(o*i++,s)),c=Number(t.getValue(o*i++,\"*\")),p=Number(t.getValue(o*i++,s)),f=[];for(let m=0;m<p;m++)f.push(Number(t.getValue(o*i++,s)));u.push(new vt(t,l,c,f))}this.inputs=u}get kernelCustomData(){return this.backend.currentKernelCustomData}get customDataBuffer(){return this.module.HEAPU8.subarray(this.customDataOffset,this.customDataOffset+this.customDataSize)}compute(t,n){let r=n?.inputs?.map(a=>typeof a==\"number\"?this.inputs[a]:a)??this.inputs,o=n?.outputs??[],i=(a,u,d)=>new vt(this.module,u,this.output(a,d),d),s=(a,u)=>{let d=qe(a,u);if(!d)throw new Error(`Unsupported data type: ${a}`);let l=d>0?this.backend.gpuDataManager.create(d).id:0;return new vt(this.module,a,l,u)};return this.backend.run(t,r,o,i,s,this.outputCount)}output(t,n){let r=this.module.stackSave();try{let o=this.module.PTR_SIZE,i=o===4?\"i32\":\"i64\",s=this.module.stackAlloc((1+n.length)*o);this.module.setValue(s,n.length,i);for(let a=0;a<n.length;a++)this.module.setValue(s+o*(a+1),n[a],i);return this.module._JsepOutput(this.opKernelContext,t,s)}catch(o){throw new Error(`Failed to generate kernel's output[${t}] with dims [${n}]. If you are running with pre-allocated output, please make sure the output type/dims are correct. Error: ${o}`)}finally{this.module.stackRestore(r)}}},pp=async(e,t,n,r)=>{let o=t.jsepInit;if(!o)throw new Error(\"Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.\");if(e===\"webgpu\"){let i=(xu(),ct(vu)).WebGpuBackend,s=new i;await s.initialize(n,r),o(\"webgpu\",[s,a=>s.alloc(Number(a)),a=>s.free(a),(a,u,d,l=!1)=>{if(l)Z(\"verbose\",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(a)}, dst=${Number(u)}, size=${Number(d)}`),s.memcpy(Number(a),Number(u));else{Z(\"verbose\",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(a)}, gpuDataId=${Number(u)}, size=${Number(d)}`);let c=t.HEAPU8.subarray(Number(a>>>0),Number(a>>>0)+Number(d));s.upload(Number(u),c)}},async(a,u,d)=>{Z(\"verbose\",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${a}, dataOffset=${u}, size=${d}`),await s.download(Number(a),()=>t.HEAPU8.subarray(Number(u)>>>0,Number(u+d)>>>0))},(a,u,d)=>s.createKernel(a,Number(u),d,t.UTF8ToString(t._JsepGetNodeName(Number(u)))),a=>s.releaseKernel(a),(a,u,d,l)=>{Z(\"verbose\",()=>`[WebGPU] jsepRun: sessionHandle=${d}, kernel=${a}, contextDataOffset=${u}`);let c=new mr(t,s,Number(u));return s.computeKernel(Number(a),c,l)},()=>s.captureBegin(),()=>s.captureEnd(),()=>s.replay()])}else{let i=new Zt(n);o(\"webnn\",[i,()=>i.reserveTensorId(),s=>i.releaseTensorId(s),async(s,a,u,d,l)=>i.ensureTensor(s,a,u,d,l),(s,a)=>{i.uploadTensor(s,a)},async(s,a)=>i.downloadTensor(s,a),(s,a)=>i.registerMLContext(s,a),!!n.trace])}}});var mp,Pt,zt,tt,fp,Iu,ft,Bt,Dt,Cu,Ot,Mt,Ut,En=k(()=>{\"use strict\";we();io();ao();N();He();Nt();Dn();mp=(e,t)=>{ne()._OrtInit(e,t)!==0&&Y(\"Can't initialize onnxruntime.\")},Pt=async e=>{mp(e.wasm.numThreads,gt(e.logLevel))},zt=async(e,t)=>{ne().asyncInit?.();let n=e.webgpu.adapter;if(t===\"webgpu\"){if(typeof navigator>\"u\"||!navigator.gpu)throw new Error(\"WebGPU is not supported in current environment\");if(n){if(typeof n.limits!=\"object\"||typeof n.features!=\"object\"||typeof n.requestDevice!=\"function\")throw new Error(\"Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.\")}else{let r=e.webgpu.powerPreference;if(r!==void 0&&r!==\"low-power\"&&r!==\"high-performance\")throw new Error(`Invalid powerPreference setting: \"${r}\"`);let o=e.webgpu.forceFallbackAdapter;if(o!==void 0&&typeof o!=\"boolean\")throw new Error(`Invalid forceFallbackAdapter setting: \"${o}\"`);if(n=await navigator.gpu.requestAdapter({powerPreference:r,forceFallbackAdapter:o}),!n)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\");{let r=(Tu(),ct(Su)).init;t===\"webgpu\"&&await r(\"webgpu\",ne(),e,n),t===\"webnn\"&&await r(\"webnn\",ne(),e)}},tt=new Map,fp=e=>{let t=ne(),n=t.stackSave();try{let r=t.PTR_SIZE,o=t.stackAlloc(2*r);t._OrtGetInputOutputCount(e,o,o+r)!==0&&Y(\"Can't get session input/output count.\");let s=r===4?\"i32\":\"i64\";return[Number(t.getValue(o,s)),Number(t.getValue(o+r,s))]}finally{t.stackRestore(n)}},Iu=(e,t)=>{let n=ne(),r=n.stackSave(),o=0;try{let i=n.PTR_SIZE,s=n.stackAlloc(2*i);n._OrtGetInputOutputMetadata(e,t,s,s+i)!==0&&Y(\"Can't get session input/output metadata.\");let u=Number(n.getValue(s,\"*\"));o=Number(n.getValue(s+i,\"*\"));let d=n.HEAP32[o/4];if(d===0)return[u,0];let l=n.HEAPU32[o/4+1],c=[];for(let p=0;p<l;p++){let f=Number(n.getValue(o+8+p*i,\"*\"));c.push(f!==0?n.UTF8ToString(f):Number(n.getValue(o+8+(p+l)*i,\"*\")))}return[u,d,c]}finally{n.stackRestore(r),o!==0&&n._OrtFree(o)}},ft=e=>{let t=ne(),n=t._malloc(e.byteLength);if(n===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return t.HEAPU8.set(e,n),[n,e.byteLength]},Bt=async(e,t)=>{let n,r,o=ne();Array.isArray(e)?[n,r]=e:e.buffer===o.HEAPU8.buffer?[n,r]=[e.byteOffset,e.byteLength]:[n,r]=ft(e);let i=0,s=0,a=0,u=[],d=[],l=[];try{if([s,u]=await so(t),t?.externalData&&o.mountExternalData){let w=[];for(let v of t.externalData){let $=typeof v==\"string\"?v:v.path;w.push(yt(typeof v==\"string\"?v:v.data).then(T=>{o.mountExternalData($,T)}))}await Promise.all(w)}for(let w of t?.executionProviders??[])if((typeof w==\"string\"?w:w.name)===\"webnn\"){if(o.shouldTransferToMLTensor=!1,typeof w!=\"string\"){let $=w,T=$?.context,I=$?.gpuDevice,E=$?.deviceType,z=$?.powerPreference;T?o.currentContext=T:I?o.currentContext=await o.webnnCreateMLContext(I):o.currentContext=await o.webnnCreateMLContext({deviceType:E,powerPreference:z})}else o.currentContext=await o.webnnCreateMLContext();break}i=await o._OrtCreateSession(n,r,s),o.webgpuOnCreateSession?.(i),i===0&&Y(\"Can't create a session.\"),o.jsepOnCreateSession?.(),o.currentContext&&(o.webnnRegisterMLContext(i,o.currentContext),o.currentContext=void 0,o.shouldTransferToMLTensor=!0);let[c,p]=fp(i),f=!!t?.enableGraphCapture,m=[],h=[],_=[],y=[],g=[];for(let w=0;w<c;w++){let[v,$,T]=Iu(i,w);v===0&&Y(\"Can't get an input name.\"),d.push(v);let I=o.UTF8ToString(v);m.push(I),_.push($===0?{name:I,isTensor:!1}:{name:I,isTensor:!0,type:ke($),shape:T})}for(let w=0;w<p;w++){let[v,$,T]=Iu(i,w+c);v===0&&Y(\"Can't get an output name.\"),l.push(v);let I=o.UTF8ToString(v);h.push(I),y.push($===0?{name:I,isTensor:!1}:{name:I,isTensor:!0,type:ke($),shape:T});{if(f&&t?.preferredOutputLocation===void 0){g.push(\"gpu-buffer\");continue}let E=typeof t?.preferredOutputLocation==\"string\"?t.preferredOutputLocation:t?.preferredOutputLocation?.[I]??\"cpu\",z=o.webnnIsGraphOutput;if(E===\"cpu\"&&z&&z(i,I)){g.push(\"ml-tensor-cpu-output\");continue}if(E!==\"cpu\"&&E!==\"cpu-pinned\"&&E!==\"gpu-buffer\"&&E!==\"ml-tensor\")throw new Error(`Not supported preferred output location: ${E}.`);if(f&&E!==\"gpu-buffer\")throw new Error(`Not supported preferred output location: ${E}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);g.push(E)}}let b=null;return g.some(w=>w===\"gpu-buffer\"||w===\"ml-tensor\"||w===\"ml-tensor-cpu-output\")&&(a=o._OrtCreateBinding(i),a===0&&Y(\"Can't create IO binding.\"),b={handle:a,outputPreferredLocations:g,outputPreferredLocationsEncoded:g.map(w=>w===\"ml-tensor-cpu-output\"?\"ml-tensor\":w).map(w=>Bn(w))}),tt.set(i,[i,d,l,b,f,!1]),[i,m,h,_,y]}catch(c){throw d.forEach(p=>o._OrtFree(p)),l.forEach(p=>o._OrtFree(p)),a!==0&&o._OrtReleaseBinding(a)!==0&&Y(\"Can't release IO binding.\"),i!==0&&o._OrtReleaseSession(i)!==0&&Y(\"Can't release session.\"),c}finally{o._free(n),s!==0&&o._OrtReleaseSessionOptions(s)!==0&&Y(\"Can't release session options.\"),u.forEach(c=>o._free(c)),o.unmountExternalData?.()}},Dt=e=>{let t=ne(),n=tt.get(e);if(!n)throw new Error(`cannot release session. invalid session id: ${e}`);let[r,o,i,s,a]=n;s&&(a&&t._OrtClearBoundOutputs(s.handle)!==0&&Y(\"Can't clear bound outputs.\"),t._OrtReleaseBinding(s.handle)!==0&&Y(\"Can't release IO binding.\")),t.jsepOnReleaseSession?.(e),t.webnnOnReleaseSession?.(e),t.webgpuOnReleaseSession?.(e),o.forEach(u=>t._OrtFree(u)),i.forEach(u=>t._OrtFree(u)),t._OrtReleaseSession(r)!==0&&Y(\"Can't release session.\"),tt.delete(e)},Cu=async(e,t,n,r,o,i,s=!1)=>{if(!e){t.push(0);return}let a=ne(),u=a.PTR_SIZE,d=e[0],l=e[1],c=e[3],p=c,f,m;if(d===\"string\"&&(c===\"gpu-buffer\"||c===\"ml-tensor\"))throw new Error(\"String tensor is not supported on GPU.\");if(s&&c!==\"gpu-buffer\")throw new Error(`External buffer must be provided for input/output index ${i} when enableGraphCapture is true.`);if(c===\"gpu-buffer\"){let y=e[2].gpuBuffer;m=qe(Fe(d),l);{let g=a.jsepRegisterBuffer;if(!g)throw new Error('Tensor location \"gpu-buffer\" is not supported without using WebGPU.');f=g(r,i,y,m)}}else if(c===\"ml-tensor\"){let y=e[2].mlTensor;m=qe(Fe(d),l);let g=a.webnnRegisterMLTensor;if(!g)throw new Error('Tensor location \"ml-tensor\" is not supported without using WebNN.');f=g(r,y,Fe(d),l)}else{let y=e[2];if(Array.isArray(y)){m=u*y.length,f=a._malloc(m),n.push(f);for(let g=0;g<y.length;g++){if(typeof y[g]!=\"string\")throw new TypeError(`tensor data at index ${g} is not a string`);a.setValue(f+g*u,ve(y[g],n),\"*\")}}else{let g=a.webnnIsGraphInput,b=a.webnnIsGraphOutput;if(d!==\"string\"&&g&&b){let w=a.UTF8ToString(o);if(g(r,w)||b(r,w)){let v=Fe(d);m=qe(v,l),p=\"ml-tensor\";let $=a.webnnCreateTemporaryTensor,T=a.webnnUploadTensor;if(!$||!T)throw new Error('Tensor location \"ml-tensor\" is not supported without using WebNN.');let I=await $(r,v,l);T(I,new Uint8Array(y.buffer,y.byteOffset,y.byteLength)),f=I}else m=y.byteLength,f=a._malloc(m),n.push(f),a.HEAPU8.set(new Uint8Array(y.buffer,y.byteOffset,m),f)}else m=y.byteLength,f=a._malloc(m),n.push(f),a.HEAPU8.set(new Uint8Array(y.buffer,y.byteOffset,m),f)}}let h=a.stackSave(),_=a.stackAlloc(4*l.length);try{l.forEach((g,b)=>a.setValue(_+b*u,g,u===4?\"i32\":\"i64\"));let y=a._OrtCreateTensor(Fe(d),f,m,_,l.length,Bn(p));y===0&&Y(`Can't create tensor for input/output. session=${r}, index=${i}.`),t.push(y)}finally{a.stackRestore(h)}},Ot=async(e,t,n,r,o,i)=>{let s=ne(),a=s.PTR_SIZE,u=tt.get(e);if(!u)throw new Error(`cannot run inference. invalid session id: ${e}`);let d=u[0],l=u[1],c=u[2],p=u[3],f=u[4],m=u[5],h=t.length,_=r.length,y=0,g=[],b=[],w=[],v=[],$=[],T=s.stackSave(),I=s.stackAlloc(h*a),E=s.stackAlloc(h*a),z=s.stackAlloc(_*a),M=s.stackAlloc(_*a);try{[y,g]=oo(i),Re(\"wasm prepareInputOutputTensor\");for(let U=0;U<h;U++)await Cu(n[U],b,v,e,l[t[U]],t[U],f);for(let U=0;U<_;U++)await Cu(o[U],w,v,e,c[r[U]],h+r[U],f);Ve(\"wasm prepareInputOutputTensor\");for(let U=0;U<h;U++)s.setValue(I+U*a,b[U],\"*\"),s.setValue(E+U*a,l[t[U]],\"*\");for(let U=0;U<_;U++)s.setValue(z+U*a,w[U],\"*\"),s.setValue(M+U*a,c[r[U]],\"*\");if(p&&!m){let{handle:U,outputPreferredLocations:R,outputPreferredLocationsEncoded:G}=p;if(l.length!==h)throw new Error(`input count from feeds (${h}) is expected to be always equal to model's input count (${l.length}).`);Re(\"wasm bindInputsOutputs\");for(let V=0;V<h;V++){let j=t[V];await s._OrtBindInput(U,l[j],b[V])!==0&&Y(`Can't bind input[${V}] for session=${e}.`)}for(let V=0;V<_;V++){let j=r[V];o[V]?.[3]?($.push(w[V]),s._OrtBindOutput(U,c[j],w[V],0)!==0&&Y(`Can't bind pre-allocated output[${V}] for session=${e}.`)):s._OrtBindOutput(U,c[j],0,G[j])!==0&&Y(`Can't bind output[${V}] to ${R[V]} for session=${e}.`)}Ve(\"wasm bindInputsOutputs\"),tt.set(e,[d,l,c,p,f,!0])}s.jsepOnRunStart?.(d),s.webnnOnRunStart?.(d);let O;p?O=await s._OrtRunWithBinding(d,p.handle,_,z,y):O=await s._OrtRun(d,E,I,h,M,_,z,y),O!==0&&Y(\"failed to call OrtRun().\");let W=[],K=[];Re(\"wasm ProcessOutputTensor\");for(let U=0;U<_;U++){let R=Number(s.getValue(z+U*a,\"*\"));if(R===w[U]||$.includes(w[U])){W.push(o[U]),R!==w[U]&&s._OrtReleaseTensor(R)!==0&&Y(\"Can't release tensor.\");continue}let G=s.stackSave(),V=s.stackAlloc(4*a),j=!1,Q,X=0;try{s._OrtGetTensorData(R,V,V+a,V+2*a,V+3*a)!==0&&Y(`Can't access output tensor data on index ${U}.`);let se=a===4?\"i32\":\"i64\",A=Number(s.getValue(V,se));X=s.getValue(V+a,\"*\");let B=s.getValue(V+a*2,\"*\"),oe=Number(s.getValue(V+a*3,se)),he=[];for(let ie=0;ie<oe;ie++)he.push(Number(s.getValue(B+ie*a,se)));s._OrtFree(B)!==0&&Y(\"Can't free memory for tensor dims.\");let ae=he.reduce((ie,de)=>ie*de,1);Q=ke(A);let ge=p?.outputPreferredLocations[r[U]];if(Q===\"string\"){if(ge===\"gpu-buffer\"||ge===\"ml-tensor\")throw new Error(\"String tensor is not supported on GPU.\");let ie=[];for(let de=0;de<ae;de++){let We=s.getValue(X+de*a,\"*\"),St=s.getValue(X+(de+1)*a,\"*\"),yr=de===ae-1?void 0:St-We;ie.push(s.UTF8ToString(We,yr))}W.push([Q,he,ie,\"cpu\"])}else if(ge===\"gpu-buffer\"&&ae>0){let ie=s.jsepGetBuffer;if(!ie)throw new Error('preferredLocation \"gpu-buffer\" is not supported without using WebGPU.');let de=ie(X),We=qe(A,ae);if(We===void 0||!Lt(Q))throw new Error(`Unsupported data type: ${Q}`);j=!0,W.push([Q,he,{gpuBuffer:de,download:s.jsepCreateDownloader(de,We,Q),dispose:()=>{s._OrtReleaseTensor(R)!==0&&Y(\"Can't release tensor.\")}},\"gpu-buffer\"])}else if(ge===\"ml-tensor\"&&ae>0){let ie=s.webnnEnsureTensor,de=s.webnnIsGraphInputOutputTypeSupported;if(!ie||!de)throw new Error('preferredLocation \"ml-tensor\" is not supported without using WebNN.');if(qe(A,ae)===void 0||!Wt(Q))throw new Error(`Unsupported data type: ${Q}`);if(!de(e,Q,!1))throw new Error(`preferredLocation \"ml-tensor\" for ${Q} output is not supported by current WebNN Context.`);let St=await ie(e,X,A,he,!1);j=!0,W.push([Q,he,{mlTensor:St,download:s.webnnCreateMLTensorDownloader(X,Q),dispose:()=>{s.webnnReleaseTensorId(X),s._OrtReleaseTensor(R)}},\"ml-tensor\"])}else if(ge===\"ml-tensor-cpu-output\"&&ae>0){let ie=s.webnnCreateMLTensorDownloader(X,Q)(),de=W.length;j=!0,K.push((async()=>{let We=[de,await ie];return s.webnnReleaseTensorId(X),s._OrtReleaseTensor(R),We})()),W.push([Q,he,[],\"cpu\"])}else{let ie=it(Q),de=new ie(ae);new Uint8Array(de.buffer,de.byteOffset,de.byteLength).set(s.HEAPU8.subarray(X,X+de.byteLength)),W.push([Q,he,de,\"cpu\"])}}finally{s.stackRestore(G),Q===\"string\"&&X&&s._free(X),j||s._OrtReleaseTensor(R)}}p&&!f&&(s._OrtClearBoundOutputs(p.handle)!==0&&Y(\"Can't clear bound outputs.\"),tt.set(e,[d,l,c,p,f,!1]));for(let[U,R]of await Promise.all(K))W[U][2]=R;return Ve(\"wasm ProcessOutputTensor\"),W}finally{s.webnnOnRunEnd?.(d),s.stackRestore(T),b.forEach(O=>s._OrtReleaseTensor(O)),w.forEach(O=>s._OrtReleaseTensor(O)),v.forEach(O=>s._free(O)),y!==0&&s._OrtReleaseRunOptions(y),g.forEach(O=>s._free(O))}},Mt=e=>{let t=ne(),n=tt.get(e);if(!n)throw new Error(\"invalid session id\");let r=n[0],o=t._OrtEndProfiling(r);o===0&&Y(\"Can't get an profile file name.\"),t._OrtFree(o)},Ut=e=>{let t=[];for(let n of e){let r=n[2];!Array.isArray(r)&&\"buffer\"in r&&t.push(r.buffer)}return t}});var nt,Se,xt,yn,bn,gn,fr,hr,dt,lt,gp,Au,Eu,ku,Pu,zu,Bu,Du,gr=k(()=>{\"use strict\";we();En();He();Et();nt=()=>!!te.wasm.proxy&&typeof document<\"u\",xt=!1,yn=!1,bn=!1,hr=new Map,dt=(e,t)=>{let n=hr.get(e);n?n.push(t):hr.set(e,[t])},lt=()=>{if(xt||!yn||bn||!Se)throw new Error(\"worker not ready\")},gp=e=>{switch(e.data.type){case\"init-wasm\":xt=!1,e.data.err?(bn=!0,fr[1](e.data.err)):(yn=!0,fr[0]()),gn&&(URL.revokeObjectURL(gn),gn=void 0);break;case\"init-ep\":case\"copy-from\":case\"create\":case\"release\":case\"run\":case\"end-profiling\":{let t=hr.get(e.data.type);e.data.err?t.shift()[1](e.data.err):t.shift()[0](e.data.out);break}default:}},Au=async()=>{if(!yn){if(xt)throw new Error(\"multiple calls to 'initWasm()' detected.\");if(bn)throw new Error(\"previous call to 'initWasm()' failed.\");if(xt=!0,nt())return new Promise((e,t)=>{Se?.terminate(),to().then(([n,r])=>{try{Se=r,Se.onerror=i=>t(i),Se.onmessage=gp,fr=[e,t];let o={type:\"init-wasm\",in:te};if(!o.in.wasm.wasmPaths&&n){let i=Rt();i&&(o.in.wasm.wasmPaths=i)}Se.postMessage(o),gn=n}catch(o){t(o)}},t)});try{await kt(te.wasm),await Pt(te),yn=!0}catch(e){throw bn=!0,e}finally{xt=!1}}},Eu=async e=>{if(nt())return lt(),new Promise((t,n)=>{dt(\"init-ep\",[t,n]);let r={type:\"init-ep\",in:{epName:e,env:te}};Se.postMessage(r)});await zt(te,e)},ku=async e=>nt()?(lt(),new Promise((t,n)=>{dt(\"copy-from\",[t,n]);let r={type:\"copy-from\",in:{buffer:e}};Se.postMessage(r,[e.buffer])})):ft(e),Pu=async(e,t)=>{if(nt()){if(t?.preferredOutputLocation)throw new Error('session option \"preferredOutputLocation\" is not supported for proxy.');return lt(),new Promise((n,r)=>{dt(\"create\",[n,r]);let o={type:\"create\",in:{model:e,options:{...t}}},i=[];e instanceof Uint8Array&&i.push(e.buffer),Se.postMessage(o,i)})}else return Bt(e,t)},zu=async e=>{if(nt())return lt(),new Promise((t,n)=>{dt(\"release\",[t,n]);let r={type:\"release\",in:e};Se.postMessage(r)});Dt(e)},Bu=async(e,t,n,r,o,i)=>{if(nt()){if(n.some(s=>s[3]!==\"cpu\"))throw new Error(\"input tensor on GPU is not supported for proxy.\");if(o.some(s=>s))throw new Error(\"pre-allocated output tensor is not supported for proxy.\");return lt(),new Promise((s,a)=>{dt(\"run\",[s,a]);let u=n,d={type:\"run\",in:{sessionId:e,inputIndices:t,inputs:u,outputIndices:r,options:i}};Se.postMessage(d,Ut(u))})}else return Ot(e,t,n,r,o,i)},Du=async e=>{if(nt())return lt(),new Promise((t,n)=>{dt(\"end-profiling\",[t,n]);let r={type:\"end-profiling\",in:e};Se.postMessage(r)});Mt(e)}});var Ou,yp,_n,Mu=k(()=>{\"use strict\";we();gr();N();At();Dn();Ou=(e,t)=>{switch(e.location){case\"cpu\":return[e.type,e.dims,e.data,\"cpu\"];case\"gpu-buffer\":return[e.type,e.dims,{gpuBuffer:e.gpuBuffer},\"gpu-buffer\"];case\"ml-tensor\":return[e.type,e.dims,{mlTensor:e.mlTensor},\"ml-tensor\"];default:throw new Error(`invalid data location: ${e.location} for ${t()}`)}},yp=e=>{switch(e[3]){case\"cpu\":return new xe(e[0],e[2],e[1]);case\"gpu-buffer\":{let t=e[0];if(!Lt(t))throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);let{gpuBuffer:n,download:r,dispose:o}=e[2];return xe.fromGpuBuffer(n,{dataType:t,dims:e[1],download:r,dispose:o})}case\"ml-tensor\":{let t=e[0];if(!Wt(t))throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);let{mlTensor:n,download:r,dispose:o}=e[2];return xe.fromMLTensor(n,{dataType:t,dims:e[1],download:r,dispose:o})}default:throw new Error(`invalid data location: ${e[3]}`)}},_n=class{async fetchModelAndCopyToWasmMemory(t){return ku(await yt(t))}async loadModel(t,n){be();let r;typeof t==\"string\"?r=await this.fetchModelAndCopyToWasmMemory(t):r=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await Pu(r,n),ye()}async dispose(){return zu(this.sessionId)}async run(t,n,r){be();let o=[],i=[];Object.entries(t).forEach(p=>{let f=p[0],m=p[1],h=this.inputNames.indexOf(f);if(h===-1)throw new Error(`invalid input '${f}'`);o.push(m),i.push(h)});let s=[],a=[];Object.entries(n).forEach(p=>{let f=p[0],m=p[1],h=this.outputNames.indexOf(f);if(h===-1)throw new Error(`invalid output '${f}'`);s.push(m),a.push(h)});let u=o.map((p,f)=>Ou(p,()=>`input \"${this.inputNames[i[f]]}\"`)),d=s.map((p,f)=>p?Ou(p,()=>`output \"${this.outputNames[a[f]]}\"`):null),l=await Bu(this.sessionId,i,u,a,d,r),c={};for(let p=0;p<l.length;p++)c[this.outputNames[a[p]]]=s[p]??yp(l[p]);return ye(),c}startProfiling(){}endProfiling(){Du(this.sessionId)}}});var Ru={};rt(Ru,{OnnxruntimeWebAssemblyBackend:()=>wn,initializeFlags:()=>Uu,wasmBackend:()=>bp});var Uu,wn,bp,Vu=k(()=>{\"use strict\";we();gr();Mu();Uu=()=>{(typeof te.wasm.initTimeout!=\"number\"||te.wasm.initTimeout<0)&&(te.wasm.initTimeout=0);let e=te.wasm.simd;if(typeof e!=\"boolean\"&&e!==void 0&&e!==\"fixed\"&&e!==\"relaxed\"&&(console.warn(`Property \"env.wasm.simd\" is set to unknown value \"${e}\". Reset it to \\`false\\` and ignore SIMD feature checking.`),te.wasm.simd=!1),typeof te.wasm.proxy!=\"boolean\"&&(te.wasm.proxy=!1),typeof te.wasm.trace!=\"boolean\"&&(te.wasm.trace=!1),typeof te.wasm.numThreads!=\"number\"||!Number.isInteger(te.wasm.numThreads)||te.wasm.numThreads<=0)if(typeof self<\"u\"&&!self.crossOriginIsolated)te.wasm.numThreads=1;else{let t=typeof navigator>\"u\"?vn(\"node:os\").cpus().length:navigator.hardwareConcurrency;te.wasm.numThreads=Math.min(4,Math.ceil((t||1)/2))}},wn=class{async init(t){Uu(),await Au(),await Eu(t)}async createInferenceSessionHandler(t,n){let r=new _n;return await r.loadModel(t,n),r}},bp=new wn});var wp={};rt(wp,{InferenceSession:()=>Lr,TRACE:()=>mt,TRACE_EVENT_BEGIN:()=>Re,TRACE_EVENT_END:()=>Ve,TRACE_FUNC_BEGIN:()=>be,TRACE_FUNC_END:()=>ye,Tensor:()=>xe,default:()=>_p,env:()=>te,registerBackend:()=>Ge});we();we();we();var Kr=\"1.26.0\";var _p=An;{let e=(Vu(),ct(Ru)).wasmBackend;Ge(\"webgpu\",e,5),Ge(\"webnn\",e,5),Ge(\"cpu\",e,10),Ge(\"wasm\",e,10)}Object.defineProperty(te.versions,\"web\",{value:Kr,enumerable:!0});return ct(wp);})();\n/**\n * @license\n * Copyright 2021 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\ntypeof exports==\"object\"&&typeof module==\"object\"&&(module.exports=ort);\n//# sourceMappingURL=ort.min.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=common.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SileroLegacy = void 0;\nconst logging_1 = require(\"../logging\");\nclass SileroLegacy {\n constructor(ortInstance, _session, _h, _c, _sr) {\n this.ortInstance = ortInstance;\n this._session = _session;\n this._h = _h;\n this._c = _c;\n this._sr = _sr;\n this.reset_state = () => {\n const zeroes = Array(2 * 64).fill(0);\n this._h = new this.ortInstance.Tensor(\"float32\", zeroes, [2, 1, 64]);\n this._c = new this.ortInstance.Tensor(\"float32\", zeroes, [2, 1, 64]);\n };\n this.process = async (audioFrame) => {\n const t = new this.ortInstance.Tensor(\"float32\", audioFrame, [\n 1,\n audioFrame.length,\n ]);\n const inputs = {\n input: t,\n h: this._h,\n c: this._c,\n sr: this._sr,\n };\n const out = await this._session.run(inputs);\n this._h = out[\"hn\"];\n this._c = out[\"cn\"];\n const [isSpeech] = out[\"output\"]?.data;\n const notSpeech = 1 - isSpeech;\n return { notSpeech, isSpeech };\n };\n this.release = async () => {\n await this._session.release();\n this._h.dispose();\n this._c.dispose();\n this._sr.dispose();\n };\n }\n}\nexports.SileroLegacy = SileroLegacy;\n_a = SileroLegacy;\nSileroLegacy.new = async (ortInstance, modelFetcher) => {\n logging_1.log.debug(\"initializing vad\");\n const modelArrayBuffer = await modelFetcher();\n const _session = await ortInstance.InferenceSession.create(modelArrayBuffer);\n const _sr = new ortInstance.Tensor(\"int64\", [16000n]);\n const zeroes = Array(2 * 64).fill(0);\n const _h = new ortInstance.Tensor(\"float32\", zeroes, [2, 1, 64]);\n const _c = new ortInstance.Tensor(\"float32\", zeroes, [2, 1, 64]);\n logging_1.log.debug(\"vad is initialized\");\n const model = new _a(ortInstance, _session, _h, _c, _sr);\n return model;\n};\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SileroV5 = void 0;\nconst logging_1 = require(\"../logging\");\nfunction getNewState(ortInstance) {\n const zeroes = Array(2 * 128).fill(0);\n return new ortInstance.Tensor(\"float32\", zeroes, [2, 1, 128]);\n}\nclass SileroV5 {\n constructor(_session, _state, _sr, ortInstance) {\n this._session = _session;\n this._state = _state;\n this._sr = _sr;\n this.ortInstance = ortInstance;\n this.reset_state = () => {\n this._state = getNewState(this.ortInstance);\n };\n this.process = async (audioFrame) => {\n const t = new this.ortInstance.Tensor(\"float32\", audioFrame, [\n 1,\n audioFrame.length,\n ]);\n const inputs = {\n input: t,\n state: this._state,\n sr: this._sr,\n };\n const out = await this._session.run(inputs);\n if (!out[\"stateN\"]) {\n throw new Error(\"No state from model\");\n }\n this._state = out[\"stateN\"];\n if (!out[\"output\"]?.data) {\n throw new Error(\"No output from model\");\n }\n const isSpeech = out[\"output\"].data[0];\n if (typeof isSpeech != \"number\") {\n throw new Error(\"Weird output data\");\n }\n const notSpeech = 1 - isSpeech;\n return { notSpeech, isSpeech };\n };\n this.release = async () => {\n await this._session.release();\n this._state.dispose();\n this._sr.dispose();\n };\n }\n}\nexports.SileroV5 = SileroV5;\n_a = SileroV5;\nSileroV5.new = async (ortInstance, modelFetcher) => {\n logging_1.log.debug(\"Loading VAD...\");\n const modelArrayBuffer = await modelFetcher();\n const _session = await ortInstance.InferenceSession.create(modelArrayBuffer);\n const _sr = new ortInstance.Tensor(\"int64\", [16000n]);\n const _state = getNewState(ortInstance);\n logging_1.log.debug(\"...finished loading VAD\");\n return new _a(_session, _state, _sr, ortInstance);\n};\n//# sourceMappingURL=v5.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SileroV5 = exports.SileroLegacy = void 0;\n__exportStar(require(\"./common\"), exports);\nvar legacy_1 = require(\"./legacy\");\nObject.defineProperty(exports, \"SileroLegacy\", { enumerable: true, get: function () { return legacy_1.SileroLegacy; } });\nvar v5_1 = require(\"./v5\");\nObject.defineProperty(exports, \"SileroV5\", { enumerable: true, get: function () { return v5_1.SileroV5; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Resampler = void 0;\nconst logging_1 = require(\"./logging\");\nclass Resampler {\n constructor(options) {\n this.options = options;\n this.process = (audioFrame) => {\n const outputFrames = [];\n for (const sample of audioFrame) {\n this.inputBuffer.push(sample);\n while (this.hasEnoughDataForFrame()) {\n const outputFrame = this.generateOutputFrame();\n outputFrames.push(outputFrame);\n }\n }\n return outputFrames;\n };\n if (options.nativeSampleRate < 16000) {\n logging_1.log.error(\"nativeSampleRate is too low. Should have 16000 = targetSampleRate <= nativeSampleRate\");\n }\n this.inputBuffer = [];\n }\n async *stream(audioInput) {\n for (const sample of audioInput) {\n this.inputBuffer.push(sample);\n while (this.hasEnoughDataForFrame()) {\n const outputFrame = this.generateOutputFrame();\n yield outputFrame;\n }\n }\n }\n hasEnoughDataForFrame() {\n return ((this.inputBuffer.length * this.options.targetSampleRate) /\n this.options.nativeSampleRate >=\n this.options.targetFrameSize);\n }\n generateOutputFrame() {\n const outputFrame = new Float32Array(this.options.targetFrameSize);\n let outputIndex = 0;\n let inputIndex = 0;\n while (outputIndex < this.options.targetFrameSize) {\n let sum = 0;\n let num = 0;\n while (inputIndex <\n Math.min(this.inputBuffer.length, ((outputIndex + 1) * this.options.nativeSampleRate) /\n this.options.targetSampleRate)) {\n const value = this.inputBuffer[inputIndex];\n if (value !== undefined) {\n sum += value;\n num++;\n }\n inputIndex++;\n }\n outputFrame[outputIndex] = sum / num;\n outputIndex++;\n }\n this.inputBuffer = this.inputBuffer.slice(inputIndex);\n return outputFrame;\n }\n}\nexports.Resampler = Resampler;\n//# sourceMappingURL=resampler.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonRealTimeVAD = exports.defaultNonRealTimeVADOptions = void 0;\nconst ortInstance = __importStar(require(\"onnxruntime-web\"));\nconst asset_path_1 = require(\"./asset-path\");\nconst default_model_fetcher_1 = require(\"./default-model-fetcher\");\nconst frame_processor_1 = require(\"./frame-processor\");\nconst messages_1 = require(\"./messages\");\nconst models_1 = require(\"./models\");\nconst resampler_1 = require(\"./resampler\");\nexports.defaultNonRealTimeVADOptions = {\n ...frame_processor_1.defaultFrameProcessorOptions,\n modelURL: asset_path_1.baseAssetPath + \"silero_vad_legacy.onnx\",\n modelFetcher: default_model_fetcher_1.defaultModelFetcher,\n};\nclass NonRealTimeVAD {\n static async new(options = {}) {\n const fullOptions = {\n ...exports.defaultNonRealTimeVADOptions,\n ...options,\n };\n (0, frame_processor_1.validateOptions)(fullOptions);\n if (fullOptions.ortConfig !== undefined) {\n fullOptions.ortConfig(ortInstance);\n }\n const modelFetcher = () => fullOptions.modelFetcher(fullOptions.modelURL);\n const model = await models_1.SileroLegacy.new(ortInstance, modelFetcher);\n const frameProcessor = new frame_processor_1.FrameProcessor(model.process, model.reset_state, {\n positiveSpeechThreshold: fullOptions.positiveSpeechThreshold,\n negativeSpeechThreshold: fullOptions.negativeSpeechThreshold,\n redemptionMs: fullOptions.redemptionMs,\n preSpeechPadMs: fullOptions.preSpeechPadMs,\n minSpeechMs: fullOptions.minSpeechMs,\n submitUserSpeechOnPause: fullOptions.submitUserSpeechOnPause,\n }, 1536 / 16);\n frameProcessor.resume();\n const vad = new this(modelFetcher, ortInstance, fullOptions, frameProcessor);\n return vad;\n }\n constructor(modelFetcher, ort, options, frameProcessor) {\n this.modelFetcher = modelFetcher;\n this.ort = ort;\n this.options = options;\n this.frameProcessor = frameProcessor;\n this.frameSamples = 1536;\n }\n async *run(inputAudio, sampleRate) {\n const resamplerOptions = {\n nativeSampleRate: sampleRate,\n targetSampleRate: 16000,\n targetFrameSize: this.frameSamples,\n };\n const resampler = new resampler_1.Resampler(resamplerOptions);\n let start = 0;\n let end = 0;\n let frameIndex = 0;\n for await (const frame of resampler.stream(inputAudio)) {\n const messageContainer = [];\n await this.frameProcessor.process(frame, (event) => {\n messageContainer.push(event);\n });\n for (const event of messageContainer) {\n switch (event.msg) {\n case messages_1.Message.SpeechStart:\n start = (frameIndex * this.frameSamples) / 16;\n break;\n case messages_1.Message.SpeechEnd:\n end = ((frameIndex + 1) * this.frameSamples) / 16;\n yield { audio: event.audio, start, end };\n break;\n default:\n break;\n }\n }\n frameIndex++;\n }\n const messageContainer = [];\n this.frameProcessor.endSegment((event) => {\n messageContainer.push(event);\n });\n for (const event of messageContainer) {\n switch (event.msg) {\n case messages_1.Message.SpeechEnd:\n yield {\n audio: event.audio,\n start,\n end: (frameIndex * this.frameSamples) / 16,\n };\n }\n }\n }\n}\nexports.NonRealTimeVAD = NonRealTimeVAD;\n//# sourceMappingURL=non-real-time-vad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.audioFileToArray = exports.encodeWAV = exports.arrayBufferToBase64 = exports.minFramesForTargetMS = void 0;\nfunction minFramesForTargetMS(targetDuration, frameSamples, sr = 16000) {\n return Math.ceil((targetDuration * sr) / 1000 / frameSamples);\n}\nexports.minFramesForTargetMS = minFramesForTargetMS;\nfunction arrayBufferToBase64(buffer) {\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n const binary = new Array(len);\n for (let i = 0; i < len; i++) {\n const byte = bytes[i];\n if (byte === undefined) {\n break;\n }\n binary[i] = String.fromCharCode(byte);\n }\n return btoa(binary.join(\"\"));\n}\nexports.arrayBufferToBase64 = arrayBufferToBase64;\n/*\nThis rest of this was mostly copied from https://github.com/linto-ai/WebVoiceSDK\n*/\nfunction encodeWAV(samples, format = 3, sampleRate = 16000, numChannels = 1, bitDepth = 32) {\n const bytesPerSample = bitDepth / 8;\n const blockAlign = numChannels * bytesPerSample;\n const buffer = new ArrayBuffer(44 + samples.length * bytesPerSample);\n const view = new DataView(buffer);\n /* RIFF identifier */\n writeString(view, 0, \"RIFF\");\n /* RIFF chunk length */\n view.setUint32(4, 36 + samples.length * bytesPerSample, true);\n /* RIFF type */\n writeString(view, 8, \"WAVE\");\n /* format chunk identifier */\n writeString(view, 12, \"fmt \");\n /* format chunk length */\n view.setUint32(16, 16, true);\n /* sample format (raw) */\n view.setUint16(20, format, true);\n /* channel count */\n view.setUint16(22, numChannels, true);\n /* sample rate */\n view.setUint32(24, sampleRate, true);\n /* byte rate (sample rate * block align) */\n view.setUint32(28, sampleRate * blockAlign, true);\n /* block align (channel count * bytes per sample) */\n view.setUint16(32, blockAlign, true);\n /* bits per sample */\n view.setUint16(34, bitDepth, true);\n /* data chunk identifier */\n writeString(view, 36, \"data\");\n /* data chunk length */\n view.setUint32(40, samples.length * bytesPerSample, true);\n if (format === 1) {\n // Raw PCM\n floatTo16BitPCM(view, 44, samples);\n }\n else {\n writeFloat32(view, 44, samples);\n }\n return buffer;\n}\nexports.encodeWAV = encodeWAV;\nfunction writeFloat32(output, offset, input) {\n for (let i = 0; i < input.length; i++, offset += 4) {\n output.setFloat32(offset, input[i], true);\n }\n}\nfunction floatTo16BitPCM(output, offset, input) {\n for (let i = 0; i < input.length; i++, offset += 2) {\n const s = Math.max(-1, Math.min(1, input[i]));\n output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);\n }\n}\nfunction writeString(view, offset, string) {\n for (let i = 0; i < string.length; i++) {\n view.setUint8(offset + i, string.charCodeAt(i));\n }\n}\nasync function audioFileToArray(audioFileData) {\n const ctx = new OfflineAudioContext(1, 1, 44100);\n const reader = new FileReader();\n let audioBuffer = null;\n await new Promise((res) => {\n reader.addEventListener(\"loadend\", () => {\n const audioData = reader.result;\n void ctx.decodeAudioData(audioData, (buffer) => {\n audioBuffer = buffer;\n ctx\n .startRendering()\n .then(() => {\n console.log(\"Rendering completed successfully\");\n res();\n })\n .catch((err) => {\n console.error(\"Rendering failed: \", err);\n });\n }, (e) => {\n console.log(\"Error with decoding audio data: \", e);\n });\n });\n reader.readAsArrayBuffer(audioFileData);\n });\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (audioBuffer === null) {\n throw Error(\"some shit\");\n }\n const _audioBuffer = audioBuffer;\n const out = new Float32Array(_audioBuffer.length);\n for (let i = 0; i < _audioBuffer.length; i++) {\n for (let j = 0; j < _audioBuffer.numberOfChannels; j++) {\n const sample = _audioBuffer.getChannelData(j)[i];\n const current = out[i];\n if (sample === undefined || current === undefined) {\n throw new Error(\"sample or out[i] is undefined\");\n }\n out[i] = current + sample;\n }\n }\n return { audio: out, sampleRate: _audioBuffer.sampleRate };\n}\nexports.audioFileToArray = audioFileToArray;\n//# sourceMappingURL=utils.js.map","/*!\n * ONNX Runtime Web v1.26.0\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\"use strict\";var ort=(()=>{var Je=Object.defineProperty;var Bn=Object.getOwnPropertyDescriptor;var Ln=Object.getOwnPropertyNames;var Pn=Object.prototype.hasOwnProperty;var qe=(e=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(e,{get:(t,n)=>(typeof require<\"u\"?require:t)[n]}):e)(function(e){if(typeof require<\"u\")return require.apply(this,arguments);throw Error('Dynamic require of \"'+e+'\" is not supported')});var E=(e,t)=>()=>(e&&(t=e(e=0)),t);var Se=(e,t)=>{for(var n in t)Je(e,n,{get:t[n],enumerable:!0})},_n=(e,t,n,o)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let r of Ln(t))!Pn.call(e,r)&&r!==n&&Je(e,r,{get:()=>t[r],enumerable:!(o=Bn(t,r))||o.enumerable});return e};var Ye=e=>_n(Je({},\"__esModule\",{value:!0}),e);var Te,K,se,Dn,bt,Ze=E(()=>{\"use strict\";Te=new Map,K=[],se=(e,t,n)=>{if(t&&typeof t.init==\"function\"&&typeof t.createInferenceSessionHandler==\"function\"){let o=Te.get(e);if(o===void 0)Te.set(e,{backend:t,priority:n});else{if(o.priority>n)return;if(o.priority===n&&o.backend!==t)throw new Error(`cannot register backend \"${e}\" using priority ${n}`)}if(n>=0){let r=K.indexOf(e);r!==-1&&K.splice(r,1);for(let i=0;i<K.length;i++)if(Te.get(K[i]).priority<=n){K.splice(i,0,e);return}K.push(e)}return}throw new TypeError(\"not a valid backend\")},Dn=async e=>{let t=Te.get(e);if(!t)return\"backend not found.\";if(t.initialized)return t.backend;if(t.aborted)return t.error;{let n=!!t.initPromise;try{return n||(t.initPromise=t.backend.init(e)),await t.initPromise,t.initialized=!0,t.backend}catch(o){return n||(t.error=`${o}`,t.aborted=!0),t.error}finally{delete t.initPromise}}},bt=async e=>{let t=e.executionProviders||[],n=t.map(u=>typeof u==\"string\"?u:u.name),o=n.length===0?K:n,r,i=[],s=new Set;for(let u of o){let f=await Dn(u);typeof f==\"string\"?i.push({name:u,err:f}):(r||(r=f),r===f&&s.add(u))}if(!r)throw new Error(`no available backend found. ERR: ${i.map(u=>`[${u.name}] ${u.err}`).join(\", \")}`);for(let{name:u,err:f}of i)n.includes(u)&&console.warn(`removing requested execution provider \"${u}\" from session options because it is not available: ${f}`);let a=t.filter(u=>s.has(typeof u==\"string\"?u:u.name));return[r,new Proxy(e,{get:(u,f)=>f===\"executionProviders\"?a:Reflect.get(u,f)})]}});var yt=E(()=>{\"use strict\";Ze()});var gt,Et=E(()=>{\"use strict\";gt=\"1.26.0\"});var St,_,Xe=E(()=>{\"use strict\";Et();St=\"warning\",_={wasm:{},webgl:{},webgpu:{},versions:{common:gt},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}`);St=e}},get logLevel(){return St}};Object.defineProperty(_,\"logLevel\",{enumerable:!0})});var A,Tt=E(()=>{\"use strict\";Xe();A=_});var It,At,Ot=E(()=>{\"use strict\";It=(e,t)=>{let n=typeof document<\"u\"?document.createElement(\"canvas\"):new OffscreenCanvas(1,1);n.width=e.dims[3],n.height=e.dims[2];let o=n.getContext(\"2d\");if(o!=null){let r,i;t?.tensorLayout!==void 0&&t.tensorLayout===\"NHWC\"?(r=e.dims[2],i=e.dims[3]):(r=e.dims[3],i=e.dims[2]);let s=t?.format!==void 0?t.format:\"RGB\",a=t?.norm,u,f;a===void 0||a.mean===void 0?u=[255,255,255,255]:typeof a.mean==\"number\"?u=[a.mean,a.mean,a.mean,a.mean]:(u=[a.mean[0],a.mean[1],a.mean[2],0],a.mean[3]!==void 0&&(u[3]=a.mean[3])),a===void 0||a.bias===void 0?f=[0,0,0,0]:typeof a.bias==\"number\"?f=[a.bias,a.bias,a.bias,a.bias]:(f=[a.bias[0],a.bias[1],a.bias[2],0],a.bias[3]!==void 0&&(f[3]=a.bias[3]));let l=i*r,c=0,d=l,p=l*2,h=-1;s===\"RGBA\"?(c=0,d=l,p=l*2,h=l*3):s===\"RGB\"?(c=0,d=l,p=l*2):s===\"RBG\"&&(c=0,p=l,d=l*2);for(let y=0;y<i;y++)for(let O=0;O<r;O++){let m=(e.data[c++]-f[0])*u[0],w=(e.data[d++]-f[1])*u[1],B=(e.data[p++]-f[2])*u[2],g=h===-1?255:(e.data[h++]-f[3])*u[3];o.fillStyle=\"rgba(\"+m+\",\"+w+\",\"+B+\",\"+g+\")\",o.fillRect(O,y,1,1)}if(\"toDataURL\"in n)return n.toDataURL();throw new Error(\"toDataURL is not supported\")}else throw new Error(\"Can not access image data\")},At=(e,t)=>{let n=typeof document<\"u\"?document.createElement(\"canvas\").getContext(\"2d\"):new OffscreenCanvas(1,1).getContext(\"2d\"),o;if(n!=null){let r,i,s;t?.tensorLayout!==void 0&&t.tensorLayout===\"NHWC\"?(r=e.dims[2],i=e.dims[1],s=e.dims[3]):(r=e.dims[3],i=e.dims[2],s=e.dims[1]);let a=t!==void 0&&t.format!==void 0?t.format:\"RGB\",u=t?.norm,f,l;u===void 0||u.mean===void 0?f=[255,255,255,255]:typeof u.mean==\"number\"?f=[u.mean,u.mean,u.mean,u.mean]:(f=[u.mean[0],u.mean[1],u.mean[2],255],u.mean[3]!==void 0&&(f[3]=u.mean[3])),u===void 0||u.bias===void 0?l=[0,0,0,0]:typeof u.bias==\"number\"?l=[u.bias,u.bias,u.bias,u.bias]:(l=[u.bias[0],u.bias[1],u.bias[2],0],u.bias[3]!==void 0&&(l[3]=u.bias[3]));let c=i*r;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 d=4,p=0,h=1,y=2,O=3,m=0,w=c,B=c*2,g=-1;a===\"RGBA\"?(m=0,w=c,B=c*2,g=c*3):a===\"RGB\"?(m=0,w=c,B=c*2):a===\"RBG\"&&(m=0,B=c,w=c*2),o=n.createImageData(r,i);for(let T=0;T<i*r;p+=d,h+=d,y+=d,O+=d,T++)o.data[p]=(e.data[m++]-l[0])*f[0],o.data[h]=(e.data[w++]-l[1])*f[1],o.data[y]=(e.data[B++]-l[2])*f[2],o.data[O]=g===-1?255:(e.data[g++]-l[3])*f[3]}else throw new Error(\"Can not access image data\");return o}});var Ke,Bt,Lt,Pt,_t,Dt,Ut=E(()=>{\"use strict\";Ie();Ke=(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:n,width:o}=t,r=t.norm??{mean:255,bias:0},i,s;typeof r.mean==\"number\"?i=[r.mean,r.mean,r.mean,r.mean]:i=[r.mean[0],r.mean[1],r.mean[2],r.mean[3]??255],typeof r.bias==\"number\"?s=[r.bias,r.bias,r.bias,r.bias]:s=[r.bias[0],r.bias[1],r.bias[2],r.bias[3]??0];let a=t.format!==void 0?t.format:\"RGBA\",u=t.tensorFormat!==void 0&&t.tensorFormat!==void 0?t.tensorFormat:\"RGB\",f=n*o,l=u===\"RGBA\"?new Float32Array(f*4):new Float32Array(f*3),c=4,d=0,p=1,h=2,y=3,O=0,m=f,w=f*2,B=-1;a===\"RGB\"&&(c=3,d=0,p=1,h=2,y=-1),u===\"RGBA\"?B=f*3:u===\"RBG\"?(O=0,w=f,m=f*2):u===\"BGR\"&&(w=0,m=f,O=f*2);for(let T=0;T<f;T++,d+=c,h+=c,p+=c,y+=c)l[O++]=(e[d]+s[0])/i[0],l[m++]=(e[p]+s[1])/i[1],l[w++]=(e[h]+s[2])/i[2],B!==-1&&y!==-1&&(l[B++]=(e[y]+s[3])/i[3]);return u===\"RGBA\"?new x(\"float32\",l,[1,4,n,o]):new x(\"float32\",l,[1,3,n,o])},Bt=async(e,t)=>{let n=typeof HTMLImageElement<\"u\"&&e instanceof HTMLImageElement,o=typeof ImageData<\"u\"&&e instanceof ImageData,r=typeof ImageBitmap<\"u\"&&e instanceof ImageBitmap,i=typeof e==\"string\",s,a=t??{},u=()=>{if(typeof document<\"u\")return document.createElement(\"canvas\");if(typeof OffscreenCanvas<\"u\")return new OffscreenCanvas(1,1);throw new Error(\"Canvas is not supported\")},f=l=>typeof HTMLCanvasElement<\"u\"&&l instanceof HTMLCanvasElement||l instanceof OffscreenCanvas?l.getContext(\"2d\"):null;if(n){let l=u();l.width=e.width,l.height=e.height;let c=f(l);if(c!=null){let d=e.height,p=e.width;if(t!==void 0&&t.resizedHeight!==void 0&&t.resizedWidth!==void 0&&(d=t.resizedHeight,p=t.resizedWidth),t!==void 0){if(a=t,t.tensorFormat!==void 0)throw new Error(\"Image input config format must be RGBA for HTMLImageElement\");a.tensorFormat=\"RGBA\",a.height=d,a.width=p}else a.tensorFormat=\"RGBA\",a.height=d,a.width=p;c.drawImage(e,0,0),s=c.getImageData(0,0,p,d).data}else throw new Error(\"Can not access image data\")}else if(o){let l,c;if(t!==void 0&&t.resizedWidth!==void 0&&t.resizedHeight!==void 0?(l=t.resizedHeight,c=t.resizedWidth):(l=e.height,c=e.width),t!==void 0&&(a=t),a.format=\"RGBA\",a.height=l,a.width=c,t!==void 0){let d=u();d.width=c,d.height=l;let p=f(d);if(p!=null)p.putImageData(e,0,0),s=p.getImageData(0,0,c,l).data;else throw new Error(\"Can not access image data\")}else s=e.data}else if(r){if(t===void 0)throw new Error(\"Please provide image config with format for Imagebitmap\");let l=u();l.width=e.width,l.height=e.height;let c=f(l);if(c!=null){let d=e.height,p=e.width;return c.drawImage(e,0,0,p,d),s=c.getImageData(0,0,p,d).data,a.height=d,a.width=p,Ke(s,a)}else throw new Error(\"Can not access image data\")}else{if(i)return new Promise((l,c)=>{let d=u(),p=f(d);if(!e||!p)return c();let h=new Image;h.crossOrigin=\"Anonymous\",h.src=e,h.onload=()=>{d.width=h.width,d.height=h.height,p.drawImage(h,0,0,d.width,d.height);let y=p.getImageData(0,0,d.width,d.height);a.height=d.height,a.width=d.width,l(Ke(y.data,a))}});throw new Error(\"Input data provided is not supported - aborted tensor creation\")}if(s!==void 0)return Ke(s,a);throw new Error(\"Input data provided is not supported - aborted tensor creation\")},Lt=(e,t)=>{let{width:n,height:o,download:r,dispose:i}=t,s=[1,o,n,4];return new x({location:\"texture\",type:\"float32\",texture:e,dims:s,download:r,dispose:i})},Pt=(e,t)=>{let{dataType:n,dims:o,download:r,dispose:i}=t;return new x({location:\"gpu-buffer\",type:n??\"float32\",gpuBuffer:e,dims:o,download:r,dispose:i})},_t=(e,t)=>{let{dataType:n,dims:o,download:r,dispose:i}=t;return new x({location:\"ml-tensor\",type:n??\"float32\",mlTensor:e,dims:o,download:r,dispose:i})},Dt=(e,t,n)=>new x({location:\"cpu-pinned\",type:e,data:t,dims:n??[t.length]})});var Q,me,xt,vt,Ct=E(()=>{\"use strict\";Q=new Map([[\"float32\",Float32Array],[\"uint8\",Uint8Array],[\"int8\",Int8Array],[\"uint16\",Uint16Array],[\"int16\",Int16Array],[\"int32\",Int32Array],[\"bool\",Uint8Array],[\"float64\",Float64Array],[\"uint32\",Uint32Array],[\"int4\",Uint8Array],[\"uint4\",Uint8Array]]),me=new Map([[Float32Array,\"float32\"],[Uint8Array,\"uint8\"],[Int8Array,\"int8\"],[Uint16Array,\"uint16\"],[Int16Array,\"int16\"],[Int32Array,\"int32\"],[Float64Array,\"float64\"],[Uint32Array,\"uint32\"]]),xt=!1,vt=()=>{if(!xt){xt=!0;let e=typeof BigInt64Array<\"u\"&&BigInt64Array.from,t=typeof BigUint64Array<\"u\"&&BigUint64Array.from,n=globalThis.Float16Array,o=typeof n<\"u\"&&n.from;e&&(Q.set(\"int64\",BigInt64Array),me.set(BigInt64Array,\"int64\")),t&&(Q.set(\"uint64\",BigUint64Array),me.set(BigUint64Array,\"uint64\")),o?(Q.set(\"float16\",n),me.set(n,\"float16\")):Q.set(\"float16\",Uint16Array)}}});var Mt,Rt,Ft=E(()=>{\"use strict\";Ie();Mt=e=>{let t=1;for(let n=0;n<e.length;n++){let o=e[n];if(typeof o!=\"number\"||!Number.isSafeInteger(o))throw new TypeError(`dims[${n}] must be an integer, got: ${o}`);if(o<0)throw new RangeError(`dims[${n}] must be a non-negative integer, got: ${o}`);t*=o}return t},Rt=(e,t)=>{switch(e.location){case\"cpu\":return new x(e.type,e.data,t);case\"cpu-pinned\":return new x({location:\"cpu-pinned\",data:e.data,type:e.type,dims:t});case\"texture\":return new x({location:\"texture\",texture:e.texture,type:e.type,dims:t});case\"gpu-buffer\":return new x({location:\"gpu-buffer\",gpuBuffer:e.gpuBuffer,type:e.type,dims:t});case\"ml-tensor\":return new x({location:\"ml-tensor\",mlTensor:e.mlTensor,type:e.type,dims:t});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}});var x,Ie=E(()=>{\"use strict\";Ot();Ut();Ct();Ft();x=class{constructor(t,n,o){vt();let r,i;if(typeof t==\"object\"&&\"location\"in t)switch(this.dataLocation=t.location,r=t.type,i=t.dims,t.location){case\"cpu-pinned\":{let a=Q.get(r);if(!a)throw new TypeError(`unsupported type \"${r}\" to create tensor from pinned buffer`);if(!(t.data instanceof a))throw new TypeError(`buffer should be of type ${a.name}`);this.cpuData=t.data;break}case\"texture\":{if(r!==\"float32\")throw new TypeError(`unsupported type \"${r}\" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case\"gpu-buffer\":{if(r!==\"float32\"&&r!==\"float16\"&&r!==\"int32\"&&r!==\"int64\"&&r!==\"uint32\"&&r!==\"uint8\"&&r!==\"bool\"&&r!==\"uint4\"&&r!==\"int4\")throw new TypeError(`unsupported type \"${r}\" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}case\"ml-tensor\":{if(r!==\"float32\"&&r!==\"float16\"&&r!==\"int32\"&&r!==\"int64\"&&r!==\"uint32\"&&r!==\"uint64\"&&r!==\"int8\"&&r!==\"uint8\"&&r!==\"bool\"&&r!==\"uint4\"&&r!==\"int4\")throw new TypeError(`unsupported type \"${r}\" 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 a,u;if(typeof t==\"string\")if(r=t,u=o,t===\"string\"){if(!Array.isArray(n))throw new TypeError(\"A string tensor's data must be a string array.\");a=n}else{let f=Q.get(t);if(f===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(n)){if(t===\"float16\"&&f===Uint16Array||t===\"uint4\"||t===\"int4\")throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${f.name} as data.`);t===\"uint64\"||t===\"int64\"?a=f.from(n,BigInt):a=f.from(n)}else if(n instanceof f)a=n;else if(n instanceof Uint8ClampedArray)if(t===\"uint8\")a=Uint8Array.from(n);else throw new TypeError(\"A Uint8ClampedArray tensor's data must be type of uint8\");else if(t===\"float16\"&&n instanceof Uint16Array&&f!==Uint16Array)a=new globalThis.Float16Array(n.buffer,n.byteOffset,n.length);else throw new TypeError(`A ${r} tensor's data must be type of ${f}`)}else if(u=n,Array.isArray(t)){if(t.length===0)throw new TypeError(\"Tensor type cannot be inferred from an empty array.\");let f=typeof t[0];if(f===\"string\")r=\"string\",a=t;else if(f===\"boolean\")r=\"bool\",a=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${f}.`)}else if(t instanceof Uint8ClampedArray)r=\"uint8\",a=Uint8Array.from(t);else{let f=me.get(t.constructor);if(f===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);r=f,a=t}if(u===void 0)u=[a.length];else if(!Array.isArray(u))throw new TypeError(\"A tensor's dims must be a number array\");i=u,this.cpuData=a,this.dataLocation=\"cpu\"}let s=Mt(i);if(this.cpuData&&s!==this.cpuData.length&&!((r===\"uint4\"||r===\"int4\")&&Math.ceil(s/2)===this.cpuData.length))throw new Error(`Tensor's size(${s}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=i,this.size=s}static async fromImage(t,n){return Bt(t,n)}static fromTexture(t,n){return Lt(t,n)}static fromGpuBuffer(t,n){return Pt(t,n)}static fromMLTensor(t,n){return _t(t,n)}static fromPinnedBuffer(t,n,o){return Dt(t,n,o)}toDataURL(t){return It(this,t)}toImageData(t){return At(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 n=await this.downloader();return this.downloader=void 0,this.dataLocation=\"cpu\",this.cpuData=n,t&&this.disposer&&(this.disposer(),this.disposer=void 0),n}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 Rt(this,t)}}});var k,Qe=E(()=>{\"use strict\";Ie();k=x});var et,Nt,J,q,Y,Z,tt=E(()=>{\"use strict\";Xe();et=(e,t)=>{(typeof _.trace>\"u\"?!_.wasm.trace:!_.trace)||console.timeStamp(`${e}::ORT::${t}`)},Nt=(e,t)=>{let n=new Error().stack?.split(/\\r\\n|\\r|\\n/g)||[],o=!1;for(let r=0;r<n.length;r++){if(o&&!n[r].includes(\"TRACE_FUNC\")){let i=`FUNC_${e}::${n[r].trim().split(\" \")[1]}`;t&&(i+=`::${t}`),et(\"CPU\",i);return}n[r].includes(\"TRACE_FUNC\")&&(o=!0)}},J=e=>{(typeof _.trace>\"u\"?!_.wasm.trace:!_.trace)||Nt(\"BEGIN\",e)},q=e=>{(typeof _.trace>\"u\"?!_.wasm.trace:!_.trace)||Nt(\"END\",e)},Y=e=>{(typeof _.trace>\"u\"?!_.wasm.trace:!_.trace)||console.time(`ORT::${e}`)},Z=e=>{(typeof _.trace>\"u\"?!_.wasm.trace:!_.trace)||console.timeEnd(`ORT::${e}`)}});var Ae,kt=E(()=>{\"use strict\";Ze();Qe();tt();Ae=class e{constructor(t){this.handler=t}async run(t,n,o){J(),Y(\"InferenceSession.run\");let r={},i={};if(typeof t!=\"object\"||t===null||t instanceof k||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 n==\"object\"){if(n===null)throw new TypeError(\"Unexpected argument[1]: cannot be null.\");if(n instanceof k)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.\");s=!1;for(let f of n){if(typeof f!=\"string\")throw new TypeError(\"'fetches' must be a string array or an object.\");if(this.outputNames.indexOf(f)===-1)throw new RangeError(`'fetches' contains invalid output name: ${f}.`);r[f]=null}if(typeof o==\"object\"&&o!==null)i=o;else if(typeof o<\"u\")throw new TypeError(\"'options' must be an object.\")}else{let f=!1,l=Object.getOwnPropertyNames(n);for(let c of this.outputNames)if(l.indexOf(c)!==-1){let d=n[c];(d===null||d instanceof k)&&(f=!0,s=!1,r[c]=d)}if(f){if(typeof o==\"object\"&&o!==null)i=o;else if(typeof o<\"u\")throw new TypeError(\"'options' must be an object.\")}else i=n}}else if(typeof n<\"u\")throw new TypeError(\"Unexpected argument[1]: must be 'fetches' or 'options'.\");for(let f of this.inputNames)if(typeof t[f]>\"u\")throw new Error(`input '${f}' is missing in 'feeds'.`);if(s)for(let f of this.outputNames)r[f]=null;let a=await this.handler.run(t,r,i),u={};for(let f in a)if(Object.hasOwnProperty.call(a,f)){let l=a[f];l instanceof k?u[f]=l:u[f]=new k(l.type,l.data,l.dims)}return Z(\"InferenceSession.run\"),q(),u}async release(){return this.handler.dispose()}static async create(t,n,o,r){J(),Y(\"InferenceSession.create\");let i,s={};if(typeof t==\"string\"){if(i=t,typeof n==\"object\"&&n!==null)s=n;else if(typeof n<\"u\")throw new TypeError(\"'options' must be an object.\")}else if(t instanceof Uint8Array){if(i=t,typeof n==\"object\"&&n!==null)s=n;else if(typeof n<\"u\")throw new TypeError(\"'options' must be an object.\")}else if(t instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&t instanceof SharedArrayBuffer){let l=t,c=0,d=t.byteLength;if(typeof n==\"object\"&&n!==null)s=n;else if(typeof n==\"number\"){if(c=n,!Number.isSafeInteger(c))throw new RangeError(\"'byteOffset' must be an integer.\");if(c<0||c>=l.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${l.byteLength}).`);if(d=t.byteLength-c,typeof o==\"number\"){if(d=o,!Number.isSafeInteger(d))throw new RangeError(\"'byteLength' must be an integer.\");if(d<=0||c+d>l.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${l.byteLength-c}].`);if(typeof r==\"object\"&&r!==null)s=r;else if(typeof r<\"u\")throw new TypeError(\"'options' must be an object.\")}else if(typeof o<\"u\")throw new TypeError(\"'byteLength' must be a number.\")}else if(typeof n<\"u\")throw new TypeError(\"'options' must be an object.\");i=new Uint8Array(l,c,d)}else throw new TypeError(\"Unexpected argument[0]: must be 'path' or 'buffer'.\");let[a,u]=await bt(s),f=await a.createInferenceSessionHandler(i,u);return Z(\"InferenceSession.create\"),q(),new e(f)}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 Wt,Gt=E(()=>{\"use strict\";kt();Wt=Ae});var $t=E(()=>{\"use strict\"});var zt=E(()=>{\"use strict\"});var Ht=E(()=>{\"use strict\"});var jt=E(()=>{\"use strict\"});var nt={};Se(nt,{InferenceSession:()=>Wt,TRACE:()=>et,TRACE_EVENT_BEGIN:()=>Y,TRACE_EVENT_END:()=>Z,TRACE_FUNC_BEGIN:()=>J,TRACE_FUNC_END:()=>q,Tensor:()=>k,env:()=>A,registerBackend:()=>se});var X=E(()=>{\"use strict\";yt();Tt();Gt();Qe();$t();zt();tt();Ht();jt()});var Oe=E(()=>{\"use strict\"});var Yt={};Se(Yt,{default:()=>Un});var Jt,qt,Un,Zt=E(()=>{\"use strict\";rt();ee();Be();Jt=\"ort-wasm-proxy-worker\",qt=globalThis.self?.name===Jt;qt&&(self.onmessage=e=>{let{type:t,in:n}=e.data;try{switch(t){case\"init-wasm\":Le(n.wasm).then(()=>{Pe(n).then(()=>{postMessage({type:t})},o=>{postMessage({type:t,err:o})})},o=>{postMessage({type:t,err:o})});break;case\"init-ep\":{let{epName:o,env:r}=n;_e(r,o).then(()=>{postMessage({type:t})},i=>{postMessage({type:t,err:i})});break}case\"copy-from\":{let{buffer:o}=n,r=we(o);postMessage({type:t,out:r});break}case\"create\":{let{model:o,options:r}=n;De(o,r).then(i=>{postMessage({type:t,out:i})},i=>{postMessage({type:t,err:i})});break}case\"release\":Ue(n),postMessage({type:t});break;case\"run\":{let{sessionId:o,inputIndices:r,inputs:i,outputIndices:s,options:a}=n;xe(o,r,i,s,new Array(s.length).fill(null),a).then(u=>{u.some(f=>f[3]!==\"cpu\")?postMessage({type:t,err:\"Proxy does not support non-cpu tensor location.\"}):postMessage({type:t,out:u},Ce([...i,...u]))},u=>{postMessage({type:t,err:u})});break}case\"end-profiling\":ve(n),postMessage({type:t});break;default:}}catch(o){postMessage({type:t,err:o})}});Un=qt?null:e=>new Worker(e??R,{type:\"classic\",name:Jt})});var xn,vn,R,Me,ot,Cn,Mn,Qt,Rn,Xt,en,Kt,tn,Be=E(()=>{\"use strict\";Oe();xn=typeof location>\"u\"?void 0:location.origin,vn=()=>{if(!!1)return typeof document<\"u\"?document.currentScript?.src:typeof self<\"u\"?self.location?.href:void 0},R=vn(),Me=()=>{if(R&&!R.startsWith(\"blob:\"))return R.substring(0,R.lastIndexOf(\"/\")+1)},ot=(e,t)=>{try{let n=t??R;return(n?new URL(e,n):new URL(e)).origin===xn}catch{return!1}},Cn=(e,t)=>{let n=t??R;try{return(n?new URL(e,n):new URL(e)).href}catch{return}},Mn=(e,t)=>`${t??\"./\"}${e}`,Qt=async e=>{let n=await(await fetch(e,{credentials:\"same-origin\"})).blob();return URL.createObjectURL(n)},Rn=async e=>(await import(/*webpackIgnore:true*/ /*@vite-ignore*/e)).default,Xt=(Zt(),Ye(Yt)).default,en=async()=>{if(!R)throw new Error(\"Failed to load proxy worker: cannot determine the script source URL.\");if(ot(R))return[void 0,Xt()];let e=await Qt(R);return[e,Xt(e)]},Kt=void 0,tn=async(e,t,n,o)=>{let r=Kt&&!(e||t);if(r)if(R)r=ot(R)||o&&!n;else if(o&&!n)r=!0;else throw new Error(\"cannot determine the script source URL.\");if(r)return[void 0,Kt];{let i=\"ort-wasm-simd-threaded.mjs\",s=e??Cn(i,t),a=!!1&&n&&s&&!ot(s,t),u=a?await Qt(s):s??Mn(i,t);return[a?u:void 0,await Rn(u)]}}});var st,it,Re,nn,Fn,Nn,kn,Le,I,ee=E(()=>{\"use strict\";Be();it=!1,Re=!1,nn=!1,Fn=()=>{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}},Nn=()=>{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}},kn=()=>{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}},Le=async e=>{if(it)return Promise.resolve();if(Re)throw new Error(\"multiple calls to 'initializeWebAssembly()' detected.\");if(nn)throw new Error(\"previous call to 'initializeWebAssembly()' failed.\");Re=!0;let t=e.initTimeout,n=e.numThreads;if(e.simd!==!1){if(e.simd===\"relaxed\"){if(!kn())throw new Error(\"Relaxed WebAssembly SIMD is not supported in the current environment.\")}else if(!Nn())throw new Error(\"WebAssembly SIMD is not supported in the current environment.\")}let o=Fn();n>1&&!o&&(typeof self<\"u\"&&!self.crossOriginIsolated&&console.warn(\"env.wasm.numThreads is set to \"+n+\", 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.\"),e.numThreads=n=1);let r=e.wasmPaths,i=typeof r==\"string\"?r:void 0,s=r?.mjs,a=s?.href??s,u=r?.wasm,f=u?.href??u,l=e.wasmBinary,[c,d]=await tn(a,i,n>1,!!l||!!f),p=!1,h=[];if(t>0&&h.push(new Promise(y=>{setTimeout(()=>{p=!0,y()},t)})),h.push(new Promise((y,O)=>{let m={numThreads:n};if(l)m.wasmBinary=l,m.locateFile=w=>w;else if(f||i)m.locateFile=w=>f??i+w;else if(a&&a.indexOf(\"blob:\")!==0)m.locateFile=w=>new URL(w,a).href;else if(c){let w=Me();w&&(m.locateFile=B=>w+B)}d(m).then(w=>{Re=!1,it=!0,st=w,y(),c&&URL.revokeObjectURL(c)},w=>{Re=!1,nn=!0,O(w)})})),await Promise.race(h),p)throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`)},I=()=>{if(it&&st)return st;throw new Error(\"WebAssembly is not initialized yet.\")}});var F,he,S,Fe=E(()=>{\"use strict\";ee();F=(e,t)=>{let n=I(),o=n.lengthBytesUTF8(e)+1,r=n._malloc(o);return n.stringToUTF8(e,r,o),t.push(r),r},he=(e,t,n,o)=>{if(typeof e==\"object\"&&e!==null){if(n.has(e))throw new Error(\"Circular reference in options\");n.add(e)}Object.entries(e).forEach(([r,i])=>{let s=t?t+r:r;if(typeof i==\"object\")he(i,s+\".\",n,o);else if(typeof i==\"string\"||typeof i==\"number\")o(s,i.toString());else if(typeof i==\"boolean\")o(s,i?\"1\":\"0\");else throw new Error(`Can't handle extra config type: ${typeof i}`)})},S=e=>{let t=I(),n=t.stackSave();try{let o=t.PTR_SIZE,r=t.stackAlloc(2*o);t._OrtGetLastError(r,r+o);let i=Number(t.getValue(r,o===4?\"i32\":\"i64\")),s=t.getValue(r+o,\"*\"),a=s?t.UTF8ToString(s):\"\";throw new Error(`${e} ERROR_CODE: ${i}, ERROR_MESSAGE: ${a}`)}finally{t.stackRestore(n)}}});var rn,on=E(()=>{\"use strict\";ee();Fe();rn=e=>{let t=I(),n=0,o=[],r=e||{};try{if(e?.logSeverityLevel===void 0)r.logSeverityLevel=2;else if(typeof e.logSeverityLevel!=\"number\"||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)r.logVerbosityLevel=0;else if(typeof e.logVerbosityLevel!=\"number\"||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(r.terminate=!1);let i=0;return e?.tag!==void 0&&(i=F(e.tag,o)),n=t._OrtCreateRunOptions(r.logSeverityLevel,r.logVerbosityLevel,!!r.terminate,i),n===0&&S(\"Can't create run options.\"),e?.extra!==void 0&&he(e.extra,\"\",new WeakSet,(s,a)=>{let u=F(s,o),f=F(a,o);t._OrtAddRunConfigEntry(n,u,f)!==0&&S(`Can't set a run config entry: ${s} - ${a}.`)}),[n,o]}catch(i){throw n!==0&&t._OrtReleaseRunOptions(n),o.forEach(s=>t._free(s)),i}}});var Wn,Gn,$n,ie,zn,sn,an=E(()=>{\"use strict\";ee();Fe();Wn=e=>{switch(e){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: ${e}`)}},Gn=e=>{switch(e){case\"sequential\":return 0;case\"parallel\":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},$n=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let t=e.extra.session;t.use_ort_model_bytes_directly||(t.use_ort_model_bytes_directly=\"1\"),e.executionProviders&&e.executionProviders.some(n=>(typeof n==\"string\"?n:n.name)===\"webgpu\")&&(e.enableMemPattern=!1)},ie=(e,t,n,o)=>{let r=F(t,o),i=F(n,o);I()._OrtAddSessionConfigEntry(e,r,i)!==0&&S(`Can't set a session config entry: ${t} - ${n}.`)},zn=async(e,t,n)=>{let o=t.executionProviders;for(let r of o){let i=typeof r==\"string\"?r:r.name,s=[];switch(i){case\"webnn\":if(i=\"WEBNN\",ie(e,\"session.disable_quant_qdq\",\"1\",n),ie(e,\"session.disable_qdq_constant_folding\",\"1\",n),typeof r!=\"string\"){let d=r?.deviceType;d&&ie(e,\"deviceType\",d,n)}break;case\"webgpu\":if(i=\"JS\",typeof r!=\"string\"){let c=r;if(c?.preferredLayout){if(c.preferredLayout!==\"NCHW\"&&c.preferredLayout!==\"NHWC\")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${c.preferredLayout}`);ie(e,\"preferredLayout\",c.preferredLayout,n)}}break;case\"wasm\":case\"cpu\":continue;default:throw new Error(`not supported execution provider: ${i}`)}let a=F(i,n),u=s.length,f=0,l=0;if(u>0){f=I()._malloc(u*I().PTR_SIZE),n.push(f),l=I()._malloc(u*I().PTR_SIZE),n.push(l);for(let c=0;c<u;c++)I().setValue(f+c*I().PTR_SIZE,s[c][0],\"*\"),I().setValue(l+c*I().PTR_SIZE,s[c][1],\"*\")}await I()._OrtAppendExecutionProvider(e,a,f,l,u)!==0&&S(`Can't append execution provider: ${i}.`)}},sn=async e=>{let t=I(),n=0,o=[],r=e||{};$n(r);try{let i=Wn(r.graphOptimizationLevel??\"all\"),s=Gn(r.executionMode??\"sequential\"),a=typeof r.logId==\"string\"?F(r.logId,o):0,u=r.logSeverityLevel??2;if(!Number.isInteger(u)||u<0||u>4)throw new Error(`log severity level is not valid: ${u}`);let f=r.logVerbosityLevel??0;if(!Number.isInteger(f)||f<0||f>4)throw new Error(`log verbosity level is not valid: ${f}`);let l=typeof r.optimizedModelFilePath==\"string\"?F(r.optimizedModelFilePath,o):0;if(n=t._OrtCreateSessionOptions(i,!!r.enableCpuMemArena,!!r.enableMemPattern,s,!!r.enableProfiling,0,a,u,f,l),n===0&&S(\"Can't create session options.\"),r.executionProviders&&await zn(n,r,o),r.enableGraphCapture!==void 0){if(typeof r.enableGraphCapture!=\"boolean\")throw new Error(`enableGraphCapture must be a boolean value: ${r.enableGraphCapture}`);ie(n,\"enableGraphCapture\",r.enableGraphCapture.toString(),o)}if(r.freeDimensionOverrides)for(let[c,d]of Object.entries(r.freeDimensionOverrides)){if(typeof c!=\"string\")throw new Error(`free dimension override name must be a string: ${c}`);if(typeof d!=\"number\"||!Number.isInteger(d)||d<0)throw new Error(`free dimension override value must be a non-negative integer: ${d}`);let p=F(c,o);t._OrtAddFreeDimensionOverride(n,p,d)!==0&&S(`Can't set a free dimension override: ${c} - ${d}.`)}return r.extra!==void 0&&he(r.extra,\"\",new WeakSet,(c,d)=>{ie(n,c,d,o)}),[n,o]}catch(i){throw n!==0&&t._OrtReleaseSessionOptions(n)!==0&&S(\"Can't release session options.\"),o.forEach(s=>t._free(s)),i}}});var ae,Ne,ue,un,fn,ke,We,cn,at=E(()=>{\"use strict\";ae=e=>{switch(e){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: ${e}`)}},Ne=e=>{switch(e){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: ${e}`)}},ue=(e,t)=>{let n=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],o=typeof t==\"number\"?t:t.reduce((r,i)=>r*i,1);return n>0?Math.ceil(o*n):void 0},un=e=>{switch(e){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: ${e}`)}},fn=e=>{switch(e){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: ${e}`)}},ke=e=>e===\"float32\"||e===\"float16\"||e===\"int32\"||e===\"int64\"||e===\"uint32\"||e===\"uint8\"||e===\"bool\"||e===\"uint4\"||e===\"int4\",We=e=>e===\"float32\"||e===\"float16\"||e===\"int32\"||e===\"int64\"||e===\"uint32\"||e===\"uint64\"||e===\"int8\"||e===\"uint8\"||e===\"bool\"||e===\"uint4\"||e===\"int4\",cn=e=>{switch(e){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: ${e}`)}}});var be,ut=E(()=>{\"use strict\";Oe();be=async e=>{if(typeof e==\"string\")if(!1)try{let{readFile:t}=qe(\"node:fs/promises\");return new Uint8Array(await t(e))}catch(t){if(t.code===\"ERR_FS_FILE_TOO_LARGE\"){let{createReadStream:n}=qe(\"node:fs\"),o=n(e),r=[];for await(let i of o)r.push(i);return new Uint8Array(Buffer.concat(r))}throw t}else{let t=await fetch(e);if(!t.ok)throw new Error(`failed to load external data file: ${e}`);let n=t.headers.get(\"Content-Length\"),o=n?parseInt(n,10):0;if(o<1073741824)return new Uint8Array(await t.arrayBuffer());{if(!t.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let r=t.body.getReader(),i;try{i=new ArrayBuffer(o)}catch(a){if(a instanceof RangeError){let u=Math.ceil(o/65536);i=new WebAssembly.Memory({initial:u,maximum:u}).buffer}else throw a}let s=0;for(;;){let{done:a,value:u}=await r.read();if(a)break;let f=u.byteLength;new Uint8Array(i,s,f).set(u),s+=f}return new Uint8Array(i,0,o)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}});var Hn,Pe,_e,fe,jn,dn,we,De,Ue,ln,xe,ve,Ce,rt=E(()=>{\"use strict\";X();on();an();at();ee();Fe();ut();Hn=(e,t)=>{I()._OrtInit(e,t)!==0&&S(\"Can't initialize onnxruntime.\")},Pe=async e=>{Hn(e.wasm.numThreads,fn(e.logLevel))},_e=async(e,t)=>{I().asyncInit?.();let n=e.webgpu.adapter;if(t===\"webgpu\"){if(typeof navigator>\"u\"||!navigator.gpu)throw new Error(\"WebGPU is not supported in current environment\");if(n){if(typeof n.limits!=\"object\"||typeof n.features!=\"object\"||typeof n.requestDevice!=\"function\")throw new Error(\"Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.\")}else{let o=e.webgpu.powerPreference;if(o!==void 0&&o!==\"low-power\"&&o!==\"high-performance\")throw new Error(`Invalid powerPreference setting: \"${o}\"`);let r=e.webgpu.forceFallbackAdapter;if(r!==void 0&&typeof r!=\"boolean\")throw new Error(`Invalid forceFallbackAdapter setting: \"${r}\"`);if(n=await navigator.gpu.requestAdapter({powerPreference:o,forceFallbackAdapter:r}),!n)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\")},fe=new Map,jn=e=>{let t=I(),n=t.stackSave();try{let o=t.PTR_SIZE,r=t.stackAlloc(2*o);t._OrtGetInputOutputCount(e,r,r+o)!==0&&S(\"Can't get session input/output count.\");let s=o===4?\"i32\":\"i64\";return[Number(t.getValue(r,s)),Number(t.getValue(r+o,s))]}finally{t.stackRestore(n)}},dn=(e,t)=>{let n=I(),o=n.stackSave(),r=0;try{let i=n.PTR_SIZE,s=n.stackAlloc(2*i);n._OrtGetInputOutputMetadata(e,t,s,s+i)!==0&&S(\"Can't get session input/output metadata.\");let u=Number(n.getValue(s,\"*\"));r=Number(n.getValue(s+i,\"*\"));let f=n.HEAP32[r/4];if(f===0)return[u,0];let l=n.HEAPU32[r/4+1],c=[];for(let d=0;d<l;d++){let p=Number(n.getValue(r+8+d*i,\"*\"));c.push(p!==0?n.UTF8ToString(p):Number(n.getValue(r+8+(d+l)*i,\"*\")))}return[u,f,c]}finally{n.stackRestore(o),r!==0&&n._OrtFree(r)}},we=e=>{let t=I(),n=t._malloc(e.byteLength);if(n===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return t.HEAPU8.set(e,n),[n,e.byteLength]},De=async(e,t)=>{let n,o,r=I();Array.isArray(e)?[n,o]=e:e.buffer===r.HEAPU8.buffer?[n,o]=[e.byteOffset,e.byteLength]:[n,o]=we(e);let i=0,s=0,a=0,u=[],f=[],l=[];try{if([s,u]=await sn(t),t?.externalData&&r.mountExternalData){let g=[];for(let T of t.externalData){let U=typeof T==\"string\"?T:T.path;g.push(be(typeof T==\"string\"?T:T.data).then(M=>{r.mountExternalData(U,M)}))}await Promise.all(g)}for(let g of t?.executionProviders??[])if((typeof g==\"string\"?g:g.name)===\"webnn\"){if(r.shouldTransferToMLTensor=!1,typeof g!=\"string\"){let U=g,M=U?.context,v=U?.gpuDevice,le=U?.deviceType,re=U?.powerPreference;M?r.currentContext=M:v?r.currentContext=await r.webnnCreateMLContext(v):r.currentContext=await r.webnnCreateMLContext({deviceType:le,powerPreference:re})}else r.currentContext=await r.webnnCreateMLContext();break}i=await r._OrtCreateSession(n,o,s),r.webgpuOnCreateSession?.(i),i===0&&S(\"Can't create a session.\"),r.jsepOnCreateSession?.(),r.currentContext&&(r.webnnRegisterMLContext(i,r.currentContext),r.currentContext=void 0,r.shouldTransferToMLTensor=!0);let[c,d]=jn(i),p=!!t?.enableGraphCapture,h=[],y=[],O=[],m=[],w=[];for(let g=0;g<c;g++){let[T,U,M]=dn(i,g);T===0&&S(\"Can't get an input name.\"),f.push(T);let v=r.UTF8ToString(T);h.push(v),O.push(U===0?{name:v,isTensor:!1}:{name:v,isTensor:!0,type:Ne(U),shape:M})}for(let g=0;g<d;g++){let[T,U,M]=dn(i,g+c);T===0&&S(\"Can't get an output name.\"),l.push(T);let v=r.UTF8ToString(T);y.push(v),m.push(U===0?{name:v,isTensor:!1}:{name:v,isTensor:!0,type:Ne(U),shape:M})}return fe.set(i,[i,f,l,null,p,!1]),[i,h,y,O,m]}catch(c){throw f.forEach(d=>r._OrtFree(d)),l.forEach(d=>r._OrtFree(d)),a!==0&&r._OrtReleaseBinding(a)!==0&&S(\"Can't release IO binding.\"),i!==0&&r._OrtReleaseSession(i)!==0&&S(\"Can't release session.\"),c}finally{r._free(n),s!==0&&r._OrtReleaseSessionOptions(s)!==0&&S(\"Can't release session options.\"),u.forEach(c=>r._free(c)),r.unmountExternalData?.()}},Ue=e=>{let t=I(),n=fe.get(e);if(!n)throw new Error(`cannot release session. invalid session id: ${e}`);let[o,r,i,s,a]=n;s&&(a&&t._OrtClearBoundOutputs(s.handle)!==0&&S(\"Can't clear bound outputs.\"),t._OrtReleaseBinding(s.handle)!==0&&S(\"Can't release IO binding.\")),t.jsepOnReleaseSession?.(e),t.webnnOnReleaseSession?.(e),t.webgpuOnReleaseSession?.(e),r.forEach(u=>t._OrtFree(u)),i.forEach(u=>t._OrtFree(u)),t._OrtReleaseSession(o)!==0&&S(\"Can't release session.\"),fe.delete(e)},ln=async(e,t,n,o,r,i,s=!1)=>{if(!e){t.push(0);return}let a=I(),u=a.PTR_SIZE,f=e[0],l=e[1],c=e[3],d=c,p,h;if(f===\"string\"&&(c===\"gpu-buffer\"||c===\"ml-tensor\"))throw new Error(\"String tensor is not supported on GPU.\");if(s&&c!==\"gpu-buffer\")throw new Error(`External buffer must be provided for input/output index ${i} when enableGraphCapture is true.`);if(c===\"gpu-buffer\"){let m=e[2].gpuBuffer;h=ue(ae(f),l);{let w=a.jsepRegisterBuffer;if(!w)throw new Error('Tensor location \"gpu-buffer\" is not supported without using WebGPU.');p=w(o,i,m,h)}}else if(c===\"ml-tensor\"){let m=e[2].mlTensor;h=ue(ae(f),l);let w=a.webnnRegisterMLTensor;if(!w)throw new Error('Tensor location \"ml-tensor\" is not supported without using WebNN.');p=w(o,m,ae(f),l)}else{let m=e[2];if(Array.isArray(m)){h=u*m.length,p=a._malloc(h),n.push(p);for(let w=0;w<m.length;w++){if(typeof m[w]!=\"string\")throw new TypeError(`tensor data at index ${w} is not a string`);a.setValue(p+w*u,F(m[w],n),\"*\")}}else{let w=a.webnnIsGraphInput,B=a.webnnIsGraphOutput;if(f!==\"string\"&&w&&B){let g=a.UTF8ToString(r);if(w(o,g)||B(o,g)){let T=ae(f);h=ue(T,l),d=\"ml-tensor\";let U=a.webnnCreateTemporaryTensor,M=a.webnnUploadTensor;if(!U||!M)throw new Error('Tensor location \"ml-tensor\" is not supported without using WebNN.');let v=await U(o,T,l);M(v,new Uint8Array(m.buffer,m.byteOffset,m.byteLength)),p=v}else h=m.byteLength,p=a._malloc(h),n.push(p),a.HEAPU8.set(new Uint8Array(m.buffer,m.byteOffset,h),p)}else h=m.byteLength,p=a._malloc(h),n.push(p),a.HEAPU8.set(new Uint8Array(m.buffer,m.byteOffset,h),p)}}let y=a.stackSave(),O=a.stackAlloc(4*l.length);try{l.forEach((w,B)=>a.setValue(O+B*u,w,u===4?\"i32\":\"i64\"));let m=a._OrtCreateTensor(ae(f),p,h,O,l.length,cn(d));m===0&&S(`Can't create tensor for input/output. session=${o}, index=${i}.`),t.push(m)}finally{a.stackRestore(y)}},xe=async(e,t,n,o,r,i)=>{let s=I(),a=s.PTR_SIZE,u=fe.get(e);if(!u)throw new Error(`cannot run inference. invalid session id: ${e}`);let f=u[0],l=u[1],c=u[2],d=u[3],p=u[4],h=u[5],y=t.length,O=o.length,m=0,w=[],B=[],g=[],T=[],U=[],M=s.stackSave(),v=s.stackAlloc(y*a),le=s.stackAlloc(y*a),re=s.stackAlloc(O*a),lt=s.stackAlloc(O*a);try{[m,w]=rn(i),Y(\"wasm prepareInputOutputTensor\");for(let b=0;b<y;b++)await ln(n[b],B,T,e,l[t[b]],t[b],p);for(let b=0;b<O;b++)await ln(r[b],g,T,e,c[o[b]],y+o[b],p);Z(\"wasm prepareInputOutputTensor\");for(let b=0;b<y;b++)s.setValue(v+b*a,B[b],\"*\"),s.setValue(le+b*a,l[t[b]],\"*\");for(let b=0;b<O;b++)s.setValue(re+b*a,g[b],\"*\"),s.setValue(lt+b*a,c[o[b]],\"*\");s.jsepOnRunStart?.(f),s.webnnOnRunStart?.(f);let N;N=await s._OrtRun(f,le,v,y,lt,O,re,m),N!==0&&S(\"failed to call OrtRun().\");let z=[],pt=[];Y(\"wasm ProcessOutputTensor\");for(let b=0;b<O;b++){let G=Number(s.getValue(re+b*a,\"*\"));if(G===g[b]||U.includes(g[b])){z.push(r[b]),G!==g[b]&&s._OrtReleaseTensor(G)!==0&&S(\"Can't release tensor.\");continue}let mt=s.stackSave(),$=s.stackAlloc(4*a),oe=!1,P,C=0;try{s._OrtGetTensorData(G,$,$+a,$+2*a,$+3*a)!==0&&S(`Can't access output tensor data on index ${b}.`);let Ve=a===4?\"i32\":\"i64\",ge=Number(s.getValue($,Ve));C=s.getValue($+a,\"*\");let wt=s.getValue($+a*2,\"*\"),On=Number(s.getValue($+a*3,Ve)),H=[];for(let D=0;D<On;D++)H.push(Number(s.getValue(wt+D*a,Ve)));s._OrtFree(wt)!==0&&S(\"Can't free memory for tensor dims.\");let j=H.reduce((D,L)=>D*L,1);P=Ne(ge);let pe=d?.outputPreferredLocations[o[b]];if(P===\"string\"){if(pe===\"gpu-buffer\"||pe===\"ml-tensor\")throw new Error(\"String tensor is not supported on GPU.\");let D=[];for(let L=0;L<j;L++){let V=s.getValue(C+L*a,\"*\"),Ee=s.getValue(C+(L+1)*a,\"*\"),ht=L===j-1?void 0:Ee-V;D.push(s.UTF8ToString(V,ht))}z.push([P,H,D,\"cpu\"])}else if(pe===\"gpu-buffer\"&&j>0){let D=s.jsepGetBuffer;if(!D)throw new Error('preferredLocation \"gpu-buffer\" is not supported without using WebGPU.');let L=D(C),V=ue(ge,j);if(V===void 0||!ke(P))throw new Error(`Unsupported data type: ${P}`);oe=!0,z.push([P,H,{gpuBuffer:L,download:s.jsepCreateDownloader(L,V,P),dispose:()=>{s._OrtReleaseTensor(G)!==0&&S(\"Can't release tensor.\")}},\"gpu-buffer\"])}else if(pe===\"ml-tensor\"&&j>0){let D=s.webnnEnsureTensor,L=s.webnnIsGraphInputOutputTypeSupported;if(!D||!L)throw new Error('preferredLocation \"ml-tensor\" is not supported without using WebNN.');if(ue(ge,j)===void 0||!We(P))throw new Error(`Unsupported data type: ${P}`);if(!L(e,P,!1))throw new Error(`preferredLocation \"ml-tensor\" for ${P} output is not supported by current WebNN Context.`);let Ee=await D(e,C,ge,H,!1);oe=!0,z.push([P,H,{mlTensor:Ee,download:s.webnnCreateMLTensorDownloader(C,P),dispose:()=>{s.webnnReleaseTensorId(C),s._OrtReleaseTensor(G)}},\"ml-tensor\"])}else if(pe===\"ml-tensor-cpu-output\"&&j>0){let D=s.webnnCreateMLTensorDownloader(C,P)(),L=z.length;oe=!0,pt.push((async()=>{let V=[L,await D];return s.webnnReleaseTensorId(C),s._OrtReleaseTensor(G),V})()),z.push([P,H,[],\"cpu\"])}else{let D=un(P),L=new D(j);new Uint8Array(L.buffer,L.byteOffset,L.byteLength).set(s.HEAPU8.subarray(C,C+L.byteLength)),z.push([P,H,L,\"cpu\"])}}finally{s.stackRestore(mt),P===\"string\"&&C&&s._free(C),oe||s._OrtReleaseTensor(G)}}d&&!p&&(s._OrtClearBoundOutputs(d.handle)!==0&&S(\"Can't clear bound outputs.\"),fe.set(e,[f,l,c,d,p,!1]));for(let[b,G]of await Promise.all(pt))z[b][2]=G;return Z(\"wasm ProcessOutputTensor\"),z}finally{s.webnnOnRunEnd?.(f),s.stackRestore(M),B.forEach(N=>s._OrtReleaseTensor(N)),g.forEach(N=>s._OrtReleaseTensor(N)),T.forEach(N=>s._free(N)),m!==0&&s._OrtReleaseRunOptions(m),w.forEach(N=>s._free(N))}},ve=e=>{let t=I(),n=fe.get(e);if(!n)throw new Error(\"invalid session id\");let o=n[0],r=t._OrtEndProfiling(o);r===0&&S(\"Can't get an profile file name.\"),t._OrtFree(r)},Ce=e=>{let t=[];for(let n of e){let o=n[2];!Array.isArray(o)&&\"buffer\"in o&&t.push(o.buffer)}return t}});var ne,W,ye,$e,ze,Ge,ft,ct,ce,de,Jn,pn,mn,wn,hn,bn,yn,gn,dt=E(()=>{\"use strict\";X();rt();ee();Be();ne=()=>!!A.wasm.proxy&&typeof document<\"u\",ye=!1,$e=!1,ze=!1,ct=new Map,ce=(e,t)=>{let n=ct.get(e);n?n.push(t):ct.set(e,[t])},de=()=>{if(ye||!$e||ze||!W)throw new Error(\"worker not ready\")},Jn=e=>{switch(e.data.type){case\"init-wasm\":ye=!1,e.data.err?(ze=!0,ft[1](e.data.err)):($e=!0,ft[0]()),Ge&&(URL.revokeObjectURL(Ge),Ge=void 0);break;case\"init-ep\":case\"copy-from\":case\"create\":case\"release\":case\"run\":case\"end-profiling\":{let t=ct.get(e.data.type);e.data.err?t.shift()[1](e.data.err):t.shift()[0](e.data.out);break}default:}},pn=async()=>{if(!$e){if(ye)throw new Error(\"multiple calls to 'initWasm()' detected.\");if(ze)throw new Error(\"previous call to 'initWasm()' failed.\");if(ye=!0,ne())return new Promise((e,t)=>{W?.terminate(),en().then(([n,o])=>{try{W=o,W.onerror=i=>t(i),W.onmessage=Jn,ft=[e,t];let r={type:\"init-wasm\",in:A};if(!r.in.wasm.wasmPaths&&n){let i=Me();i&&(r.in.wasm.wasmPaths=i)}W.postMessage(r),Ge=n}catch(r){t(r)}},t)});try{await Le(A.wasm),await Pe(A),$e=!0}catch(e){throw ze=!0,e}finally{ye=!1}}},mn=async e=>{if(ne())return de(),new Promise((t,n)=>{ce(\"init-ep\",[t,n]);let o={type:\"init-ep\",in:{epName:e,env:A}};W.postMessage(o)});await _e(A,e)},wn=async e=>ne()?(de(),new Promise((t,n)=>{ce(\"copy-from\",[t,n]);let o={type:\"copy-from\",in:{buffer:e}};W.postMessage(o,[e.buffer])})):we(e),hn=async(e,t)=>{if(ne()){if(t?.preferredOutputLocation)throw new Error('session option \"preferredOutputLocation\" is not supported for proxy.');return de(),new Promise((n,o)=>{ce(\"create\",[n,o]);let r={type:\"create\",in:{model:e,options:{...t}}},i=[];e instanceof Uint8Array&&i.push(e.buffer),W.postMessage(r,i)})}else return De(e,t)},bn=async e=>{if(ne())return de(),new Promise((t,n)=>{ce(\"release\",[t,n]);let o={type:\"release\",in:e};W.postMessage(o)});Ue(e)},yn=async(e,t,n,o,r,i)=>{if(ne()){if(n.some(s=>s[3]!==\"cpu\"))throw new Error(\"input tensor on GPU is not supported for proxy.\");if(r.some(s=>s))throw new Error(\"pre-allocated output tensor is not supported for proxy.\");return de(),new Promise((s,a)=>{ce(\"run\",[s,a]);let u=n,f={type:\"run\",in:{sessionId:e,inputIndices:t,inputs:u,outputIndices:o,options:i}};W.postMessage(f,Ce(u))})}else return xe(e,t,n,o,r,i)},gn=async e=>{if(ne())return de(),new Promise((t,n)=>{ce(\"end-profiling\",[t,n]);let o={type:\"end-profiling\",in:e};W.postMessage(o)});ve(e)}});var En,qn,He,Sn=E(()=>{\"use strict\";X();dt();at();Oe();ut();En=(e,t)=>{switch(e.location){case\"cpu\":return[e.type,e.dims,e.data,\"cpu\"];case\"gpu-buffer\":return[e.type,e.dims,{gpuBuffer:e.gpuBuffer},\"gpu-buffer\"];case\"ml-tensor\":return[e.type,e.dims,{mlTensor:e.mlTensor},\"ml-tensor\"];default:throw new Error(`invalid data location: ${e.location} for ${t()}`)}},qn=e=>{switch(e[3]){case\"cpu\":return new k(e[0],e[2],e[1]);case\"gpu-buffer\":{let t=e[0];if(!ke(t))throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);let{gpuBuffer:n,download:o,dispose:r}=e[2];return k.fromGpuBuffer(n,{dataType:t,dims:e[1],download:o,dispose:r})}case\"ml-tensor\":{let t=e[0];if(!We(t))throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);let{mlTensor:n,download:o,dispose:r}=e[2];return k.fromMLTensor(n,{dataType:t,dims:e[1],download:o,dispose:r})}default:throw new Error(`invalid data location: ${e[3]}`)}},He=class{async fetchModelAndCopyToWasmMemory(t){return wn(await be(t))}async loadModel(t,n){J();let o;typeof t==\"string\"?o=await this.fetchModelAndCopyToWasmMemory(t):o=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await hn(o,n),q()}async dispose(){return bn(this.sessionId)}async run(t,n,o){J();let r=[],i=[];Object.entries(t).forEach(d=>{let p=d[0],h=d[1],y=this.inputNames.indexOf(p);if(y===-1)throw new Error(`invalid input '${p}'`);r.push(h),i.push(y)});let s=[],a=[];Object.entries(n).forEach(d=>{let p=d[0],h=d[1],y=this.outputNames.indexOf(p);if(y===-1)throw new Error(`invalid output '${p}'`);s.push(h),a.push(y)});let u=r.map((d,p)=>En(d,()=>`input \"${this.inputNames[i[p]]}\"`)),f=s.map((d,p)=>d?En(d,()=>`output \"${this.outputNames[a[p]]}\"`):null),l=await yn(this.sessionId,i,u,a,f,o),c={};for(let d=0;d<l.length;d++)c[this.outputNames[a[d]]]=s[d]??qn(l[d]);return q(),c}startProfiling(){}endProfiling(){gn(this.sessionId)}}});var In={};Se(In,{OnnxruntimeWebAssemblyBackend:()=>je,initializeFlags:()=>Tn,wasmBackend:()=>Yn});var Tn,je,Yn,An=E(()=>{\"use strict\";X();dt();Sn();Tn=()=>{(typeof A.wasm.initTimeout!=\"number\"||A.wasm.initTimeout<0)&&(A.wasm.initTimeout=0);let e=A.wasm.simd;if(typeof e!=\"boolean\"&&e!==void 0&&e!==\"fixed\"&&e!==\"relaxed\"&&(console.warn(`Property \"env.wasm.simd\" is set to unknown value \"${e}\". Reset it to \\`false\\` and ignore SIMD feature checking.`),A.wasm.simd=!1),typeof A.wasm.proxy!=\"boolean\"&&(A.wasm.proxy=!1),typeof A.wasm.trace!=\"boolean\"&&(A.wasm.trace=!1),typeof A.wasm.numThreads!=\"number\"||!Number.isInteger(A.wasm.numThreads)||A.wasm.numThreads<=0)if(typeof self<\"u\"&&!self.crossOriginIsolated)A.wasm.numThreads=1;else{let t=typeof navigator>\"u\"?qe(\"node:os\").cpus().length:navigator.hardwareConcurrency;A.wasm.numThreads=Math.min(4,Math.ceil((t||1)/2))}},je=class{async init(t){Tn(),await pn(),await mn(t)}async createInferenceSessionHandler(t,n){let o=new He;return await o.loadModel(t,n),o}},Yn=new je});var Xn={};Se(Xn,{InferenceSession:()=>Wt,TRACE:()=>et,TRACE_EVENT_BEGIN:()=>Y,TRACE_EVENT_END:()=>Z,TRACE_FUNC_BEGIN:()=>J,TRACE_FUNC_END:()=>q,Tensor:()=>k,default:()=>Zn,env:()=>A,registerBackend:()=>se});X();X();X();var Vt=\"1.26.0\";var Zn=nt;{let e=(An(),Ye(In)).wasmBackend;se(\"cpu\",e,10),se(\"wasm\",e,10)}Object.defineProperty(A.versions,\"web\",{value:Vt,enumerable:!0});return Ye(Xn);})();\ntypeof exports==\"object\"&&typeof module==\"object\"&&(module.exports=ort);\n//# sourceMappingURL=ort.wasm.min.js.map\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MicVAD = exports.getDefaultRealTimeVADOptions = exports.ort = exports.DEFAULT_MODEL = void 0;\nconst ortInstance = __importStar(require(\"onnxruntime-web/wasm\"));\nconst default_model_fetcher_1 = require(\"./default-model-fetcher\");\nconst frame_processor_1 = require(\"./frame-processor\");\nconst logging_1 = require(\"./logging\");\nconst messages_1 = require(\"./messages\");\nconst models_1 = require(\"./models\");\nconst resampler_1 = require(\"./resampler\");\nexports.DEFAULT_MODEL = \"legacy\";\nexports.ort = ortInstance;\nconst workletFile = \"vad.worklet.bundle.min.js\";\nconst sileroV5File = \"silero_vad_v5.onnx\";\nconst sileroLegacyFile = \"silero_vad_legacy.onnx\";\nconst getDefaultRealTimeVADOptions = (model) => {\n return {\n ...frame_processor_1.defaultFrameProcessorOptions,\n onFrameProcessed: () => { },\n onVADMisfire: () => {\n logging_1.log.debug(\"VAD misfire\");\n },\n onSpeechStart: () => {\n logging_1.log.debug(\"Detected speech start\");\n },\n onSpeechEnd: () => {\n logging_1.log.debug(\"Detected speech end\");\n },\n onSpeechRealStart: () => {\n logging_1.log.debug(\"Detected real speech start\");\n },\n baseAssetPath: \"./\",\n onnxWASMBasePath: \"./\",\n model: model,\n workletOptions: {},\n getStream: async () => {\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: {\n channelCount: 1,\n echoCancellation: true,\n autoGainControl: true,\n noiseSuppression: true,\n },\n });\n return stream;\n },\n pauseStream: async (_stream) => {\n _stream.getTracks().forEach((track) => {\n track.stop();\n });\n },\n resumeStream: async () => {\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: {\n channelCount: 1,\n echoCancellation: true,\n autoGainControl: true,\n noiseSuppression: true,\n },\n });\n return stream;\n },\n ortConfig: (ort) => {\n ort.env.logLevel = \"error\";\n },\n startOnLoad: true,\n processorType: \"auto\",\n };\n};\nexports.getDefaultRealTimeVADOptions = getDefaultRealTimeVADOptions;\nconst detectProcessorType = (ctx) => {\n if (\"audioWorklet\" in ctx && typeof AudioWorkletNode === \"function\") {\n return \"AudioWorklet\";\n }\n return \"ScriptProcessor\";\n};\nasync function getVADNodeAsWorklet(workletURL, workletOptions, audioContext, frameSamples, processFrame) {\n await audioContext.audioWorklet.addModule(workletURL);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n workletOptions.processorOptions = {\n ...(workletOptions.processorOptions ?? {}),\n frameSamples: frameSamples,\n };\n const audioNode = new AudioWorkletNode(audioContext, \"vad-helper-worklet\", workletOptions);\n audioNode.port.onmessage = async (ev) => {\n const data = ev.data;\n if (!(typeof data === \"object\" && data && \"message\" in data)) {\n console.error(\"Invalid message event\", data);\n return;\n }\n switch (data.message) {\n case messages_1.Message.AudioFrame: {\n if (!(\"data\" in data && data.data instanceof ArrayBuffer)) {\n console.log(\"Audio frame message has no data\");\n return;\n }\n const frame = new Float32Array(data.data);\n await processFrame(frame);\n break;\n }\n }\n };\n return audioNode;\n}\nasync function getVADNodeAsScriptProcessor(audioContext, frameSamples, processFrame) {\n const resampler = new resampler_1.Resampler({\n nativeSampleRate: audioContext.sampleRate,\n targetSampleRate: 16000,\n targetFrameSize: frameSamples,\n });\n logging_1.log.debug(\"using script processor\");\n // Fallback to ScriptProcessor\n const bufferSize = 4096; // Increased for more stable processing\n const audioNode = audioContext.createScriptProcessor(bufferSize, 1, 1);\n let processingAudio = false;\n audioNode.onaudioprocess = async (e) => {\n if (processingAudio)\n return;\n processingAudio = true;\n try {\n const input = e.inputBuffer.getChannelData(0);\n const output = e.outputBuffer.getChannelData(0);\n output.fill(0);\n // Process through resampler\n const frames = resampler.process(input);\n for (const frame of frames) {\n await processFrame(frame);\n }\n }\n catch (error) {\n console.error(\"Error processing audio:\", error);\n }\n finally {\n processingAudio = false;\n }\n };\n // https://github.com/WebAudio/web-audio-api/issues/345\n // -> we need to connect an output or will not work due to chrome bug\n audioNode.connect(audioContext.destination);\n return audioNode;\n}\nclass MicVAD {\n constructor(options, frameProcessor, model, frameSamples, listening = false, errored = null, _stream = null, _audioContext = null, _vadNode = null, _mediaStreamAudioSourceNode = null, _audioProcessorAdapterType = null, initializationState = \"uninitialized\", ownsAudioContext = false) {\n this.options = options;\n this.frameProcessor = frameProcessor;\n this.model = model;\n this.frameSamples = frameSamples;\n this.listening = listening;\n this.errored = errored;\n this._stream = _stream;\n this._audioContext = _audioContext;\n this._vadNode = _vadNode;\n this._mediaStreamAudioSourceNode = _mediaStreamAudioSourceNode;\n this._audioProcessorAdapterType = _audioProcessorAdapterType;\n this.initializationState = initializationState;\n this.ownsAudioContext = ownsAudioContext;\n this.getAudioInstances = () => {\n if (this._stream === null ||\n this._audioContext === null ||\n this._vadNode == null ||\n this._mediaStreamAudioSourceNode == null) {\n throw new Error(\"MicVAD has null stream, audio context, or processor adapter\");\n }\n return {\n stream: this._stream,\n audioContext: this._audioContext,\n vadNode: this._vadNode,\n mediaStreamAudioSourceNode: this._mediaStreamAudioSourceNode,\n };\n };\n this.setErrored = (error) => {\n this.initializationState = \"errored\";\n this.errored = error;\n };\n this.start = async () => {\n switch (this.initializationState) {\n case \"uninitialized\": {\n logging_1.log.debug(\"initializing micVAD\");\n this.initializationState = \"initializing\";\n this.frameProcessor.resume();\n try {\n this._stream = await this.options.getStream();\n }\n catch (error) {\n if (error instanceof Error) {\n this.setErrored(error.message);\n }\n else {\n this.setErrored(String(error));\n }\n throw error;\n }\n if (this.options.audioContext) {\n console.log(\"using custom audio context\");\n this._audioContext = this.options.audioContext;\n }\n else {\n console.log(\"using default audio context\");\n this._audioContext = new AudioContext();\n this.ownsAudioContext = true;\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!this._audioContext) {\n this.setErrored(\"Audio context is null\");\n throw Error(\"Audio context is null\");\n }\n this._audioProcessorAdapterType =\n this.options.processorType == \"auto\"\n ? detectProcessorType(this._audioContext)\n : this.options.processorType;\n switch (this._audioProcessorAdapterType) {\n case \"AudioWorklet\":\n {\n this._vadNode = await getVADNodeAsWorklet(this.options.baseAssetPath + workletFile, this.options.workletOptions, this._audioContext, this.frameSamples, this.processFrame);\n }\n break;\n case \"ScriptProcessor\":\n {\n this._vadNode = await getVADNodeAsScriptProcessor(this._audioContext, this.frameSamples, this.processFrame);\n }\n break;\n default: {\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `Unsupported audio processor adapter type: ${this._audioProcessorAdapterType}`);\n }\n }\n this._mediaStreamAudioSourceNode = new MediaStreamAudioSourceNode(this._audioContext, {\n mediaStream: this._stream,\n });\n this._mediaStreamAudioSourceNode.connect(this._vadNode);\n logging_1.log.debug(\"started micVAD\");\n this.listening = true;\n this.initializationState = \"initialized\";\n break;\n }\n case \"initializing\": {\n logging_1.log.warn(\"start called while initializing\");\n break;\n }\n case \"initialized\": {\n if (this.listening) {\n return;\n }\n this.listening = true;\n this.frameProcessor.resume();\n const { stream, audioContext, vadNode } = this.getAudioInstances();\n this._stream = await this.options.resumeStream(stream);\n const mediaStreamAudioSourceNode = new MediaStreamAudioSourceNode(audioContext, { mediaStream: this._stream });\n this._mediaStreamAudioSourceNode = mediaStreamAudioSourceNode;\n mediaStreamAudioSourceNode.connect(vadNode);\n break;\n }\n case \"destroyed\": {\n logging_1.log.warn(\"start called after destroyed\");\n break;\n }\n case \"errored\": {\n logging_1.log.error(\"start called after errored\");\n break;\n }\n default: {\n logging_1.log.warn(\"weird initialization state\");\n break;\n }\n }\n };\n this.pause = async () => {\n if (!this.listening) {\n return;\n }\n this.listening = false;\n const { stream, mediaStreamAudioSourceNode } = this.getAudioInstances();\n await this.options.pauseStream(stream);\n mediaStreamAudioSourceNode.disconnect();\n this.frameProcessor.pause(this.handleFrameProcessorEvent);\n };\n this.destroy = async () => {\n logging_1.log.debug(\"destroy called\");\n this.initializationState = \"destroyed\";\n const { vadNode } = this.getAudioInstances();\n if (vadNode instanceof AudioWorkletNode) {\n vadNode.port.postMessage(messages_1.Message.SpeechStop);\n }\n if (this.listening) {\n await this.pause();\n }\n await this.model.release();\n if (this.ownsAudioContext) {\n await this._audioContext?.close();\n }\n };\n this.setOptions = (update) => {\n this.frameProcessor.setOptions(update);\n };\n this.processFrame = async (frame) => {\n await this.frameProcessor.process(frame, this.handleFrameProcessorEvent);\n };\n this.handleFrameProcessorEvent = (ev) => {\n switch (ev.msg) {\n case messages_1.Message.FrameProcessed:\n void this.options.onFrameProcessed(ev.probs, ev.frame);\n break;\n case messages_1.Message.SpeechStart:\n void this.options.onSpeechStart();\n break;\n case messages_1.Message.SpeechRealStart:\n void this.options.onSpeechRealStart();\n break;\n case messages_1.Message.VADMisfire:\n void this.options.onVADMisfire();\n break;\n case messages_1.Message.SpeechEnd:\n void this.options.onSpeechEnd(ev.audio);\n break;\n }\n };\n }\n static async new(options = {}) {\n const fullOptions = {\n ...(0, exports.getDefaultRealTimeVADOptions)(options.model ?? exports.DEFAULT_MODEL),\n ...options,\n };\n (0, frame_processor_1.validateOptions)(fullOptions);\n exports.ort.env.wasm.wasmPaths = fullOptions.onnxWASMBasePath;\n if (fullOptions.ortConfig !== undefined) {\n fullOptions.ortConfig(exports.ort);\n }\n const modelFile = fullOptions.model === \"v5\" ? sileroV5File : sileroLegacyFile;\n const modelURL = fullOptions.baseAssetPath + modelFile;\n const modelFactory = fullOptions.model === \"v5\" ? models_1.SileroV5.new : models_1.SileroLegacy.new;\n let model;\n try {\n model = await modelFactory(exports.ort, () => (0, default_model_fetcher_1.defaultModelFetcher)(modelURL));\n }\n catch (e) {\n console.error(`Encountered an error while loading model file ${modelURL}`);\n throw e;\n }\n const frameSamples = fullOptions.model === \"v5\" ? 512 : 1536;\n const msPerFrame = frameSamples / 16;\n const frameProcessor = new frame_processor_1.FrameProcessor(model.process, model.reset_state, {\n positiveSpeechThreshold: fullOptions.positiveSpeechThreshold,\n negativeSpeechThreshold: fullOptions.negativeSpeechThreshold,\n redemptionMs: fullOptions.redemptionMs,\n preSpeechPadMs: fullOptions.preSpeechPadMs,\n minSpeechMs: fullOptions.minSpeechMs,\n submitUserSpeechOnPause: fullOptions.submitUserSpeechOnPause,\n }, msPerFrame);\n const micVad = new MicVAD(fullOptions, frameProcessor, model, frameSamples);\n // things would be simpler if we didn't have to startOnLoad by default, but we are locked in\n if (fullOptions.startOnLoad) {\n try {\n await micVad.start();\n }\n catch (e) {\n console.error(\"Error starting micVad\", e);\n throw e;\n }\n }\n return micVad;\n }\n}\nexports.MicVAD = MicVAD;\n//# sourceMappingURL=real-time-vad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultRealTimeVADOptions = exports.MicVAD = exports.DEFAULT_MODEL = exports.utils = exports.NonRealTimeVAD = exports.Message = exports.FrameProcessor = exports.defaultModelFetcher = exports.baseAssetPath = void 0;\nvar asset_path_1 = require(\"./asset-path\");\nObject.defineProperty(exports, \"baseAssetPath\", { enumerable: true, get: function () { return asset_path_1.baseAssetPath; } });\nvar default_model_fetcher_1 = require(\"./default-model-fetcher\");\nObject.defineProperty(exports, \"defaultModelFetcher\", { enumerable: true, get: function () { return default_model_fetcher_1.defaultModelFetcher; } });\nvar frame_processor_1 = require(\"./frame-processor\");\nObject.defineProperty(exports, \"FrameProcessor\", { enumerable: true, get: function () { return frame_processor_1.FrameProcessor; } });\nvar messages_1 = require(\"./messages\");\nObject.defineProperty(exports, \"Message\", { enumerable: true, get: function () { return messages_1.Message; } });\nvar non_real_time_vad_1 = require(\"./non-real-time-vad\");\nObject.defineProperty(exports, \"NonRealTimeVAD\", { enumerable: true, get: function () { return non_real_time_vad_1.NonRealTimeVAD; } });\nconst utils_1 = require(\"./utils\");\nexports.utils = {\n audioFileToArray: utils_1.audioFileToArray,\n minFramesForTargetMS: utils_1.minFramesForTargetMS,\n arrayBufferToBase64: utils_1.arrayBufferToBase64,\n encodeWAV: utils_1.encodeWAV,\n};\nvar real_time_vad_1 = require(\"./real-time-vad\");\nObject.defineProperty(exports, \"DEFAULT_MODEL\", { enumerable: true, get: function () { return real_time_vad_1.DEFAULT_MODEL; } });\nObject.defineProperty(exports, \"MicVAD\", { enumerable: true, get: function () { return real_time_vad_1.MicVAD; } });\nObject.defineProperty(exports, \"getDefaultRealTimeVADOptions\", { enumerable: true, get: function () { return real_time_vad_1.getDefaultRealTimeVADOptions; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useMicVAD = exports.getDefaultReactRealTimeVADOptions = exports.utils = void 0;\nconst vad_web_1 = require(\"@ricky0123/vad-web\");\nconst react_1 = require(\"react\");\nvar vad_web_2 = require(\"@ricky0123/vad-web\");\nObject.defineProperty(exports, \"utils\", { enumerable: true, get: function () { return vad_web_2.utils; } });\nconst defaultReactOptions = {\n userSpeakingThreshold: 0.6,\n};\nconst getDefaultReactRealTimeVADOptions = (model) => {\n return {\n ...(0, vad_web_1.getDefaultRealTimeVADOptions)(model),\n ...defaultReactOptions,\n };\n};\nexports.getDefaultReactRealTimeVADOptions = getDefaultReactRealTimeVADOptions;\nfunction useOptions(options) {\n const model = options.model ?? vad_web_1.DEFAULT_MODEL;\n const fullOptions = {\n ...(0, exports.getDefaultReactRealTimeVADOptions)(model),\n ...options,\n };\n const reactOptions = {\n userSpeakingThreshold: fullOptions.userSpeakingThreshold,\n };\n const vadOptions = {\n positiveSpeechThreshold: fullOptions.positiveSpeechThreshold,\n negativeSpeechThreshold: fullOptions.negativeSpeechThreshold,\n redemptionMs: fullOptions.redemptionMs,\n preSpeechPadMs: fullOptions.preSpeechPadMs,\n minSpeechMs: fullOptions.minSpeechMs,\n submitUserSpeechOnPause: fullOptions.submitUserSpeechOnPause,\n onFrameProcessed: fullOptions.onFrameProcessed,\n onVADMisfire: fullOptions.onVADMisfire,\n onSpeechStart: fullOptions.onSpeechStart,\n onSpeechEnd: fullOptions.onSpeechEnd,\n onSpeechRealStart: fullOptions.onSpeechRealStart,\n baseAssetPath: fullOptions.baseAssetPath,\n onnxWASMBasePath: fullOptions.onnxWASMBasePath,\n model: fullOptions.model,\n workletOptions: fullOptions.workletOptions,\n getStream: fullOptions.getStream,\n pauseStream: fullOptions.pauseStream,\n resumeStream: fullOptions.resumeStream,\n startOnLoad: fullOptions.startOnLoad,\n processorType: fullOptions.processorType,\n };\n if (fullOptions.ortConfig) {\n vadOptions.ortConfig = fullOptions.ortConfig;\n }\n if (fullOptions.audioContext) {\n vadOptions.audioContext = fullOptions.audioContext;\n }\n return [reactOptions, vadOptions];\n}\nfunction useMicVAD(options) {\n const [reactOptions, vadOptions] = useOptions(options);\n const model = options[\"model\"] ?? vad_web_1.DEFAULT_MODEL;\n const [userSpeaking, updateUserSpeaking] = (0, react_1.useState)(false);\n const [loading, setLoading] = (0, react_1.useState)(true);\n const [errored, setErrored] = (0, react_1.useState)(false);\n const [listening, setListening] = (0, react_1.useState)(false);\n const [vad, setVAD] = (0, react_1.useState)(null);\n // Use refs to store the latest callbacks so they can be called without recreating the VAD\n const onFrameProcessedRef = (0, react_1.useRef)(vadOptions.onFrameProcessed);\n const onSpeechEndRef = (0, react_1.useRef)(vadOptions.onSpeechEnd);\n const onSpeechStartRef = (0, react_1.useRef)(vadOptions.onSpeechStart);\n const onSpeechRealStartRef = (0, react_1.useRef)(vadOptions.onSpeechRealStart);\n const onVADMisfireRef = (0, react_1.useRef)(vadOptions.onVADMisfire);\n const getStreamRef = (0, react_1.useRef)(vadOptions.getStream);\n // Update refs when callbacks change\n (0, react_1.useEffect)(() => {\n onFrameProcessedRef.current = vadOptions.onFrameProcessed;\n onSpeechEndRef.current = vadOptions.onSpeechEnd;\n onSpeechStartRef.current = vadOptions.onSpeechStart;\n onSpeechRealStartRef.current = vadOptions.onSpeechRealStart;\n onVADMisfireRef.current = vadOptions.onVADMisfire;\n }, [\n vadOptions.onFrameProcessed,\n vadOptions.onSpeechEnd,\n vadOptions.onSpeechStart,\n vadOptions.onSpeechRealStart,\n vadOptions.onVADMisfire,\n ]);\n // Update getStream ref - this is the key fix!\n (0, react_1.useEffect)(() => {\n getStreamRef.current = vadOptions.getStream;\n }, [vadOptions.getStream]);\n // Serialize getStream function to detect changes\n // We use a simple approach: convert function to string\n const getStreamKey = vadOptions.getStream.toString();\n (0, react_1.useEffect)(() => {\n let myvad = null;\n let canceled = false;\n const setup = async () => {\n try {\n setLoading(true);\n setErrored(false);\n // Create VAD options with stable callback wrappers\n const finalVadOptions = {\n ...vadOptions,\n onFrameProcessed: (probs, frame) => {\n const isSpeaking = probs.isSpeech > reactOptions.userSpeakingThreshold;\n updateUserSpeaking(isSpeaking);\n void onFrameProcessedRef.current(probs, frame);\n },\n onSpeechEnd: (audio) => {\n void onSpeechEndRef.current(audio);\n },\n onSpeechStart: () => {\n void onSpeechStartRef.current();\n },\n onSpeechRealStart: () => {\n void onSpeechRealStartRef.current();\n },\n onVADMisfire: () => {\n void onVADMisfireRef.current();\n },\n getStream: () => {\n return getStreamRef.current();\n },\n };\n myvad = await vad_web_1.MicVAD.new(finalVadOptions);\n if (canceled) {\n await myvad.destroy();\n return;\n }\n setVAD(myvad);\n if (vadOptions.startOnLoad) {\n await myvad.start();\n setListening(true);\n }\n setLoading(false);\n }\n catch (e) {\n setLoading(false);\n if (e instanceof Error) {\n setErrored(e.message);\n }\n else {\n setErrored(String(e));\n }\n }\n };\n setup().catch(() => {\n // Error already handled in setup function\n });\n return function cleanUp() {\n canceled = true;\n if (myvad) {\n void myvad.destroy();\n }\n if (!loading && !errored) {\n setListening(false);\n }\n };\n }, [getStreamKey, model]); // Recreate when getStream changes or model changes\n const pause = (0, react_1.useCallback)(async () => {\n if (!loading && !errored) {\n await vad?.pause();\n setListening(false);\n }\n }, [loading, errored, vad]);\n const start = (0, react_1.useCallback)(async () => {\n if (!loading && !errored) {\n await vad?.start();\n setListening(true);\n }\n }, [loading, errored, vad]);\n const toggle = (0, react_1.useCallback)(async () => {\n if (listening) {\n await pause();\n }\n else {\n await start();\n }\n }, [listening, pause, start]);\n return {\n listening,\n errored,\n loading,\n userSpeaking,\n pause,\n start,\n toggle,\n };\n}\nexports.useMicVAD = useMicVAD;\n//# sourceMappingURL=index.js.map","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useMicVAD } from '@ricky0123/vad-react';\nimport { useRqmiiAgentContext } from '../provider/RqmiiAgentProvider';\nimport type { UseRqmiiVADOptions, UseRqmiiVADReturn } from '../types';\nimport { log as vadLog } from '@ricky0123/vad-web/dist/logging.js';\n\n// Mute internal VAD loggers\nvadLog.debug = () => {};\nvadLog.warn = () => {};\n\nconst MIC_CONSTRAINTS: MediaTrackConstraints = {\n echoCancellation: true,\n noiseSuppression: true,\n // Disabled: on mobile, a continuously-live mic with autoGainControl puts the\n // OS audio session into voice-processing mode, which applies AGC/ducking to\n // the TTS *playback* stream too — making the agent voice swell and dip in\n // volume on its own (reported mobile-only, intermittent). Turning AGC off on\n // the capture path stops the OS from dynamically re-gaining the output.\n autoGainControl: false,\n channelCount: 1,\n};\n\nif (typeof window !== 'undefined') {\n window.addEventListener('unhandledrejection', (event) => {\n if (event.reason && event.reason.message && event.reason.message.includes('MicVAD has null stream')) {\n event.preventDefault(); // Suppress the known non-fatal VAD cleanup error\n }\n });\n\n window.addEventListener('error', (event) => {\n if (\n event.message && \n (event.message.includes(\"Cannot read properties of null (reading 'state')\") || \n event.message.includes(\"Cannot read properties of undefined (reading 'S')\"))\n ) {\n event.preventDefault(); // Suppress known non-fatal R3F/VAD cleanup errors\n }\n });\n}\n\nconst VAD_SAMPLE_RATE = 16000;\nconst FRAME_SAMPLES = 512;\nconst PRE_ROLL_MS = 1000;\nconst SPEECH_END_DELAY_MS = 300;\nconst FRAME_DURATION_MS = (FRAME_SAMPLES / VAD_SAMPLE_RATE) * 1000;\nconst RING_BUFFER_SIZE = Math.ceil(PRE_ROLL_MS / FRAME_DURATION_MS);\n\nfunction float32ToPcm16(samples: Float32Array): Uint8Array {\n const buffer = new ArrayBuffer(samples.length * 2);\n const view = new DataView(buffer);\n for (let i = 0; i < samples.length; i++) {\n const s = Math.max(-1, Math.min(1, samples[i]));\n view.setInt16(i * 2, s < 0 ? s * 0x8000 : s * 0x7FFF, true);\n }\n return new Uint8Array(buffer);\n}\n\nfunction concatFloat32(arrays: Float32Array[]): Float32Array {\n if (!arrays.length) return new Float32Array(0);\n if (arrays.length === 1) return arrays[0];\n const total = arrays.reduce((s, a) => s + a.length, 0);\n const result = new Float32Array(total);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function useRqmiiVAD(options: UseRqmiiVADOptions = {}): UseRqmiiVADReturn {\n const {\n onAudioChunk: onAudioChunkProp,\n onAudioEnd,\n onSpeechStart,\n onSpeechEnd,\n onVADMisfire,\n onError,\n enabled = true,\n preloadStream = true,\n } = options;\n\n const { sendAudioChunk, endAudioStream } = useRqmiiAgentContext();\n\n const [isSpeaking, setIsSpeaking] = useState(false);\n const [micError, setMicError] = useState<string | null>(null);\n\n const streamRef = useRef<MediaStream | null>(null);\n const cooldownRef = useRef(false);\n const speechEndTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const pcmRingRef = useRef<Float32Array[]>([]);\n const capturingRef = useRef(false);\n const frameBatchRef = useRef<Float32Array[]>([]);\n\n const onAudioChunk = onAudioChunkProp ?? sendAudioChunk;\n\n useEffect(() => {\n if (!enabled || !preloadStream) return;\n if (typeof navigator === 'undefined' || !navigator.mediaDevices?.getUserMedia) return;\n\n navigator.mediaDevices\n .getUserMedia({ audio: MIC_CONSTRAINTS })\n .then((stream) => {\n streamRef.current = stream;\n setMicError(null);\n })\n .catch((error) => {\n setMicError('permission_denied');\n onError?.(error);\n });\n }, [enabled, onError, preloadStream]);\n\n const getStream = useCallback(async (): Promise<MediaStream> => {\n if (typeof navigator === 'undefined' || !navigator.mediaDevices?.getUserMedia) {\n throw new Error('Microphone APIs are unavailable in this browser');\n }\n if (streamRef.current && streamRef.current.getTracks()[0]?.readyState === 'live') {\n return streamRef.current;\n }\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: MIC_CONSTRAINTS,\n });\n streamRef.current = stream;\n setMicError(null);\n return stream;\n }, []);\n\n const pauseStream = useCallback(async (stream: MediaStream) => {\n stream.getTracks().forEach((track) => {\n track.enabled = false;\n });\n }, []);\n\n const resumeStream = useCallback(async (): Promise<MediaStream> => {\n if (streamRef.current && streamRef.current.getTracks()[0]?.readyState === 'live') {\n streamRef.current.getTracks().forEach((track) => {\n track.enabled = true;\n });\n return streamRef.current;\n }\n return getStream();\n }, [getStream]);\n\n const drainRingBuffer = useCallback(() => {\n const frames = pcmRingRef.current;\n pcmRingRef.current = [];\n return concatFloat32(frames);\n }, []);\n\n const startCapture = useCallback(() => {\n frameBatchRef.current = [];\n const preRollFrames = pcmRingRef.current;\n pcmRingRef.current = [];\n for (const frame of preRollFrames) {\n onAudioChunk(float32ToPcm16(frame));\n }\n capturingRef.current = true;\n }, [onAudioChunk]);\n\n const stopCapture = useCallback(() => {\n capturingRef.current = false;\n const batch = frameBatchRef.current;\n frameBatchRef.current = [];\n if (batch.length > 0) {\n const samples = concatFloat32(batch);\n onAudioChunk(float32ToPcm16(samples));\n }\n }, [onAudioChunk]);\n\n const cleanupStream = useCallback(() => {\n if (!streamRef.current) return;\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n }, []);\n\n if (!enabled) {\n return {\n isListening: false,\n isLoading: false,\n isErrored: false,\n isSpeaking: false,\n micError: null,\n toggle: async () => false,\n prepare: async () => null,\n start: async () => false,\n stop: async () => false,\n pause: async () => {},\n userSpeaking: false,\n };\n }\n\n const vad = useMicVAD({\n model: 'v5',\n startOnLoad: false,\n processorType: 'auto',\n positiveSpeechThreshold: 0.5,\n negativeSpeechThreshold: 0.3,\n redemptionMs: 800,\n preSpeechPadMs: PRE_ROLL_MS,\n minSpeechMs: 150,\n submitUserSpeechOnPause: false,\n userSpeakingThreshold: 0.7,\n workletOptions: { processorOptions: { frameSamples: FRAME_SAMPLES } },\n baseAssetPath: 'https://cdn.jsdelivr.net/npm/@ricky0123/vad-web@0.0.30/dist/',\n onnxWASMBasePath: 'https://cdn.jsdelivr.net/npm/onnxruntime-web@1.24.1/dist/',\n ortConfig: (ort: any) => {\n ort.env.wasm.numThreads = 1;\n ort.env.logLevel = 'error';\n },\n getStream,\n pauseStream,\n resumeStream,\n onFrameProcessed: (_probs: unknown, frame: Float32Array | undefined) => {\n if (!frame) return;\n pcmRingRef.current.push(new Float32Array(frame));\n if (pcmRingRef.current.length > RING_BUFFER_SIZE) pcmRingRef.current.shift();\n\n if (capturingRef.current) {\n const batch = frameBatchRef.current;\n batch.push(new Float32Array(frame));\n if (batch.length >= 3) {\n const samples = concatFloat32(batch);\n batch.length = 0;\n onAudioChunk(float32ToPcm16(samples));\n }\n }\n },\n onSpeechStart: () => {\n if (cooldownRef.current) return;\n if (speechEndTimerRef.current) {\n clearTimeout(speechEndTimerRef.current);\n speechEndTimerRef.current = null;\n }\n\n setIsSpeaking(true);\n // Barge-in is intentionally NOT triggered here. VAD speech-start fires on\n // any energy spike (coughs, keyboard, background noise, short \"uh\"), which\n // used to cut the agent off on false positives. The backend now performs\n // barge-in when the first *confirmed* partial transcript arrives, so we\n // only start capturing audio here.\n onSpeechStart?.();\n startCapture();\n },\n onSpeechEnd: () => {\n speechEndTimerRef.current = setTimeout(() => {\n setIsSpeaking(false);\n stopCapture();\n if (onAudioEnd) onAudioEnd();\n else endAudioStream();\n cooldownRef.current = true;\n setTimeout(() => {\n cooldownRef.current = false;\n }, 300);\n onSpeechEnd?.();\n }, SPEECH_END_DELAY_MS);\n },\n onVADMisfire: () => {\n if (speechEndTimerRef.current) {\n clearTimeout(speechEndTimerRef.current);\n speechEndTimerRef.current = null;\n }\n setIsSpeaking(false);\n stopCapture();\n onVADMisfire?.();\n },\n });\n\n const stop = useCallback(async (): Promise<boolean> => {\n if (!enabled || vad.loading || vad.errored) return false;\n if (!vad.listening) return true;\n if (speechEndTimerRef.current) {\n clearTimeout(speechEndTimerRef.current);\n speechEndTimerRef.current = null;\n }\n setIsSpeaking(false);\n stopCapture();\n await vad.pause();\n return true;\n }, [enabled, stopCapture, vad]);\n\n const safeVadStart = useCallback(async () => {\n try {\n await vad.start();\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n if (msg.includes('null stream') || msg.includes('audio context') || msg.includes('processor adapter')) {\n await new Promise((r) => setTimeout(r, 100));\n await vad.start();\n } else {\n throw e;\n }\n }\n }, [vad]);\n\n const toggle = useCallback(async (): Promise<boolean> => {\n if (!enabled || vad.loading || vad.errored) return false;\n if (vad.listening) {\n if (speechEndTimerRef.current) {\n clearTimeout(speechEndTimerRef.current);\n speechEndTimerRef.current = null;\n }\n setIsSpeaking(false);\n stopCapture();\n await vad.pause();\n } else {\n await safeVadStart();\n }\n return true;\n }, [enabled, stopCapture, safeVadStart]);\n\n const prepare = useCallback(async (): Promise<MediaStream | null> => {\n if (!enabled) return null;\n return getStream();\n }, [enabled, getStream]);\n\n const start = useCallback(async (): Promise<boolean> => {\n if (!enabled || vad.loading || vad.errored) return false;\n if (vad.listening) return true;\n await safeVadStart();\n return true;\n }, [enabled, safeVadStart]);\n\n useEffect(() => {\n return () => {\n if (speechEndTimerRef.current) {\n clearTimeout(speechEndTimerRef.current);\n }\n stopCapture();\n cleanupStream();\n };\n }, [cleanupStream, stopCapture]);\n\n return {\n isListening: vad.listening,\n isLoading: vad.loading,\n isErrored: !!vad.errored,\n isSpeaking,\n micError,\n toggle,\n prepare,\n start,\n stop,\n pause: vad.pause,\n userSpeaking: vad.userSpeaking,\n };\n}\n"],"names":["useRqmiiVoice","ctx","useRqmiiAgentContext","assetPath","currentScript","basePath","defaultModelFetcher_1","defaultModelFetcher","path","model","logging","mkLogger","level","message","messages","Message","frameProcessor","logging_1","require$$0","messages_1","require$$1","validateOptions","options","concatArrays","arrays","sizes","out","next","outArray","arr","index","place","calculateFrameParams","msPerFrame","redemptionFrames","preSpeechPadFrames","minSpeechFrames","FrameProcessor","modelProcessFunc","modelResetFunc","update","handleEvent","audioBuffer","speaking","acc","item","audio","frame","probs","isSpeech","ort","$n","Nu","Lu","Wu","vn","require","n","k","rt","Gu","r","o","ct","Tt","Ze","Ge","Hu","br","xn","i","d","a","_r","wr","$r","vr","ce","Sn","te","xr","Sr","Tr","Ir","l","c","p","h","_","y","g","b","w","v","Tn","Cr","Ar","Er","kr","Pr","zr","It","fe","Qe","pt","Br","Dr","Or","Mr","Ur","Rr","t","u","s","xe","In","mt","Vr","be","ye","Re","Ve","Cn","Ct","Nr","e","Lr","Wr","Gr","Hr","Fr","qr","An","we","At","Qr","Fu","jr","Zr","Xr","En","He","Et","kt","Pt","zt","ft","Bt","Dt","Ot","Ut","Mt","$e","qu","Ku","Rt","kn","ju","Zu","eo","Qu","Yr","to","Jr","no","Pn","zn","Vt","ro","Xu","Yu","Ju","ne","ve","ht","Y","Nt","oo","io","ed","td","nd","ot","rd","so","ao","Fe","ke","qe","it","gt","Lt","Wt","Bn","N","yt","Dn","od","id","uo","lo","Gt","sd","Z","Pe","On","ze","x","Ye","Ht","co","po","H","Ft","Mn","fo","Rn","ho","ad","mo","ud","go","qt","Kt","Un","yo","bo","jt","dd","Zt","_o","Qt","wo","Vn","Nn","ld","cd","$o","Wn","Ln","xo","So","Gn","L","ue","Je","Fn","re","pe","P","J","qn","et","Ie","Xt","S","C","To","Yt","Hn","Io","q","A","$","T","I","E","B","z","oe","M","O","he","ae","ge","W","K","U","R","G","V","j","Q","pd","Co","md","fd","hd","gd","me","Ao","Eo","Ne","yd","bd","_d","wd","$d","vd","xd","Sd","Td","Id","Be","ko","Po","zo","Bo","Do","Oo","Mo","Uo","Ro","Vo","No","Jt","Kn","De","Cd","en","Oe","Ad","Ed","kd","Pd","zd","Bd","Dd","Od","Md","Ud","Me","Lo","Wo","Go","Ho","Fo","qo","Ko","jo","Zo","Qo","Xo","Yo","Jo","jn","ei","Rd","Zn","Vd","Nd","Ld","st","Wd","ti","tn","Gd","Hd","Fd","ni","ri","qd","Kd","oi","ii","jd","ee","si","ai","ui","di","li","ci","pi","mi","fi","Zd","hi","gi","yi","bi","bt","_i","nn","wi","$i","vi","xi","Si","Ti","Ii","Ci","Ai","Ei","ki","Pi","zi","Bi","Di","Oi","Mi","Ui","Qn","Xn","Ri","Vi","Ni","Qd","Xd","Li","rn","Yd","Jd","Gi","Hi","el","tl","Ue","Fi","qi","Ki","ji","Zi","Qi","Xi","Yi","Ji","es","ts","rl","ol","il","sl","ns","rs","os","Ce","Ae","Ee","on","Ke","le","is","sn","ss","as","_t","an","un","al","ul","Yn","us","dl","Jn","ll","wt","dn","X","Te","se","cl","ds","ls","pl","cs","ln","ml","ps","fl","ms","fs","hs","f","m","gs","ys","bs","hl","er","gl","tr","nr","_s","yl","bl","rr","ws","$s","vs","_l","wl","$l","xs","Ss","vl","Ts","xl","Is","Cs","Sl","As","Es","ks","Tl","Il","Cl","Ps","zs","Bs","or","cn","Ds","Al","El","ir","sr","Os","kl","Ms","Us","Rs","Pl","Vs","zl","Bl","Ns","Ls","Dl","Ws","Gs","Ol","Ml","Hs","Fs","qs","Ul","Ks","js","Zs","Rl","Vl","Qs","Xs","Ys","Nl","Ll","Js","ea","ta","Wl","Gl","na","ra","oa","Le","je","at","ut","Hl","Fl","ql","Kl","jl","Zl","Ql","Xl","ia","sa","aa","_e","ec","da","ua","tc","$t","la","ar","nc","rc","oc","ic","ur","ca","pa","dr","sc","pn","ma","lr","ac","uc","fa","dc","ha","ga","ya","lc","cc","ba","_a","pc","mc","wa","$a","fc","va","xa","hc","gc","yc","Sa","Ta","Ia","ie","bc","_c","wc","$c","vc","xc","Sc","Tc","Ca","Aa","mn","Ea","ka","Pa","za","Ic","Cc","Ba","Da","Oa","Ma","Ua","Ra","Va","Na","La","Wa","Ga","Ha","Fa","Ec","kc","qa","Ka","ja","Pc","zc","Za","Qa","Bc","Dc","Xa","Ya","Ja","Oc","Mc","Uc","eu","Rc","Vc","Nc","Lc","Wc","Gc","Hc","Fc","tu","qc","Kc","jc","Zc","Qc","nu","ru","ou","Xc","Yc","iu","su","Jc","fn","ep","au","tp","np","uu","du","lu","rp","cu","pu","mu","fu","ip","sp","ap","hu","gu","up","dp","yu","bu","_u","wu","hn","$u","vu","pr","lp","cp","cr","xu","Su","pp","vt","mr","Tu","mp","tt","fp","Iu","Cu","de","We","St","yr","nt","Se","xt","yn","bn","gn","fr","hr","dt","lt","gp","Au","Eu","ku","Pu","zu","Bu","Du","gr","Ou","yp","_n","Mu","Ru","wn","Uu","bp","Vu","wp","_p","Kr","module","common","legacy","SileroLegacy","ortInstance","_session","_h","_sr","zeroes","audioFrame","inputs","modelFetcher","modelArrayBuffer","v5","getNewState","SileroV5","_state","__createBinding","this","k2","desc","__exportStar","exports","legacy_1","v5_1","require$$2","resampler","Resampler","outputFrames","sample","outputFrame","audioInput","outputIndex","inputIndex","sum","num","value","__setModuleDefault","__importStar","mod","result","asset_path_1","default_model_fetcher_1","frame_processor_1","require$$3","require$$4","models_1","require$$5","resampler_1","require$$6","NonRealTimeVAD","fullOptions","inputAudio","sampleRate","resamplerOptions","start","end","frameIndex","messageContainer","event","utils","minFramesForTargetMS","targetDuration","frameSamples","arrayBufferToBase64","buffer","bytes","len","binary","byte","encodeWAV","samples","format","numChannels","bitDepth","bytesPerSample","blockAlign","view","writeString","floatTo16BitPCM","writeFloat32","output","offset","input","string","audioFileToArray","audioFileData","reader","res","audioData","err","_audioBuffer","current","Xe","F","D","workletFile","sileroV5File","sileroLegacyFile","getDefaultRealTimeVADOptions","_stream","track","detectProcessorType","getVADNodeAsWorklet","workletURL","workletOptions","audioContext","processFrame","audioNode","ev","data","getVADNodeAsScriptProcessor","processingAudio","frames","error","MicVAD","listening","errored","_audioContext","_vadNode","_mediaStreamAudioSourceNode","_audioProcessorAdapterType","initializationState","ownsAudioContext","stream","vadNode","mediaStreamAudioSourceNode","modelFile","modelURL","modelFactory","micVad","non_real_time_vad_1","utils_1","real_time_vad_1","vad_web_1","react_1","vad_web_2","defaultReactOptions","getDefaultReactRealTimeVADOptions","useOptions","reactOptions","vadOptions","useMicVAD","userSpeaking","updateUserSpeaking","loading","setLoading","setErrored","setListening","vad","setVAD","onFrameProcessedRef","onSpeechEndRef","onSpeechStartRef","onSpeechRealStartRef","onVADMisfireRef","getStreamRef","getStreamKey","myvad","canceled","finalVadOptions","isSpeaking","pause","toggle","vadLog","MIC_CONSTRAINTS","VAD_SAMPLE_RATE","FRAME_SAMPLES","PRE_ROLL_MS","SPEECH_END_DELAY_MS","FRAME_DURATION_MS","RING_BUFFER_SIZE","float32ToPcm16","concatFloat32","total","useRqmiiVAD","onAudioChunkProp","onAudioEnd","onSpeechStart","onSpeechEnd","onVADMisfire","onError","enabled","preloadStream","sendAudioChunk","endAudioStream","setIsSpeaking","useState","micError","setMicError","streamRef","useRef","cooldownRef","speechEndTimerRef","pcmRingRef","capturingRef","frameBatchRef","onAudioChunk","useEffect","getStream","useCallback","pauseStream","resumeStream","startCapture","preRollFrames","stopCapture","batch","cleanupStream","_probs","stop","safeVadStart","msg","prepare"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
|