@omnimedia/omnitool 1.1.0-97 → 1.1.0-98
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/package.json +1 -1
- package/s/features/bg-remover/worker.bundle.ts +4 -3
- package/s/features/parts/expose-errors.ts +41 -0
- package/s/features/speech/transcribe/worker.bundle.ts +4 -3
- package/x/features/bg-remover/worker.bundle.js +4 -3
- package/x/features/bg-remover/worker.bundle.js.map +1 -1
- package/x/features/bg-remover/worker.bundle.min.js +167 -167
- package/x/features/bg-remover/worker.bundle.min.js.map +4 -4
- package/x/features/parts/expose-errors.d.ts +3 -0
- package/x/features/parts/expose-errors.js +32 -0
- package/x/features/parts/expose-errors.js.map +1 -0
- package/x/features/speech/transcribe/worker.bundle.js +4 -3
- package/x/features/speech/transcribe/worker.bundle.js.map +1 -1
- package/x/features/speech/transcribe/worker.bundle.min.js +167 -167
- package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
- package/x/index.html +1 -1
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
var
|
|
1
|
+
var OT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Af=(e,r)=>{for(var t in r)OT(e,t,{get:r[t],enumerable:!0})};function ls(){let e,r,t=new Promise((o,a)=>{e=o,r=a});function s(o){return o.then(e).catch(r),t}return{promise:t,resolve:e,reject:r,entangle:s}}var $f=Object.freeze({happy:e=>e!=null,sad:e=>e==null,boolean:e=>typeof e=="boolean",number:e=>typeof e=="number",string:e=>typeof e=="string",bigint:e=>typeof e=="bigint",object:e=>typeof e=="object"&&e!==null,array:e=>Array.isArray(e),fn:e=>typeof e=="function",symbol:e=>typeof e=="symbol"});var Ua=class extends Error{milliseconds;name=this.constructor.name;constructor(r){super(`deadline exceeded (${(r/1e3).toFixed(1)} seconds)`),this.milliseconds=r}};function Df(e,r){return e<=0||e===1/0?r():new Promise((t,s)=>{let o=setTimeout(()=>s(new Ua(e)),e);r().then(t).catch(s).finally(()=>clearTimeout(o))})}function ui(){let e=[];function r(){for(let t of e)t();e=[]}return r.schedule=(...t)=>(e.push(...t),r),r}function Of(e,r){let t=e;for(let s of r)if(t=t[s],$f.sad(t))break;return t}function Lf(e){let r=!1,t;return((...s)=>(r||(r=!0,t=e(...s)),t))}function LT(){let e=new Set;async function r(...l){await Promise.all([...e].map(c=>c(...l)))}function t(l){return e.add(l),()=>{e.delete(l)}}async function s(...l){return r(...l)}function o(l){return t(l)}async function a(l){let{promise:c,resolve:_}=ls(),u=o(async(...d)=>{l&&await l(...d),_(d),u()});return c}function n(){e.clear()}let i={pub:s,sub:o,publish:r,subscribe:t,on:t,next:a,clear:n};return Object.assign(o,i),Object.assign(s,i),i}function _i(e){let r=LT();return e&&r.sub(e),r.pub}function Pc(e,r){return{error:t=>e.error({...r,...t}),rpcRequest:t=>e.rpcRequest({...r,...t}),rpcError:t=>e.rpcError({...r,...t})}}var pi=()=>e=>({plain:e.none,errMessage:e.mix(e.brightRed,e.bold),errName:e.red,errStack:e.mix(e.red,e.dim),timestamp:e.blue,timestampErr:e.red});function Bf(){return pi()}var io=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var mi=()=>({none:e=>e,uncolor:zT,mix:RT,hex:NT,rgb:zf,bgRgb:jT});function zT(e){return e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function RT(...e){return r=>{for(let t of e)r=t(r);return r}}function NT(e){e=e.replace(/^#/,"");let r,t,s,o;if(e.length===3)r=parseInt(e.split("").map(a=>a+a).join(""),16);else if(e.length===6)r=parseInt(e,16);else throw new Error("Invalid hex color");return t=r>>16&255,s=r>>8&255,o=r&255,zf(t,s,o)}function zf(e,r,t){let s=`\x1B[38;2;${e};${r};${t}m`;return o=>`${s}${o}${io.reset}`}function jT(e,r,t){let s=`\x1B[48;2;${e};${r};${t}m`;return o=>`${s}${o}${io.reset}`}var Ga={...Object.fromEntries(Object.entries(io).map(([e])=>[e,r=>r])),...mi()};var Ka={...Object.fromEntries(Object.entries(io).map(([e,r])=>[e,t=>`${r}${t}${io.reset}`])),...mi()};function Ec(){return typeof Deno<"u"&&typeof Deno.version<"u"}function kc(){return typeof process<"u"&&process.versions&&process.versions.node}function Rf(){return kc()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":Ec()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var Cc=()=>Rf()?Ka:Ga;var hi=()=>({colors:e,theme:r})=>{let t=r(e);function s(n){let i=n.stack?`
|
|
2
2
|
`+n.stack+`
|
|
3
|
-
`:"";return[t.errName(n.name+":"),t.errMessage(n.message)].join(" ")+t.errStack(i)}function o(n){return n&&n instanceof Error?s(n):n}function a(n){return n&&n instanceof Error?s(n):t.errMessage(n)}return{stdout:n=>n.map(o),stderr:n=>n.map(a)}};function
|
|
3
|
+
`:"";return[t.errName(n.name+":"),t.errMessage(n.message)].join(" ")+t.errStack(i)}function o(n){return n&&n instanceof Error?s(n):n}function a(n){return n&&n instanceof Error?s(n):t.errMessage(n)}return{stdout:n=>n.map(o),stderr:n=>n.map(a)}};function Ha(...e){return r=>({stdout:t=>{for(let s of e)t=s(r).stdout(t);return t},stderr:t=>{for(let s of e)t=s(r).stderr(t);return t}})}function VT(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var fi=e=>({colors:r,theme:t})=>{let s={...VT(),...e},o=t(r),a=new Date(s.now()),n=a.getUTCFullYear().toString().padStart(4,"0"),i=(a.getUTCMonth()+1).toString().padStart(2,"0"),l=a.getUTCDate().toString().padStart(2,"0"),c=`${n}-${i}-${l}`,_=a.getUTCHours().toString().padStart(2,"0"),u=a.getUTCMinutes().toString().padStart(2,"0"),d=a.getUTCSeconds().toString().padStart(2,"0"),g=a.getUTCMilliseconds().toString().padStart(3,"0"),h=`${_}:${u}:${d}.${g}`,x=`${c}::${h}`;return{stdout:F=>[o.timestamp(x),...F],stderr:F=>[o.timestampErr(x),...[s.icon].filter(Boolean),...F]}};function Nf(){return Ha(hi(),fi())}var gi=()=>({stdout:async e=>{await Deno.stdout.write(new TextEncoder().encode(e+`
|
|
4
4
|
`))},stderr:async e=>{await Deno.stderr.write(new TextEncoder().encode(e+`
|
|
5
|
-
`))}});var
|
|
5
|
+
`))}});var Mi=()=>({stdout:async e=>{process.stdout.write(e+`
|
|
6
6
|
`)},stderr:async e=>{process.stderr.write(e+`
|
|
7
|
-
`)}});var Mi=()=>({stdout:async e=>console.log(e),stderr:async e=>console.error(e)});var Nf=()=>Ec()?fi():kc()?gi():Mi();var jf=()=>({stdout:async()=>{},stderr:async()=>{}});function Vf(){return()=>({stdout:e=>e,stderr:e=>e})}var ia=class e{static writers={auto:Nf,void:jf,deno:fi,node:gi,console:Mi};static colors={auto:Cc,colorful:()=>Ga,colorless:()=>Ua};static themes={auto:Lf,basic:_i};static shapers={auto:Rf,none:Vf,errors:mi,timestamp:hi};writer=e.writers.auto();colors=e.colors.auto();theme=e.themes.auto();shaper=e.shapers.auto();async log(...r){await this.writer.stdout(this.shaper(this).stdout(r).join(" "))}async error(...r){await this.writer.stderr(this.shaper(this).stderr(r).join(" "))}setWriter(r){return this.writer=r,this}setColors(r){return this.colors=r,this}setTheme(r){return this.theme=r,this}setShaper(...r){return this.shaper=Ka(...r),this}};var Ha=class extends ia{static dummy(){return new this().setWriter(ia.writers.void())}rpcRequest=async({request:r,...t})=>{let s=this.colors.none;this.log(...this.#e(t),s(`${r.method}()`))};rpcError=async({request:r,error:t,...s})=>{this.error(...this.#e(s),`${r.method}()`,t)};#e({meta:r,label:t,remote:s}){let o=this.colors.mix(this.colors.blue,this.colors.dim),a=this.colors.mix(this.colors.cyan,this.colors.dim);return[r?this.#t(r):void 0,t||void 0,s===void 0?void 0:s?o("<-"):a("->")].filter(Boolean)}#t(r){let{headers:t}=r.request;return[this.colors.yellow(`[${r.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var Ls=class extends Ha{rpcRequest=async()=>{}};var Ks;(function(e){e.version="2.0";function r(t){return"id"in t?t.id:null}e.getId=r,e.errorCodes={serverError:-32e3,unexposedError:-32001}})(Ks||(Ks={}));var wi=class extends Error{name=this.constructor.name},To=class extends Error{name=this.constructor.name};async function Wf({tap:e,request:r,action:t}){let s=Ks.getId(r);try{let o=await t();return s===null?null:{id:s,result:o,jsonrpc:Ks.version}}catch(o){return e.rpcError({request:r,error:o}),s===null?null:{id:s,jsonrpc:Ks.version,error:o instanceof wi?{code:Ks.errorCodes.serverError,message:o.message}:{code:Ks.errorCodes.unexposedError,message:"unexposed error"}}}}function bi(e){let r=e.tap??new Ls;return async t=>{let s=t.method.split("."),o=Df(e.fns,s),a=async()=>await o(...t.params);return r.rpcRequest({request:t}),await Wf({tap:r,request:t,action:a})}}var Uf=Symbol("tune"),VT=Symbol("query"),WT=Symbol("notify"),UT=Symbol("settings");function Gf(e){function r(t){let s={notify:void 0};return new Proxy((()=>{}),{apply:(o,a,n)=>e(t,n,s),get:(o,a)=>{if(a!=="then")return a===Uf?n=>(...i)=>e(t,i,{...s,...n}):a===WT?(...n)=>e(t,n,{...s,notify:!0}):a===VT?(...n)=>e(t,n,{...s,notify:!1}):a===UT?s:(o[a]||(o[a]=r([...t,a])),o[a])},set:(o,a,n)=>(o[a]=n,!0)})}return r([])}function Po(e){let{endpoint:r,tap:t=new Ls}=e,s=1;return Gf(async(o,a,n)=>{let i=n.notify??e.notify??!1,l=n.transfer,c={jsonrpc:"2.0",method:o.join("."),params:a},_=i?c:{...c,id:s++};t.rpcRequest({request:_});let u=await r(_,{transfer:l});if(i&&!u)return null;if(!u)throw new To("response was null, but shouldn't be, because the request was not a notification");if("error"in u)throw new To(e.label?`${e.label}: ${u.error.message}`:u.error.message);return u.result})}function qa(e){return Po({endpoint:bi(e),tap:e.tap})}var Eo=class{recv=ui();sendRequest=ui();sendResponse=ui();static makeEntangledPair({origin:r="example.e280.org"}={}){let t=new this,s=new this,o=[t.sendRequest.sub(n=>s.recv(n,{origin:r})),t.sendResponse.sub(n=>s.recv(n,{origin:r})),s.sendRequest.sub(n=>t.recv(n,{origin:r})),s.sendResponse.sub(n=>t.recv(n,{origin:r}))];return[t,s,()=>o.forEach(n=>n())]}};function vi(e,r){return e.addEventListener("message",r),()=>e.removeEventListener("message",r)}function Kf(e,r){return async(t,{transfer:s}={})=>{if("id"in t){let o=ls();return r(t,s,o.promise),e.wait(t.id,t.method).then(a=>(o.resolve(a),a))}else{let o=Promise.resolve(null);return r(t,s,o),o}}}function Hf(e){let r=[],t=[];for(let s of Array.isArray(e)?e:[e])"method"in s?r.push(s):t.push(s);return{requests:r,responses:t}}async function qf(e,r){let t=(await Promise.all(r.map(async s=>e(s)))).filter(s=>s!==null);return t.length===0?null:t.length===1?t[0]:t}var la=class extends Eo{dispose=di();constructor(r){super(),this.dispose.schedule(this.sendRequest.sub((t,s)=>r.postMessage(t,s)),this.sendResponse.sub((t,s)=>r.postMessage(t,s)),vi(r,t=>this.recv(t.data,t)))}};var xi=class{remote;transfer;constructor(r){this.remote=r}};var Sc=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var yi=class{timeout;pending=new Map;constructor(r){this.timeout=r}async wait(r,t){let s=ls();return this.pending.set(r,{method:t,deferred:s}),await $f(this.timeout,()=>s.promise).catch(o=>{throw o instanceof Wa&&(o.message=`request #${r} ${t}(), ${o.message}`),o})}deliverResponse(r){let t=this.pending.get(r.id);t&&("error"in r?t.deferred.reject(new To(r.error.message)):t.deferred.resolve(r))}};var ko=class{options;remote;remoteEndpoint;dispose=di();#e;constructor(r){this.options=r;let{conduit:t,tap:s}=r;this.#e=new yi(r.timeout??Sc.timeout),this.remoteEndpoint=Kf(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Po({endpoint:this.remoteEndpoint,tap:s&&Pc(s,{remote:!0})}),this.dispose.schedule(t.recv.sub(o=>this.recv(o)))}async recv(r){let t=new xi(this.remote),{conduit:s,rpc:o,tap:a}=this.options,{requests:n,responses:i}=Hf(r);for(let u of i)this.#e.deliverResponse(u);if(!o)return;let l=await o(t),c=bi({fns:l,tap:a&&Pc(a,{remote:!1})}),_=await qf(c,n);_&&await s.sendResponse(_,t.transfer)}};var Hs={derive:{host:e=>({host:e.remote.host,get transfer(){return e.transfer},set transfer(r){e.transfer=r}}),work:e=>({work:e.remote,get transfer(){return e.transfer},set transfer(r){e.transfer=r}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var qs=new Ls;async function Qf(e,r,t={}){let s=t.tap??qs,o=new ko({tap:s,timeout:t.timeout??1/0,conduit:new la(e.getSelf()),rpc:async a=>r(Hs.derive.host(a))});return await o.remote.infra.ready(),o.remote.host}var ca=class{worker;messenger;constructor(r,t){this.worker=r,this.messenger=t}static async make(r,t){let s=t.tap??qs,o=t.label??"comrade",a=r.loadWorker(t.workerUrl,o),n=ls(),i={async ready(){n.resolve()}},l=new ko({tap:s,timeout:t.timeout??1/0,conduit:new la(a),rpc:async c=>({infra:i,host:t.setupHost(Hs.derive.work(c))})});return await n.promise,new this(a,l)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Ti=class{threads;static async make(r,t){let s=t.workerCount??r.guessOptimalThreadCount(),o=await Promise.all([...Array(s)].map(async(a,n)=>ca.make(r,{...t,label:t.label??`${t.label??"comrade"}_${n+1}`})));return new this(o,{tap:t.tap})}work;#e=new Set;#t=[];constructor(r,t={}){this.threads=r;let s=t.tap??qs,o=async(a,n)=>this.#s({request:a,prom:ls(),transfer:n?.transfer});this.work=Po({tap:s,endpoint:o}),r.forEach(a=>this.#e.add(a))}get threadCount(){return this.threads.length}terminate(){for(let r of this.threads)r.terminate()}#s(r){return this.#t.push(r),this.#r(),r.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let r=[...this.#e].pop();this.#e.delete(r);let t=this.#t.shift();this.#e.delete(r);let s=r.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(s).finally(()=>{this.#e.add(r),this.#r()})}}};var Xf=e=>({thread:r=>ca.make(e,r),cluster:r=>Ti.make(e,r),worker:(r,t={})=>Qf(e,r,t),work:r=>r,host:r=>r,mocks(r){let{setupWork:t,setupHost:s,tap:o=qs}=r,a=Hs.mock.host(),n=Hs.mock.work();return n.work=qa({tap:o,fns:t(a)}),a.host=qa({tap:o,fns:s(n)}),{workShell:n,hostShell:a,work:n.work,host:a.host}},mockWork(r,t=qs){let s=Hs.mock.host(),o=Hs.mock.work();return o.work=qa({tap:t,fns:r(s)}),{workShell:o,hostShell:s,work:o.work,mockHost:a=>(s.host=qa({tap:t,fns:a(o)}),{workShell:o,hostShell:s,work:o.work,host:s.host})}}});var Jf=()=>({getSelf(){return self},guessOptimalThreadCount(){let e=navigator.hardwareConcurrency??1;return Math.max(1,e-1)},loadWorker(e,r){return new window.Worker(e,{name:r,type:"module"})},async loadWasm(e){return WebAssembly.instantiateStreaming(fetch(e))}});var HT=Jf(),Yf=Xf(HT);var Ic={};If(Ic,{InferenceSession:()=>XT,TRACE:()=>mg,TRACE_FUNC_BEGIN:()=>Ei,TRACE_FUNC_END:()=>ki,Tensor:()=>Fo,env:()=>QT,registerBackend:()=>Zf});var Pi=new Map,Co=[],Zf=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=Pi.get(e);if(s===void 0)Pi.set(e,{backend:r,priority:t});else{if(s.priority>t)return;if(s.priority===t&&s.backend!==r)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){let o=Co.indexOf(e);o!==-1&&Co.splice(o,1);for(let a=0;a<Co.length;a++)if(Pi.get(Co[a]).priority<=t){Co.splice(a,0,e);return}Co.push(e)}return}throw new TypeError("not a valid backend")},qT=async e=>{let r=Pi.get(e);if(!r)return"backend not found.";if(r.initialized)return r.backend;if(r.aborted)return r.error;{let t=!!r.initPromise;try{return t||(r.initPromise=r.backend.init(e)),await r.initPromise,r.initialized=!0,r.backend}catch(s){return t||(r.error=`${s}`,r.aborted=!0),r.error}finally{delete r.initPromise}}},eg=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?Co:t,o,a=[],n=new Set;for(let l of s){let c=await qT(l);typeof c=="string"?a.push({name:l,err:c}):(o||(o=c),o===c&&n.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${a.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of a)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>n.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]};var tg="1.21.0";var rg="warning",ts={wasm:{},webgl:{},webgpu:{},versions:{common:tg},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}`);rg=e}},get logLevel(){return rg}};Object.defineProperty(ts,"logLevel",{enumerable:!0});var QT=ts;var sg=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];let s=t.getContext("2d");if(s!=null){let o,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[3]):(o=e.dims[3],a=e.dims[2]);let n=r?.format!==void 0?r.format:"RGB",i=r?.norm,l,c;i===void 0||i.mean===void 0?l=[255,255,255,255]:typeof i.mean=="number"?l=[i.mean,i.mean,i.mean,i.mean]:(l=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(l[3]=i.mean[3])),i===void 0||i.bias===void 0?c=[0,0,0,0]:typeof i.bias=="number"?c=[i.bias,i.bias,i.bias,i.bias]:(c=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(c[3]=i.bias[3]));let _=a*o,u=0,d=_,g=_*2,h=-1;n==="RGBA"?(u=0,d=_,g=_*2,h=_*3):n==="RGB"?(u=0,d=_,g=_*2):n==="RBG"&&(u=0,g=_,d=_*2);for(let x=0;x<a;x++)for(let F=0;F<o;F++){let v=(e.data[u++]-c[0])*l[0],b=(e.data[d++]-c[1])*l[1],C=(e.data[g++]-c[2])*l[2],y=h===-1?255:(e.data[h++]-c[3])*l[3];s.fillStyle="rgba("+v+","+b+","+C+","+y+")",s.fillRect(F,x,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},og=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,a,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[1],n=e.dims[3]):(o=e.dims[3],a=e.dims[2],n=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,_;l===void 0||l.mean===void 0?c=[255,255,255,255]:typeof l.mean=="number"?c=[l.mean,l.mean,l.mean,l.mean]:(c=[l.mean[0],l.mean[1],l.mean[2],255],l.mean[3]!==void 0&&(c[3]=l.mean[3])),l===void 0||l.bias===void 0?_=[0,0,0,0]:typeof l.bias=="number"?_=[l.bias,l.bias,l.bias,l.bias]:(_=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(_[3]=l.bias[3]));let u=a*o;if(r!==void 0&&(r.format!==void 0&&n===4&&r.format!=="RGBA"||n===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,g=0,h=1,x=2,F=3,v=0,b=u,C=u*2,y=-1;i==="RGBA"?(v=0,b=u,C=u*2,y=u*3):i==="RGB"?(v=0,b=u,C=u*2):i==="RBG"&&(v=0,C=u,b=u*2),s=t.createImageData(o,a);for(let P=0;P<a*o;g+=d,h+=d,x+=d,F+=d,P++)s.data[g]=(e.data[v++]-_[0])*c[0],s.data[h]=(e.data[b++]-_[1])*c[1],s.data[x]=(e.data[C++]-_[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-_[3])*c[3]}else throw new Error("Can not access image data");return s};var Fc=(e,r)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(r.height===void 0||r.width===void 0)throw new Error("Image height and width must be defined");if(r.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:t,width:s}=r,o=r.norm??{mean:255,bias:0},a,n;typeof o.mean=="number"?a=[o.mean,o.mean,o.mean,o.mean]:a=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?n=[o.bias,o.bias,o.bias,o.bias]:n=[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let i=r.format!==void 0?r.format:"RGBA",l=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",c=t*s,_=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,g=1,h=2,x=3,F=0,v=c,b=c*2,C=-1;i==="RGB"&&(u=3,d=0,g=1,h=2,x=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,b=c,v=c*2):l==="BGR"&&(b=0,v=c,F=c*2);for(let P=0;P<c;P++,d+=u,h+=u,g+=u,x+=u)_[F++]=(e[d]+n[0])/a[0],_[v++]=(e[g]+n[1])/a[1],_[b++]=(e[h]+n[2])/a[2],C!==-1&&x!==-1&&(_[C++]=(e[x]+n[3])/a[3]);return l==="RGBA"?new Vr("float32",_,[1,4,t,s]):new Vr("float32",_,[1,3,t,s])},ag=async(e,r)=>{let t=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,s=typeof ImageData<"u"&&e instanceof ImageData,o=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",n,i=r??{},l=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=_=>typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||_ instanceof OffscreenCanvas?_.getContext("2d"):null;if(t){let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,g=r.resizedWidth),r!==void 0){if(i=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=d,i.width=g}else i.tensorFormat="RGBA",i.height=d,i.width=g;u.drawImage(e,0,0),n=u.getImageData(0,0,g,d).data}else throw new Error("Can not access image data")}else if(s){let _,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(_=r.resizedHeight,u=r.resizedWidth):(_=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=_,i.width=u,r!==void 0){let d=l();d.width=u,d.height=_;let g=c(d);if(g!=null)g.putImageData(e,0,0),n=g.getImageData(0,0,u,_).data;else throw new Error("Can not access image data")}else n=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;return u.drawImage(e,0,0,g,d),n=u.getImageData(0,0,g,d).data,i.height=d,i.width=g,Fc(n,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((_,u)=>{let d=l(),g=c(d);if(!e||!g)return u();let h=new Image;h.crossOrigin="Anonymous",h.src=e,h.onload=()=>{d.width=h.width,d.height=h.height,g.drawImage(h,0,0,d.width,d.height);let x=g.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,_(Fc(x.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(n!==void 0)return Fc(n,i);throw new Error("Input data provided is not supported - aborted tensor creation")},ng=(e,r)=>{let{width:t,height:s,download:o,dispose:a}=r,n=[1,s,t,4];return new Vr({location:"texture",type:"float32",texture:e,dims:n,download:o,dispose:a})},ig=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new Vr({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:a})},lg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new Vr({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:a})},cg=(e,r,t)=>new Vr({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]});var So=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Qa=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),dg=!1,ug=()=>{if(!dg){dg=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(So.set("int64",BigInt64Array),Qa.set(BigInt64Array,"int64")),r&&(So.set("uint64",BigUint64Array),Qa.set(BigUint64Array,"uint64")),s?(So.set("float16",t),Qa.set(t,"float16")):So.set("float16",Uint16Array)}};var _g=e=>{let r=1;for(let t=0;t<e.length;t++){let s=e[t];if(typeof s!="number"||!Number.isSafeInteger(s))throw new TypeError(`dims[${t}] must be an integer, got: ${s}`);if(s<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${s}`);r*=s}return r},pg=(e,r)=>{switch(e.location){case"cpu":return new Vr(e.type,e.data,r);case"cpu-pinned":return new Vr({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new Vr({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new Vr({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new Vr({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}};var Vr=class{constructor(r,t,s){ug();let o,a;if(typeof r=="object"&&"location"in r)switch(this.dataLocation=r.location,o=r.type,a=r.dims,r.location){case"cpu-pinned":{let i=So.get(o);if(!i)throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);if(!(r.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=r.data;break}case"texture":{if(o!=="float32")throw new TypeError(`unsupported type "${o}" to create tensor from texture`);this.gpuTextureData=r.texture,this.downloader=r.download,this.disposer=r.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=r.gpuBuffer,this.downloader=r.download,this.disposer=r.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=r.mlTensor,this.downloader=r.download,this.disposer=r.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,l;if(typeof r=="string")if(o=r,l=s,r==="string"){if(!Array.isArray(t))throw new TypeError("A string tensor's data must be a string array.");i=t}else{let c=So.get(r);if(c===void 0)throw new TypeError(`Unsupported tensor type: ${r}.`);if(Array.isArray(t)){if(r==="float16"&&c===Uint16Array||r==="uint4"||r==="int4")throw new TypeError(`Creating a ${r} tensor from number array is not supported. Please use ${c.name} as data.`);r==="uint64"||r==="int64"?i=c.from(t,BigInt):i=c.from(t)}else if(t instanceof c)i=t;else if(t instanceof Uint8ClampedArray)if(r==="uint8")i=Uint8Array.from(t);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(r==="float16"&&t instanceof Uint16Array&&c!==Uint16Array)i=new globalThis.Float16Array(t.buffer,t.byteOffset,t.length);else throw new TypeError(`A ${o} tensor's data must be type of ${c}`)}else if(l=t,Array.isArray(r)){if(r.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let c=typeof r[0];if(c==="string")o="string",i=r;else if(c==="boolean")o="bool",i=Uint8Array.from(r);else throw new TypeError(`Invalid element type of data array: ${c}.`)}else if(r instanceof Uint8ClampedArray)o="uint8",i=Uint8Array.from(r);else{let c=Qa.get(r.constructor);if(c===void 0)throw new TypeError(`Unsupported type for tensor data: ${r.constructor}.`);o=c,i=r}if(l===void 0)l=[i.length];else if(!Array.isArray(l))throw new TypeError("A tensor's dims must be a number array");a=l,this.cpuData=i,this.dataLocation="cpu"}let n=_g(a);if(this.cpuData&&n!==this.cpuData.length&&!((o==="uint4"||o==="int4")&&Math.ceil(n/2)===this.cpuData.length))throw new Error(`Tensor's size(${n}) does not match data length(${this.cpuData.length}).`);this.type=o,this.dims=a,this.size=n}static async fromImage(r,t){return ag(r,t)}static fromTexture(r,t){return ng(r,t)}static fromGpuBuffer(r,t){return ig(r,t)}static fromMLTensor(r,t){return lg(r,t)}static fromPinnedBuffer(r,t,s){return cg(r,t,s)}toDataURL(r){return sg(this,r)}toImageData(r){return og(this,r)}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(r){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 t=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=t,r&&this.disposer&&(this.disposer(),this.disposer=void 0),t}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(r){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return pg(this,r)}};var Fo=Vr;var mg=(e,r)=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||console.timeStamp(`${e}::ORT::${r}`)},hg=(e,r)=>{let t=new Error().stack?.split(/\r\n|\r|\n/g)||[],s=!1;for(let o=0;o<t.length;o++){if(s&&!t[o].includes("TRACE_FUNC")){let a=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(a+=`::${r}`),mg("CPU",a);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Ei=e=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||hg("BEGIN",e)},ki=e=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||hg("END",e)};var Ci=class e{constructor(r){this.handler=r}async run(r,t,s){Ei();let o={},a={};if(typeof r!="object"||r===null||r instanceof Fo||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let n=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Fo)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(t.length===0)throw new TypeError("'fetches' cannot be an empty array.");n=!1;for(let c of t){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);o[c]=null}if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,_=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(_.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Fo)&&(c=!0,n=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else a=t}}else if(typeof t<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof r[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(n)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,a),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let _=i[c];_ instanceof Fo?l[c]=_:l[c]=new Fo(_.type,_.data,_.dims)}return ki(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Ei();let a,n={};if(typeof r=="string"){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer){let _=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)n=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=_.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${_.byteLength}).`);if(d=r.byteLength-u,typeof s=="number"){if(d=s,!Number.isSafeInteger(d))throw new RangeError("'byteLength' must be an integer.");if(d<=0||u+d>_.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${_.byteLength-u}].`);if(typeof o=="object"&&o!==null)n=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else if(typeof s<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof t<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(_,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await eg(n),c=await i.createInferenceSessionHandler(a,l);return ki(),new e(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};var XT=Ci;var yu={};If(yu,{InferenceSession:()=>Qd,TRACE:()=>pn,TRACE_FUNC_BEGIN:()=>Es,TRACE_FUNC_END:()=>us,Tensor:()=>Ps,default:()=>fE,env:()=>Zt,registerBackend:()=>Bo});var Hd=Object.defineProperty,JT=Object.getOwnPropertyDescriptor,YT=Object.getOwnPropertyNames,ZT=Object.prototype.hasOwnProperty,eP=(e=>typeof yo<"u"?yo:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof yo<"u"?yo:r)[t]}):e)(function(e){if(typeof yo<"u")return yo.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),Ve=(e,r)=>()=>(e&&(r=e(e=0)),r),ha=(e,r)=>{for(var t in r)Hd(e,t,{get:r[t],enumerable:!0})},tP=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of YT(r))!ZT.call(e,o)&&o!==t&&Hd(e,o,{get:()=>r[o],enumerable:!(s=JT(r,o))||s.enumerable});return e},_n=e=>tP(Hd({},"__esModule",{value:!0}),e),Xa,lo,Bo,fg,qb,Qb=Ve(()=>{"use strict";Xa=new Map,lo=[],Bo=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=Xa.get(e);if(s===void 0)Xa.set(e,{backend:r,priority:t});else{if(s.priority>t)return;if(s.priority===t&&s.backend!==r)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){let o=lo.indexOf(e);o!==-1&&lo.splice(o,1);for(let a=0;a<lo.length;a++)if(Xa.get(lo[a]).priority<=t){lo.splice(a,0,e);return}lo.push(e)}return}throw new TypeError("not a valid backend")},fg=async e=>{let r=Xa.get(e);if(!r)return"backend not found.";if(r.initialized)return r.backend;if(r.aborted)return r.error;{let t=!!r.initPromise;try{return t||(r.initPromise=r.backend.init(e)),await r.initPromise,r.initialized=!0,r.backend}catch(s){return t||(r.error=`${s}`,r.aborted=!0),r.error}finally{delete r.initPromise}}},qb=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?lo:t,o,a=[],n=new Set;for(let l of s){let c=await fg(l);typeof c=="string"?a.push({name:l,err:c}):(o||(o=c),o===c&&n.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${a.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of a)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>n.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]}}),rP=Ve(()=>{"use strict";Qb()}),Xb,sP=Ve(()=>{"use strict";Xb="1.22.0-dev.20250409-89f8206ba4"}),Ac,ds,Jb=Ve(()=>{"use strict";sP(),Ac="warning",ds={wasm:{},webgl:{},webgpu:{},versions:{common:Xb},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}`);Ac=e}},get logLevel(){return Ac}},Object.defineProperty(ds,"logLevel",{enumerable:!0})}),Zt,oP=Ve(()=>{"use strict";Jb(),Zt=ds}),Yb,Zb,aP=Ve(()=>{"use strict";Yb=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];let s=t.getContext("2d");if(s!=null){let o,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[3]):(o=e.dims[3],a=e.dims[2]);let n=r?.format!==void 0?r.format:"RGB",i=r?.norm,l,c;i===void 0||i.mean===void 0?l=[255,255,255,255]:typeof i.mean=="number"?l=[i.mean,i.mean,i.mean,i.mean]:(l=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(l[3]=i.mean[3])),i===void 0||i.bias===void 0?c=[0,0,0,0]:typeof i.bias=="number"?c=[i.bias,i.bias,i.bias,i.bias]:(c=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(c[3]=i.bias[3]));let _=a*o,u=0,d=_,g=_*2,h=-1;n==="RGBA"?(u=0,d=_,g=_*2,h=_*3):n==="RGB"?(u=0,d=_,g=_*2):n==="RBG"&&(u=0,g=_,d=_*2);for(let x=0;x<a;x++)for(let F=0;F<o;F++){let v=(e.data[u++]-c[0])*l[0],b=(e.data[d++]-c[1])*l[1],C=(e.data[g++]-c[2])*l[2],y=h===-1?255:(e.data[h++]-c[3])*l[3];s.fillStyle="rgba("+v+","+b+","+C+","+y+")",s.fillRect(F,x,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},Zb=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,a,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[1],n=e.dims[3]):(o=e.dims[3],a=e.dims[2],n=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,_;l===void 0||l.mean===void 0?c=[255,255,255,255]:typeof l.mean=="number"?c=[l.mean,l.mean,l.mean,l.mean]:(c=[l.mean[0],l.mean[1],l.mean[2],255],l.mean[3]!==void 0&&(c[3]=l.mean[3])),l===void 0||l.bias===void 0?_=[0,0,0,0]:typeof l.bias=="number"?_=[l.bias,l.bias,l.bias,l.bias]:(_=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(_[3]=l.bias[3]));let u=a*o;if(r!==void 0&&(r.format!==void 0&&n===4&&r.format!=="RGBA"||n===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,g=0,h=1,x=2,F=3,v=0,b=u,C=u*2,y=-1;i==="RGBA"?(v=0,b=u,C=u*2,y=u*3):i==="RGB"?(v=0,b=u,C=u*2):i==="RBG"&&(v=0,C=u,b=u*2),s=t.createImageData(o,a);for(let P=0;P<a*o;g+=d,h+=d,x+=d,F+=d,P++)s.data[g]=(e.data[v++]-_[0])*c[0],s.data[h]=(e.data[b++]-_[1])*c[1],s.data[x]=(e.data[C++]-_[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-_[3])*c[3]}else throw new Error("Can not access image data");return s}}),Si,ev,tv,rv,sv,ov,nP=Ve(()=>{"use strict";qd(),Si=(e,r)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(r.height===void 0||r.width===void 0)throw new Error("Image height and width must be defined");if(r.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:t,width:s}=r,o=r.norm??{mean:255,bias:0},a,n;typeof o.mean=="number"?a=[o.mean,o.mean,o.mean,o.mean]:a=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?n=[o.bias,o.bias,o.bias,o.bias]:n=[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let i=r.format!==void 0?r.format:"RGBA",l=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",c=t*s,_=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,g=1,h=2,x=3,F=0,v=c,b=c*2,C=-1;i==="RGB"&&(u=3,d=0,g=1,h=2,x=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,b=c,v=c*2):l==="BGR"&&(b=0,v=c,F=c*2);for(let y=0;y<c;y++,d+=u,h+=u,g+=u,x+=u)_[F++]=(e[d]+n[0])/a[0],_[v++]=(e[g]+n[1])/a[1],_[b++]=(e[h]+n[2])/a[2],C!==-1&&x!==-1&&(_[C++]=(e[x]+n[3])/a[3]);return l==="RGBA"?new ss("float32",_,[1,4,t,s]):new ss("float32",_,[1,3,t,s])},ev=async(e,r)=>{let t=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,s=typeof ImageData<"u"&&e instanceof ImageData,o=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",n,i=r??{},l=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=_=>typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||_ instanceof OffscreenCanvas?_.getContext("2d"):null;if(t){let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,g=r.resizedWidth),r!==void 0){if(i=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=d,i.width=g}else i.tensorFormat="RGBA",i.height=d,i.width=g;u.drawImage(e,0,0),n=u.getImageData(0,0,g,d).data}else throw new Error("Can not access image data")}else if(s){let _,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(_=r.resizedHeight,u=r.resizedWidth):(_=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=_,i.width=u,r!==void 0){let d=l();d.width=u,d.height=_;let g=c(d);if(g!=null)g.putImageData(e,0,0),n=g.getImageData(0,0,u,_).data;else throw new Error("Can not access image data")}else n=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;return u.drawImage(e,0,0,g,d),n=u.getImageData(0,0,g,d).data,i.height=d,i.width=g,Si(n,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((_,u)=>{let d=l(),g=c(d);if(!e||!g)return u();let h=new Image;h.crossOrigin="Anonymous",h.src=e,h.onload=()=>{d.width=h.width,d.height=h.height,g.drawImage(h,0,0,d.width,d.height);let x=g.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,_(Si(x.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(n!==void 0)return Si(n,i);throw new Error("Input data provided is not supported - aborted tensor creation")},tv=(e,r)=>{let{width:t,height:s,download:o,dispose:a}=r,n=[1,s,t,4];return new ss({location:"texture",type:"float32",texture:e,dims:n,download:o,dispose:a})},rv=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new ss({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:a})},sv=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new ss({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:a})},ov=(e,r,t)=>new ss({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]})}),Oo,nn,$c,av,iP=Ve(()=>{"use strict";Oo=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),nn=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),$c=!1,av=()=>{if(!$c){$c=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(Oo.set("int64",BigInt64Array),nn.set(BigInt64Array,"int64")),r&&(Oo.set("uint64",BigUint64Array),nn.set(BigUint64Array,"uint64")),s?(Oo.set("float16",t),nn.set(t,"float16")):Oo.set("float16",Uint16Array)}}}),nv,iv,lP=Ve(()=>{"use strict";qd(),nv=e=>{let r=1;for(let t=0;t<e.length;t++){let s=e[t];if(typeof s!="number"||!Number.isSafeInteger(s))throw new TypeError(`dims[${t}] must be an integer, got: ${s}`);if(s<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${s}`);r*=s}return r},iv=(e,r)=>{switch(e.location){case"cpu":return new ss(e.type,e.data,r);case"cpu-pinned":return new ss({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new ss({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new ss({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new ss({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}}),ss,qd=Ve(()=>{"use strict";aP(),nP(),iP(),lP(),ss=class{constructor(e,r,t){av();let s,o;if(typeof e=="object"&&"location"in e)switch(this.dataLocation=e.location,s=e.type,o=e.dims,e.location){case"cpu-pinned":{let n=Oo.get(s);if(!n)throw new TypeError(`unsupported type "${s}" to create tensor from pinned buffer`);if(!(e.data instanceof n))throw new TypeError(`buffer should be of type ${n.name}`);this.cpuData=e.data;break}case"texture":{if(s!=="float32")throw new TypeError(`unsupported type "${s}" to create tensor from texture`);this.gpuTextureData=e.texture,this.downloader=e.download,this.disposer=e.dispose;break}case"gpu-buffer":{if(s!=="float32"&&s!=="float16"&&s!=="int32"&&s!=="int64"&&s!=="uint32"&&s!=="uint8"&&s!=="bool"&&s!=="uint4"&&s!=="int4")throw new TypeError(`unsupported type "${s}" to create tensor from gpu buffer`);this.gpuBufferData=e.gpuBuffer,this.downloader=e.download,this.disposer=e.dispose;break}case"ml-tensor":{if(s!=="float32"&&s!=="float16"&&s!=="int32"&&s!=="int64"&&s!=="uint32"&&s!=="uint64"&&s!=="int8"&&s!=="uint8"&&s!=="bool"&&s!=="uint4"&&s!=="int4")throw new TypeError(`unsupported type "${s}" to create tensor from MLTensor`);this.mlTensorData=e.mlTensor,this.downloader=e.download,this.disposer=e.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let n,i;if(typeof e=="string")if(s=e,i=t,e==="string"){if(!Array.isArray(r))throw new TypeError("A string tensor's data must be a string array.");n=r}else{let l=Oo.get(e);if(l===void 0)throw new TypeError(`Unsupported tensor type: ${e}.`);if(Array.isArray(r)){if(e==="float16"&&l===Uint16Array||e==="uint4"||e==="int4")throw new TypeError(`Creating a ${e} tensor from number array is not supported. Please use ${l.name} as data.`);e==="uint64"||e==="int64"?n=l.from(r,BigInt):n=l.from(r)}else if(r instanceof l)n=r;else if(r instanceof Uint8ClampedArray)if(e==="uint8")n=Uint8Array.from(r);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(e==="float16"&&r instanceof Uint16Array&&l!==Uint16Array)n=new globalThis.Float16Array(r.buffer,r.byteOffset,r.length);else throw new TypeError(`A ${s} tensor's data must be type of ${l}`)}else if(i=r,Array.isArray(e)){if(e.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let l=typeof e[0];if(l==="string")s="string",n=e;else if(l==="boolean")s="bool",n=Uint8Array.from(e);else throw new TypeError(`Invalid element type of data array: ${l}.`)}else if(e instanceof Uint8ClampedArray)s="uint8",n=Uint8Array.from(e);else{let l=nn.get(e.constructor);if(l===void 0)throw new TypeError(`Unsupported type for tensor data: ${e.constructor}.`);s=l,n=e}if(i===void 0)i=[n.length];else if(!Array.isArray(i))throw new TypeError("A tensor's dims must be a number array");o=i,this.cpuData=n,this.dataLocation="cpu"}let a=nv(o);if(this.cpuData&&a!==this.cpuData.length&&!((s==="uint4"||s==="int4")&&Math.ceil(a/2)===this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=s,this.dims=o,this.size=a}static async fromImage(e,r){return ev(e,r)}static fromTexture(e,r){return tv(e,r)}static fromGpuBuffer(e,r){return rv(e,r)}static fromMLTensor(e,r){return sv(e,r)}static fromPinnedBuffer(e,r,t){return ov(e,r,t)}toDataURL(e){return Yb(this,e)}toImageData(e){return Zb(this,e)}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(e){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 r=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=r,e&&this.disposer&&(this.disposer(),this.disposer=void 0),r}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.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(e){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return iv(this,e)}}}),Ps,lv=Ve(()=>{"use strict";qd(),Ps=ss}),pn,Dc,Es,us,cv=Ve(()=>{"use strict";Jb(),pn=(e,r)=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||console.timeStamp(`${e}::ORT::${r}`)},Dc=(e,r)=>{let t=new Error().stack?.split(/\r\n|\r|\n/g)||[],s=!1;for(let o=0;o<t.length;o++){if(s&&!t[o].includes("TRACE_FUNC")){let a=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(a+=`::${r}`),pn("CPU",a);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Es=e=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||Dc("BEGIN",e)},us=e=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||Dc("END",e)}}),dv,cP=Ve(()=>{"use strict";Qb(),lv(),cv(),dv=class uv{constructor(r){this.handler=r}async run(r,t,s){Es();let o={},a={};if(typeof r!="object"||r===null||r instanceof Ps||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let n=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Ps)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(t.length===0)throw new TypeError("'fetches' cannot be an empty array.");n=!1;for(let c of t){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);o[c]=null}if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,_=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(_.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Ps)&&(c=!0,n=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else a=t}}else if(typeof t<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof r[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(n)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,a),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let _=i[c];_ instanceof Ps?l[c]=_:l[c]=new Ps(_.type,_.data,_.dims)}return us(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Es();let a,n={};if(typeof r=="string"){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer){let _=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)n=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=_.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${_.byteLength}).`);if(d=r.byteLength-u,typeof s=="number"){if(d=s,!Number.isSafeInteger(d))throw new RangeError("'byteLength' must be an integer.");if(d<=0||u+d>_.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${_.byteLength-u}].`);if(typeof o=="object"&&o!==null)n=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else if(typeof s<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof t<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(_,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await qb(n),c=await i.createInferenceSessionHandler(a,l);return us(),new uv(c)}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}}}),Qd,dP=Ve(()=>{"use strict";cP(),Qd=dv}),uP=Ve(()=>{"use strict"}),_P=Ve(()=>{"use strict"}),pP=Ve(()=>{"use strict"}),mP=Ve(()=>{"use strict"}),_v={};ha(_v,{InferenceSession:()=>Qd,TRACE:()=>pn,TRACE_FUNC_BEGIN:()=>Es,TRACE_FUNC_END:()=>us,Tensor:()=>Ps,env:()=>Zt,registerBackend:()=>Bo});var ks=Ve(()=>{"use strict";rP(),oP(),dP(),lv(),uP(),_P(),cv(),pP(),mP()}),Xd=Ve(()=>{"use strict"}),pv={};ha(pv,{default:()=>mv});var Oc,Lc,mv,hP=Ve(()=>{"use strict";w0(),jo(),Jd(),Oc="ort-wasm-proxy-worker",Lc=globalThis.self?.name===Oc,Lc&&(self.onmessage=e=>{let{type:r,in:t}=e.data;try{switch(r){case"init-wasm":Yd(t.wasm).then(()=>{fu(t).then(()=>{postMessage({type:r})},s=>{postMessage({type:r,err:s})})},s=>{postMessage({type:r,err:s})});break;case"init-ep":{let{epName:s,env:o}=t;gu(o,s).then(()=>{postMessage({type:r})},a=>{postMessage({type:r,err:a})});break}case"copy-from":{let{buffer:s}=t,o=Ji(s);postMessage({type:r,out:o});break}case"create":{let{model:s,options:o}=t;Mu(s,o).then(a=>{postMessage({type:r,out:a})},a=>{postMessage({type:r,err:a})});break}case"release":wu(t),postMessage({type:r});break;case"run":{let{sessionId:s,inputIndices:o,inputs:a,outputIndices:n,options:i}=t;bu(s,o,a,n,new Array(n.length).fill(null),i).then(l=>{l.some(c=>c[3]!=="cpu")?postMessage({type:r,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:r,out:l},xu([...a,...l]))},l=>{postMessage({type:r,err:l})});break}case"end-profiling":vu(t),postMessage({type:r});break;default:}}catch(s){postMessage({type:r,err:s})}}),mv=Lc?null:e=>new Worker(e??rs,{type:"module",name:Oc})}),hv={};ha(hv,{default:()=>fv});var Bc,zc,fv,gg,fP=Ve(()=>{"use strict";zc=(Bc=import.meta.url,async function(e={}){var r,t,s=e,o=new Promise((m,T)=>{r=m,t=T}),a=typeof window=="object",n=typeof WorkerGlobalScope<"u",i=n&&self.name?.startsWith("em-pthread");s.mountExternalData=(m,T)=>{m.startsWith("./")&&(m=m.substring(2)),(s.Eb||(s.Eb=new Map)).set(m,T)},s.unmountExternalData=()=>{delete s.Eb};var l=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,pc:!0}).buffer.constructor;let c=m=>async(...T)=>{try{if(s.Fb)throw Error("Session already started");let $=s.Fb={dc:T[0],errors:[]},B=await m(...T);if(s.Fb!==$)throw Error("Session mismatch");s.Jb?.flush();let V=$.errors;if(0<V.length){let ie=await Promise.all(V);if(ie=ie.filter(Ee=>Ee),0<ie.length)throw Error(ie.join(`
|
|
8
|
-
`))}return B}finally{s.Fb=null}};s.jsepInit=(m,T)=>{if(m==="webgpu"){[s.Jb,s.Ub,s.Yb,s.Kb,s.Xb,s.jb,s.Zb,s.ac,s.Vb,s.Wb,s.$b]=T;let $=s.Jb;s.jsepRegisterBuffer=(B,V,ie,Ee)=>$.registerBuffer(B,V,ie,Ee),s.jsepGetBuffer=B=>$.getBuffer(B),s.jsepCreateDownloader=(B,V,ie)=>$.createDownloader(B,V,ie),s.jsepOnCreateSession=B=>{$.onCreateSession(B)},s.jsepOnReleaseSession=B=>{$.onReleaseSession(B)},s.jsepOnRunStart=B=>$.onRunStart(B),s.bc=(B,V)=>{$.upload(B,V)}}else if(m==="webnn"){let $=T[0];[s.nc,s.Nb,s.webnnEnsureTensor,s.Ob,s.webnnDownloadTensor]=T.slice(1),s.webnnReleaseTensorId=s.Nb,s.webnnUploadTensor=s.Ob,s.webnnOnRunStart=B=>$.onRunStart(B),s.webnnOnRunEnd=$.onRunEnd.bind($),s.webnnRegisterMLContext=(B,V)=>{$.registerMLContext(B,V)},s.webnnOnReleaseSession=B=>{$.onReleaseSession(B)},s.webnnCreateMLTensorDownloader=(B,V)=>$.createMLTensorDownloader(B,V),s.webnnRegisterMLTensor=(B,V,ie,Ee)=>$.registerMLTensor(B,V,ie,Ee),s.webnnCreateMLContext=B=>$.createMLContext(B),s.webnnRegisterMLConstant=(B,V,ie,Ee,Be,Je)=>$.registerMLConstant(B,V,ie,Ee,Be,s.Eb,Je),s.webnnRegisterGraphInput=$.registerGraphInput.bind($),s.webnnIsGraphInput=$.isGraphInput.bind($),s.webnnCreateTemporaryTensor=$.createTemporaryTensor.bind($),s.webnnIsInt64Supported=$.isInt64Supported.bind($)}};let _=()=>{let m=(T,$,B)=>(...V)=>{let ie=zr,Ee=$?.();V=T(...V);let Be=$?.();return Ee!==Be&&(T=Be,B(Ee),$=B=null),zr!=ie?new Promise((Je,nt)=>{Jr={resolve:Je,reject:nt}}):V};(()=>{for(let T of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])s[T]=m(s[T],()=>s[T],$=>s[T]=$)})(),c!==void 0&&(s._OrtRun=c(s._OrtRun),s._OrtRunWithBinding=c(s._OrtRunWithBinding)),_=void 0};s.asyncInit=()=>{_?.()};var u,d,g=Object.assign({},s),h=(m,T)=>{throw T},x="";(a||n)&&(n?x=self.location.href:typeof document<"u"&&document.currentScript&&(x=document.currentScript.src),Bc&&(x=Bc),x=x.startsWith("blob:")?"":x.slice(0,x.replace(/[?#].*/,"").lastIndexOf("/")+1),n&&(d=m=>{var T=new XMLHttpRequest;return T.open("GET",m,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}),u=async m=>{if(ne(m))return new Promise(($,B)=>{var V=new XMLHttpRequest;V.open("GET",m,!0),V.responseType="arraybuffer",V.onload=()=>{V.status==200||V.status==0&&V.response?$(V.response):B(V.status)},V.onerror=B,V.send(null)});var T=await fetch(m,{credentials:"same-origin"});if(T.ok)return T.arrayBuffer();throw Error(T.status+" : "+T.url)});var F=console.log.bind(console),v=console.error.bind(console),b=F,C=v;Object.assign(s,g),g=null;var y,P,I,f,E,D,O,U,W,z,X,J,q,re=s.wasmBinary,oe=!1,ne=m=>m.startsWith("file://");function ye(){return y.buffer!=f.buffer&&we(),f}function Y(){return y.buffer!=f.buffer&&we(),E}function H(){return y.buffer!=f.buffer&&we(),D}function R(){return y.buffer!=f.buffer&&we(),O}function L(){return y.buffer!=f.buffer&&we(),U}function ee(){return y.buffer!=f.buffer&&we(),W}function ue(){return y.buffer!=f.buffer&&we(),z}function ke(){return y.buffer!=f.buffer&&we(),q}if(i){let m=function(T){try{var $=T.data,B=$.Bb;if(B==="load"){let V=[];self.onmessage=ie=>V.push(ie),self.startWorker=()=>{postMessage({Bb:"loaded"});for(let ie of V)m(ie);self.onmessage=m};for(let ie of $.Rb)s[ie]&&!s[ie].proxy||(s[ie]=(...Ee)=>{postMessage({Bb:"callHandler",Qb:ie,args:Ee})},ie=="print"&&(b=s[ie]),ie=="printErr"&&(C=s[ie]));y=$.kc,we(),Le($.lc)}else if(B==="run"){Ys($.Ab),go($.Ab,0,0,1,0,0),zt(),me($.Ab),rt||(Aa(),rt=!0);try{Zs($.fc,$.Hb)}catch(V){if(V!="unwind")throw V}}else $.target!=="setimmediate"&&(B==="checkMailbox"?rt&&Ce():B&&(C(`worker: received unknown command ${B}`),C($)))}catch(V){throw $a(),V}};var Ie=m,Le,rt=!1;C=function(...T){T=T.join(" "),console.error(T)},self.alert=function(...T){postMessage({Bb:"alert",text:T.join(" "),ic:so()})},self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=m}function we(){var m=y.buffer;s.HEAP8=f=new Int8Array(m),s.HEAP16=D=new Int16Array(m),s.HEAPU8=E=new Uint8Array(m),s.HEAPU16=O=new Uint16Array(m),s.HEAP32=U=new Int32Array(m),s.HEAPU32=W=new Uint32Array(m),s.HEAPF32=z=new Float32Array(m),s.HEAPF64=q=new Float64Array(m),s.HEAP64=X=new BigInt64Array(m),s.HEAPU64=J=new BigUint64Array(m)}function A(){i?startWorker(s):ct.Ca()}i||(y=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),we());var le,ge=0,be=null;function Ae(){if(--ge==0&&be){var m=be;be=null,m()}}function ve(m){throw C(m="Aborted("+m+")"),oe=!0,m=new WebAssembly.RuntimeError(m+". Build with -sASSERTIONS for more info."),t(m),m}function pe(){return{a:{L:Te,Aa:fe,b:Dr,$:Rs,A:Ss,pa:Qr,X:k,Z:Q,qa:N,na:K,ga:Z,ma:ce,J:xe,Y:et,V:ut,oa:qe,W:wt,va:Nt,E:Fs,Q:Ns,O:As,D:ns,u:Wr,r:ze,P:Ue,z:S,R:G,ja:te,T:Ye,aa:Ze,M:He,F:It,ia:me,sa:yt,t:nr,Ba:Br,w:is,o:pr,l:Kr,c:Gr,n:Os,j:gn,v:Mn,p:eo,f:wn,s:bn,m:vn,e:xn,k:yn,i:to,g:Tn,d:Pn,da:En,ea:kn,fa:Cn,ba:Go,ca:wa,N:Ko,xa:Yi,ua:va,h:In,C:An,G:$n,ta:Fn,x:Dn,ra:On,U:ya,q:Sn,y:Ln,K:Bn,S:Ta,za:zn,ya:Pa,ka:Ea,la:Nn,_:pt,B:ka,I:Qo,ha:Ca,H:Sa,a:y,wa:Qe}}}var Pe={829644:(m,T,$,B,V)=>{if(s===void 0||!s.Eb)return 1;if((m=qt(Number(m>>>0))).startsWith("./")&&(m=m.substring(2)),!(m=s.Eb.get(m)))return 2;if(T=Number(T>>>0),$=Number($>>>0),B=Number(B>>>0),T+$>m.byteLength)return 3;try{let ie=m.subarray(T,T+$);switch(V){case 0:Y().set(ie,B>>>0);break;case 1:s.mc?s.mc(B,ie):s.bc(B,ie);break;default:return 4}return 0}catch{return 4}},830468:(m,T,$)=>{s.Ob(m,Y().subarray(T>>>0,T+$>>>0))},830532:()=>s.nc(),830574:m=>{s.Nb(m)},830611:()=>{s.Vb()},830642:()=>{s.Wb()},830671:()=>{s.$b()},830696:m=>s.Ub(m),830729:m=>s.Yb(m),830761:(m,T,$)=>{s.Kb(Number(m),Number(T),Number($),!0)},830824:(m,T,$)=>{s.Kb(Number(m),Number(T),Number($))},830881:()=>typeof wasmOffsetConverter<"u",830938:m=>{s.jb("Abs",m,void 0)},830989:m=>{s.jb("Neg",m,void 0)},831040:m=>{s.jb("Floor",m,void 0)},831093:m=>{s.jb("Ceil",m,void 0)},831145:m=>{s.jb("Reciprocal",m,void 0)},831203:m=>{s.jb("Sqrt",m,void 0)},831255:m=>{s.jb("Exp",m,void 0)},831306:m=>{s.jb("Erf",m,void 0)},831357:m=>{s.jb("Sigmoid",m,void 0)},831412:(m,T,$)=>{s.jb("HardSigmoid",m,{alpha:T,beta:$})},831491:m=>{s.jb("Log",m,void 0)},831542:m=>{s.jb("Sin",m,void 0)},831593:m=>{s.jb("Cos",m,void 0)},831644:m=>{s.jb("Tan",m,void 0)},831695:m=>{s.jb("Asin",m,void 0)},831747:m=>{s.jb("Acos",m,void 0)},831799:m=>{s.jb("Atan",m,void 0)},831851:m=>{s.jb("Sinh",m,void 0)},831903:m=>{s.jb("Cosh",m,void 0)},831955:m=>{s.jb("Asinh",m,void 0)},832008:m=>{s.jb("Acosh",m,void 0)},832061:m=>{s.jb("Atanh",m,void 0)},832114:m=>{s.jb("Tanh",m,void 0)},832166:m=>{s.jb("Not",m,void 0)},832217:(m,T,$)=>{s.jb("Clip",m,{min:T,max:$})},832286:m=>{s.jb("Clip",m,void 0)},832338:(m,T)=>{s.jb("Elu",m,{alpha:T})},832396:m=>{s.jb("Gelu",m,void 0)},832448:m=>{s.jb("Relu",m,void 0)},832500:(m,T)=>{s.jb("LeakyRelu",m,{alpha:T})},832564:(m,T)=>{s.jb("ThresholdedRelu",m,{alpha:T})},832634:(m,T)=>{s.jb("Cast",m,{to:T})},832692:m=>{s.jb("Add",m,void 0)},832743:m=>{s.jb("Sub",m,void 0)},832794:m=>{s.jb("Mul",m,void 0)},832845:m=>{s.jb("Div",m,void 0)},832896:m=>{s.jb("Pow",m,void 0)},832947:m=>{s.jb("Equal",m,void 0)},833e3:m=>{s.jb("Greater",m,void 0)},833055:m=>{s.jb("GreaterOrEqual",m,void 0)},833117:m=>{s.jb("Less",m,void 0)},833169:m=>{s.jb("LessOrEqual",m,void 0)},833228:(m,T,$,B,V)=>{s.jb("ReduceMean",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833403:(m,T,$,B,V)=>{s.jb("ReduceMax",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833577:(m,T,$,B,V)=>{s.jb("ReduceMin",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833751:(m,T,$,B,V)=>{s.jb("ReduceProd",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833926:(m,T,$,B,V)=>{s.jb("ReduceSum",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834100:(m,T,$,B,V)=>{s.jb("ReduceL1",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834273:(m,T,$,B,V)=>{s.jb("ReduceL2",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834446:(m,T,$,B,V)=>{s.jb("ReduceLogSum",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834623:(m,T,$,B,V)=>{s.jb("ReduceSumSquare",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834803:(m,T,$,B,V)=>{s.jb("ReduceLogSumExp",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834983:m=>{s.jb("Where",m,void 0)},835036:(m,T,$)=>{s.jb("Transpose",m,{perm:T?Array.from(L().subarray(Number(T)>>>0,Number($)>>>0)):[]})},835160:(m,T,$,B)=>{s.jb("DepthToSpace",m,{blocksize:T,mode:qt($),format:B?"NHWC":"NCHW"})},835293:(m,T,$,B)=>{s.jb("DepthToSpace",m,{blocksize:T,mode:qt($),format:B?"NHWC":"NCHW"})},835426:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs)=>{s.jb("ConvTranspose",m,{format:Je?"NHWC":"NCHW",autoPad:T,dilations:[$],group:B,kernelShape:[V],pads:[ie,Ee],strides:[Be],wIsConst:()=>!!ye()[nt>>>0],outputPadding:Tt?Array.from(L().subarray(Number(Tt)>>>0,Number(Dt)>>>0)):[],outputShape:Wt?Array.from(L().subarray(Number(Wt)>>>0,Number(xr)>>>0)):[],activation:qt(Gs)})},835859:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("ConvTranspose",m,{format:Be?"NHWC":"NCHW",autoPad:T,dilations:Array.from(L().subarray(Number($)>>>0,2+(Number($)>>>0)>>>0)),group:B,kernelShape:Array.from(L().subarray(Number(V)>>>0,2+(Number(V)>>>0)>>>0)),pads:Array.from(L().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(L().subarray(Number(Ee)>>>0,2+(Number(Ee)>>>0)>>>0)),wIsConst:()=>!!ye()[Je>>>0],outputPadding:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],outputShape:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[],activation:qt(xr)})},836520:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs)=>{s.jb("ConvTranspose",m,{format:Je?"NHWC":"NCHW",autoPad:T,dilations:[$],group:B,kernelShape:[V],pads:[ie,Ee],strides:[Be],wIsConst:()=>!!ye()[nt>>>0],outputPadding:Tt?Array.from(L().subarray(Number(Tt)>>>0,Number(Dt)>>>0)):[],outputShape:Wt?Array.from(L().subarray(Number(Wt)>>>0,Number(xr)>>>0)):[],activation:qt(Gs)})},836953:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("ConvTranspose",m,{format:Be?"NHWC":"NCHW",autoPad:T,dilations:Array.from(L().subarray(Number($)>>>0,2+(Number($)>>>0)>>>0)),group:B,kernelShape:Array.from(L().subarray(Number(V)>>>0,2+(Number(V)>>>0)>>>0)),pads:Array.from(L().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(L().subarray(Number(Ee)>>>0,2+(Number(Ee)>>>0)>>>0)),wIsConst:()=>!!ye()[Je>>>0],outputPadding:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],outputShape:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[],activation:qt(xr)})},837614:(m,T)=>{s.jb("GlobalAveragePool",m,{format:T?"NHWC":"NCHW"})},837705:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("AveragePool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},838184:(m,T)=>{s.jb("GlobalAveragePool",m,{format:T?"NHWC":"NCHW"})},838275:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("AveragePool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},838754:(m,T)=>{s.jb("GlobalMaxPool",m,{format:T?"NHWC":"NCHW"})},838841:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("MaxPool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},839316:(m,T)=>{s.jb("GlobalMaxPool",m,{format:T?"NHWC":"NCHW"})},839403:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("MaxPool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},839878:(m,T,$,B,V)=>{s.jb("Gemm",m,{alpha:T,beta:$,transA:B,transB:V})},839982:m=>{s.jb("MatMul",m,void 0)},840036:(m,T,$,B)=>{s.jb("ArgMax",m,{keepDims:!!T,selectLastIndex:!!$,axis:B})},840144:(m,T,$,B)=>{s.jb("ArgMin",m,{keepDims:!!T,selectLastIndex:!!$,axis:B})},840252:(m,T)=>{s.jb("Softmax",m,{axis:T})},840315:(m,T)=>{s.jb("Concat",m,{axis:T})},840375:(m,T,$,B,V)=>{s.jb("Split",m,{axis:T,numOutputs:$,splitSizes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},840531:m=>{s.jb("Expand",m,void 0)},840585:(m,T)=>{s.jb("Gather",m,{axis:Number(T)})},840656:(m,T)=>{s.jb("GatherElements",m,{axis:Number(T)})},840735:(m,T)=>{s.jb("GatherND",m,{batch_dims:Number(T)})},840814:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt)=>{s.jb("Resize",m,{antialias:T,axes:$?Array.from(L().subarray(Number($)>>>0,Number(B)>>>0)):[],coordinateTransformMode:qt(V),cubicCoeffA:ie,excludeOutside:Ee,extrapolationValue:Be,keepAspectRatioPolicy:qt(Je),mode:qt(nt),nearestMode:qt(Tt)})},841176:(m,T,$,B,V,ie,Ee)=>{s.jb("Slice",m,{starts:T?Array.from(L().subarray(Number(T)>>>0,Number($)>>>0)):[],ends:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[],axes:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[]})},841440:m=>{s.jb("Tile",m,void 0)},841492:(m,T,$)=>{s.jb("InstanceNormalization",m,{epsilon:T,format:$?"NHWC":"NCHW"})},841606:(m,T,$)=>{s.jb("InstanceNormalization",m,{epsilon:T,format:$?"NHWC":"NCHW"})},841720:m=>{s.jb("Range",m,void 0)},841773:(m,T)=>{s.jb("Einsum",m,{equation:qt(T)})},841854:(m,T,$,B,V)=>{s.jb("Pad",m,{mode:T,value:$,pads:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},841997:(m,T,$,B,V,ie)=>{s.jb("BatchNormalization",m,{epsilon:T,momentum:$,spatial:!!V,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842166:(m,T,$,B,V,ie)=>{s.jb("BatchNormalization",m,{epsilon:T,momentum:$,spatial:!!V,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842335:(m,T,$)=>{s.jb("CumSum",m,{exclusive:Number(T),reverse:Number($)})},842432:(m,T,$)=>{s.jb("DequantizeLinear",m,{axis:T,blockSize:$})},842522:(m,T,$,B,V)=>{s.jb("GridSample",m,{align_corners:T,mode:qt($),padding_mode:qt(B),format:V?"NHWC":"NCHW"})},842692:(m,T,$,B,V)=>{s.jb("GridSample",m,{align_corners:T,mode:qt($),padding_mode:qt(B),format:V?"NHWC":"NCHW"})},842862:(m,T)=>{s.jb("ScatterND",m,{reduction:qt(T)})},842947:(m,T,$,B,V,ie,Ee,Be,Je)=>{s.jb("Attention",m,{numHeads:T,isUnidirectional:$,maskFilterValue:B,scale:V,doRotary:ie,qkvHiddenSizes:Ee?Array.from(L().subarray(Number(Be)>>>0,Number(Be)+Ee>>>0)):[],pastPresentShareBuffer:!!Je})},843219:m=>{s.jb("BiasAdd",m,void 0)},843274:m=>{s.jb("BiasSplitGelu",m,void 0)},843335:m=>{s.jb("FastGelu",m,void 0)},843391:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs,Wn)=>{s.jb("Conv",m,{format:Dt?"NHWC":"NCHW",auto_pad:T,dilations:$?Array.from(L().subarray(Number($)>>>0,Number(B)>>>0)):[],group:V,kernel_shape:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],pads:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],strides:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],w_is_const:()=>!!ye()[Number(Wt)>>>0],activation:qt(xr),activation_params:Gs?Array.from(ue().subarray(Number(Gs)>>>0,Number(Wn)>>>0)):[]})},843975:m=>{s.jb("Gelu",m,void 0)},844027:(m,T,$,B,V,ie,Ee,Be,Je)=>{s.jb("GroupQueryAttention",m,{numHeads:T,kvNumHeads:$,scale:B,softcap:V,doRotary:ie,rotaryInterleaved:Ee,smoothSoftmax:Be,localWindowSize:Je})},844244:(m,T,$,B)=>{s.jb("LayerNormalization",m,{axis:T,epsilon:$,simplified:!!B})},844355:(m,T,$,B)=>{s.jb("LayerNormalization",m,{axis:T,epsilon:$,simplified:!!B})},844466:(m,T,$,B,V,ie)=>{s.jb("MatMulNBits",m,{k:T,n:$,accuracyLevel:B,bits:V,blockSize:ie})},844593:(m,T,$,B,V,ie)=>{s.jb("MultiHeadAttention",m,{numHeads:T,isUnidirectional:$,maskFilterValue:B,scale:V,doRotary:ie})},844752:(m,T)=>{s.jb("QuickGelu",m,{alpha:T})},844816:(m,T,$,B,V)=>{s.jb("RotaryEmbedding",m,{interleaved:!!T,numHeads:$,rotaryEmbeddingDim:B,scale:V})},844955:(m,T,$)=>{s.jb("SkipLayerNormalization",m,{epsilon:T,simplified:!!$})},845057:(m,T,$)=>{s.jb("SkipLayerNormalization",m,{epsilon:T,simplified:!!$})},845159:(m,T,$,B)=>{s.jb("GatherBlockQuantized",m,{gatherAxis:T,quantizeAxis:$,blockSize:B})},845280:m=>{s.Zb(m)},845314:(m,T)=>s.ac(Number(m),Number(T),s.Fb.dc,s.Fb.errors)};function fe(m,T,$){return Fr(async()=>{await s.Xb(Number(m),Number(T),Number($))})}function Te(){return typeof wasmOffsetConverter<"u"}class We{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var $e=m=>{m.terminate(),m.onmessage=()=>{}},Re=[],Ne=m=>{Ke.length==0&&(zs(),yr(Ke[0]));var T=Ke.pop();if(!T)return 6;bt.push(T),Lt[m.Ab]=T,T.Ab=m.Ab;var $={Bb:"run",fc:m.ec,Hb:m.Hb,Ab:m.Ab};return T.postMessage($,m.Mb),0},ot=0,De=(m,T,...$)=>{for(var B=2*$.length,V=Zo(),ie=wo(8*B),Ee=ie>>>3,Be=0;Be<$.length;Be++){var Je=$[Be];typeof Je=="bigint"?(X[Ee+2*Be]=1n,X[Ee+2*Be+1]=Je):(X[Ee+2*Be]=0n,ke()[Ee+2*Be+1>>>0]=Je)}return m=Da(m,0,B,ie,T),Mo(V),m};function Qe(m){if(i)return De(0,1,m);if(I=m,!(0<ot)){for(var T of bt)$e(T);for(T of Ke)$e(T);Ke=[],bt=[],Lt={},oe=!0}h(0,new We(m))}function je(m){if(i)return De(1,0,m);pt(m)}var pt=m=>{if(I=m,i)throw je(m),"unwind";Qe(m)},Ke=[],bt=[],At=[],Lt={},fr=m=>{var T=m.Ab;delete Lt[T],Ke.push(m),bt.splice(bt.indexOf(m),1),m.Ab=0,Xo(T)};function zt(){At.forEach(m=>m())}var yr=m=>new Promise(T=>{m.onmessage=V=>{var ie=(V=V.data).Bb;if(V.Gb&&V.Gb!=so()){var Ee=Lt[V.Gb];Ee?Ee.postMessage(V,V.Mb):C(`Internal error! Worker sent a message "${ie}" to target pthread ${V.Gb}, but that thread no longer exists!`)}else ie==="checkMailbox"?Ce():ie==="spawnThread"?Ne(V):ie==="cleanupThread"?fr(Lt[V.hc]):ie==="loaded"?(m.loaded=!0,T(m)):ie==="alert"?alert(`Thread ${V.ic}: ${V.text}`):V.target==="setimmediate"?m.postMessage(V):ie==="callHandler"?s[V.Qb](...V.args):ie&&C(`worker sent an unknown command ${ie}`)},m.onerror=V=>{throw C(`worker sent an error! ${V.filename}:${V.lineno}: ${V.message}`),V};var $,B=[];for($ of[])s.propertyIsEnumerable($)&&B.push($);m.postMessage({Bb:"load",Rb:B,kc:y,lc:P})});function zs(){var m=new Worker((()=>{let T=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new T("ort.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});Ke.push(m)}var Ys=m=>{we();var T=ee()[m+52>>>2>>>0];m=ee()[m+56>>>2>>>0],La(T,T-m),Mo(T)},Zs=(m,T)=>{ot=0,m=Ba(m,T),0<ot?I=m:Jo(m)};class or{constructor(T){this.Ib=T-24}}function Dr(m,T,$){var B=new or(m>>>=0);throw T>>>=0,$>>>=0,ee()[B.Ib+16>>>2>>>0]=0,ee()[B.Ib+4>>>2>>>0]=T,ee()[B.Ib+8>>>2>>>0]=$,m}function Yr(m,T,$,B){return i?De(2,1,m,T,$,B):Rs(m,T,$,B)}function Rs(m,T,$,B){if(m>>>=0,$>>>=0,B>>>=0,l===void 0)return 6;var V=[];return i&&V.length===0?Yr(m,T>>>=0,$,B):(m={ec:$,Ab:m,Hb:B,Mb:V},i?(m.Bb="spawnThread",postMessage(m,V),0):Ne(m))}var ft=typeof TextDecoder<"u"?new TextDecoder:void 0,Cs=(m,T=0,$=NaN)=>{var B=(T>>>=0)+$;for($=T;m[$]&&!($>=B);)++$;if(16<$-T&&m.buffer&&ft)return ft.decode(m.buffer instanceof ArrayBuffer?m.subarray(T,$):m.slice(T,$));for(B="";T<$;){var V=m[T++];if(128&V){var ie=63&m[T++];if((224&V)==192)B+=String.fromCharCode((31&V)<<6|ie);else{var Ee=63&m[T++];65536>(V=(240&V)==224?(15&V)<<12|ie<<6|Ee:(7&V)<<18|ie<<12|Ee<<6|63&m[T++])?B+=String.fromCharCode(V):(V-=65536,B+=String.fromCharCode(55296|V>>10,56320|1023&V))}}else B+=String.fromCharCode(V)}return B},qt=(m,T)=>(m>>>=0)?Cs(Y(),m,T):"";function Ss(m,T,$){return i?De(3,1,m,T,$):0}function Qr(m,T){if(i)return De(4,1,m,T)}var St=m=>{for(var T=0,$=0;$<m.length;++$){var B=m.charCodeAt($);127>=B?T++:2047>=B?T+=2:55296<=B&&57343>=B?(T+=4,++$):T+=3}return T},Xr=(m,T,$)=>{var B=Y();if(T>>>=0,0<$){var V=T;$=T+$-1;for(var ie=0;ie<m.length;++ie){var Ee=m.charCodeAt(ie);if(55296<=Ee&&57343>=Ee&&(Ee=65536+((1023&Ee)<<10)|1023&m.charCodeAt(++ie)),127>=Ee){if(T>=$)break;B[T++>>>0]=Ee}else{if(2047>=Ee){if(T+1>=$)break;B[T++>>>0]=192|Ee>>6}else{if(65535>=Ee){if(T+2>=$)break;B[T++>>>0]=224|Ee>>12}else{if(T+3>=$)break;B[T++>>>0]=240|Ee>>18,B[T++>>>0]=128|Ee>>12&63}B[T++>>>0]=128|Ee>>6&63}B[T++>>>0]=128|63&Ee}}B[T>>>0]=0,m=T-V}else m=0;return m};function k(m,T){if(i)return De(5,1,m,T)}function Q(m,T,$){if(i)return De(6,1,m,T,$)}function N(m,T,$){return i?De(7,1,m,T,$):0}function K(m,T){if(i)return De(8,1,m,T)}function Z(m,T,$){if(i)return De(9,1,m,T,$)}function ce(m,T,$,B){if(i)return De(10,1,m,T,$,B)}function xe(m,T,$,B){if(i)return De(11,1,m,T,$,B)}function et(m,T,$,B){if(i)return De(12,1,m,T,$,B)}function ut(m){if(i)return De(13,1,m)}function qe(m,T){if(i)return De(14,1,m,T)}function wt(m,T,$){if(i)return De(15,1,m,T,$)}var tt,gt,Nt=()=>ve(""),Qt=m=>{for(var T="";Y()[m>>>0];)T+=tt[Y()[m++>>>0]];return T},ur={},Or={},Cr={};function Lr(m,T,$={}){return(function(B,V,ie={}){var Ee=V.name;if(!B)throw new gt(`type "${Ee}" must have a positive integer typeid pointer`);if(Or.hasOwnProperty(B)){if(ie.Sb)return;throw new gt(`Cannot register type '${Ee}' twice`)}Or[B]=V,delete Cr[B],ur.hasOwnProperty(B)&&(V=ur[B],delete ur[B],V.forEach(Be=>Be()))})(m,T,$)}var _s=(m,T,$)=>{switch(T){case 1:return $?B=>ye()[B>>>0]:B=>Y()[B>>>0];case 2:return $?B=>H()[B>>>1>>>0]:B=>R()[B>>>1>>>0];case 4:return $?B=>L()[B>>>2>>>0]:B=>ee()[B>>>2>>>0];case 8:return $?B=>X[B>>>3]:B=>J[B>>>3];default:throw new TypeError(`invalid integer width (${T}): ${m}`)}};function Fs(m,T,$){$>>>=0,Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:B=>B,toWireType:function(B,V){if(typeof V!="bigint"&&typeof V!="number")throw V=V===null?"null":(B=typeof V)=="object"||B==="array"||B==="function"?V.toString():""+V,new TypeError(`Cannot convert "${V}" to ${this.name}`);return typeof V=="number"&&(V=BigInt(V)),V},Cb:gr,readValueFromPointer:_s(T,$,T.indexOf("u")==-1),Db:null})}var gr=8;function Ns(m,T,$,B){Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:function(V){return!!V},toWireType:function(V,ie){return ie?$:B},Cb:gr,readValueFromPointer:function(V){return this.fromWireType(Y()[V>>>0])},Db:null})}var as=[],Nr=[];function Gr(m){9<(m>>>=0)&&--Nr[m+1]==0&&(Nr[m]=void 0,as.push(m))}var ar=m=>{if(!m)throw new gt("Cannot use deleted val. handle = "+m);return Nr[m]},_r=m=>{switch(m){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let T=as.pop()||Nr.length;return Nr[T]=m,Nr[T+1]=1,T}};function ps(m){return this.fromWireType(ee()[m>>>2>>>0])}var Is={name:"emscripten::val",fromWireType:m=>{var T=ar(m);return Gr(m),T},toWireType:(m,T)=>_r(T),Cb:gr,readValueFromPointer:ps,Db:null};function As(m){return Lr(m>>>0,Is)}var $s=(m,T)=>{switch(T){case 4:return function($){return this.fromWireType(ue()[$>>>2>>>0])};case 8:return function($){return this.fromWireType(ke()[$>>>3>>>0])};default:throw new TypeError(`invalid float width (${T}): ${m}`)}};function ns(m,T,$){$>>>=0,Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:B=>B,toWireType:(B,V)=>V,Cb:gr,readValueFromPointer:$s(T,$),Db:null})}function Wr(m,T,$,B,V){if(m>>>=0,$>>>=0,T=Qt(T>>>0),V===-1&&(V=4294967295),V=Be=>Be,B===0){var ie=32-8*$;V=Be=>Be<<ie>>>ie}var Ee=T.includes("unsigned")?function(Be,Je){return Je>>>0}:function(Be,Je){return Je};Lr(m,{name:T,fromWireType:V,toWireType:Ee,Cb:gr,readValueFromPointer:_s(T,$,B!==0),Db:null})}function ze(m,T,$){function B(ie){var Ee=ee()[ie>>>2>>>0];return ie=ee()[ie+4>>>2>>>0],new V(ye().buffer,ie,Ee)}var V=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][T];Lr(m>>>=0,{name:$=Qt($>>>0),fromWireType:B,Cb:gr,readValueFromPointer:B},{Sb:!0})}function Ue(m,T){Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:function($){for(var B,V=ee()[$>>>2>>>0],ie=$+4,Ee=ie,Be=0;Be<=V;++Be){var Je=ie+Be;Be!=V&&Y()[Je>>>0]!=0||(Ee=qt(Ee,Je-Ee),B===void 0?B=Ee:(B+="\0",B+=Ee),Ee=Je+1)}return es($),B},toWireType:function($,B){B instanceof ArrayBuffer&&(B=new Uint8Array(B));var V=typeof B=="string";if(!(V||B instanceof Uint8Array||B instanceof Uint8ClampedArray||B instanceof Int8Array))throw new gt("Cannot pass non-string to std::string");var ie=V?St(B):B.length,Ee=fo(4+ie+1),Be=Ee+4;if(ee()[Ee>>>2>>>0]=ie,V)Xr(B,Be,ie+1);else if(V)for(V=0;V<ie;++V){var Je=B.charCodeAt(V);if(255<Je)throw es(Ee),new gt("String has UTF-16 code units that do not fit in 8 bits");Y()[Be+V>>>0]=Je}else for(V=0;V<ie;++V)Y()[Be+V>>>0]=B[V];return $!==null&&$.push(es,Ee),Ee},Cb:gr,readValueFromPointer:ps,Db($){es($)}})}var at=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Ht=(m,T)=>{for(var $=m>>1,B=$+T/2;!($>=B)&&R()[$>>>0];)++$;if(32<($<<=1)-m&&at)return at.decode(Y().slice(m,$));for($="",B=0;!(B>=T/2);++B){var V=H()[m+2*B>>>1>>>0];if(V==0)break;$+=String.fromCharCode(V)}return $},js=(m,T,$)=>{if($??=2147483647,2>$)return 0;var B=T;$=($-=2)<2*m.length?$/2:m.length;for(var V=0;V<$;++V){var ie=m.charCodeAt(V);H()[T>>>1>>>0]=ie,T+=2}return H()[T>>>1>>>0]=0,T-B},Ds=m=>2*m.length,Vs=(m,T)=>{for(var $=0,B="";!($>=T/4);){var V=L()[m+4*$>>>2>>>0];if(V==0)break;++$,65536<=V?(V-=65536,B+=String.fromCharCode(55296|V>>10,56320|1023&V)):B+=String.fromCharCode(V)}return B},Wo=(m,T,$)=>{if(T>>>=0,$??=2147483647,4>$)return 0;var B=T;$=B+$-4;for(var V=0;V<m.length;++V){var ie=m.charCodeAt(V);if(55296<=ie&&57343>=ie&&(ie=65536+((1023&ie)<<10)|1023&m.charCodeAt(++V)),L()[T>>>2>>>0]=ie,(T+=4)+4>$)break}return L()[T>>>2>>>0]=0,T-B},de=m=>{for(var T=0,$=0;$<m.length;++$){var B=m.charCodeAt($);55296<=B&&57343>=B&&++$,T+=4}return T};function S(m,T,$){if(m>>>=0,T>>>=0,$=Qt($>>>=0),T===2)var B=Ht,V=js,ie=Ds,Ee=Be=>R()[Be>>>1>>>0];else T===4&&(B=Vs,V=Wo,ie=de,Ee=Be=>ee()[Be>>>2>>>0]);Lr(m,{name:$,fromWireType:Be=>{for(var Je,nt=ee()[Be>>>2>>>0],Tt=Be+4,Dt=0;Dt<=nt;++Dt){var Wt=Be+4+Dt*T;Dt!=nt&&Ee(Wt)!=0||(Tt=B(Tt,Wt-Tt),Je===void 0?Je=Tt:(Je+="\0",Je+=Tt),Tt=Wt+T)}return es(Be),Je},toWireType:(Be,Je)=>{if(typeof Je!="string")throw new gt(`Cannot pass non-string to C++ string type ${$}`);var nt=ie(Je),Tt=fo(4+nt+T);return ee()[Tt>>>2>>>0]=nt/T,V(Je,Tt+4,nt+T),Be!==null&&Be.push(es,Tt),Tt},Cb:gr,readValueFromPointer:ps,Db(Be){es(Be)}})}function G(m,T){Lr(m>>>=0,{Tb:!0,name:T=Qt(T>>>0),Cb:0,fromWireType:()=>{},toWireType:()=>{}})}function te(m){go(m>>>0,!n,1,!a,131072,!1),zt()}var se=m=>{if(!oe)try{if(m(),!(0<ot))try{i?Jo(I):pt(I)}catch(T){T instanceof We||T=="unwind"||h(0,T)}}catch(T){T instanceof We||T=="unwind"||h(0,T)}};function me(m){m>>>=0,typeof Atomics.jc=="function"&&(Atomics.jc(L(),m>>>2,m).value.then(Ce),m+=128,Atomics.store(L(),m>>>2,1))}var Ce=()=>{var m=so();m&&(me(m),se(Yo))};function Ye(m,T){(m>>>=0)==T>>>0?setTimeout(Ce):i?postMessage({Gb:m,Bb:"checkMailbox"}):(m=Lt[m])&&m.postMessage({Bb:"checkMailbox"})}var Xe=[];function Ze(m,T,$,B,V){for(T>>>=0,B/=2,Xe.length=B,$=V>>>0>>>3,V=0;V<B;V++)Xe[V]=X[$+2*V]?X[$+2*V+1]:ke()[$+2*V+1>>>0];return(T?Pe[T]:Vn[m])(...Xe)}var He=()=>{ot=0};function It(m){m>>>=0,i?postMessage({Bb:"cleanupThread",hc:m}):fr(Lt[m])}function yt(m){}var Xt=(m,T)=>{var $=Or[m];if($===void 0)throw m=Ia(m),$=Qt(m),es(m),new gt(`${T} has unknown type ${$}`);return $},Mr=(m,T,$)=>{var B=[];return m=m.toWireType(B,$),B.length&&(ee()[T>>>2>>>0]=_r(B)),m};function nr(m,T,$){return T>>>=0,$>>>=0,m=ar(m>>>0),T=Xt(T,"emval::as"),Mr(T,$,m)}function Br(m,T){return T>>>=0,m=ar(m>>>0),(T=Xt(T,"emval::as")).toWireType(null,m)}var ir=m=>{try{m()}catch(T){ve(T)}},Tr=0,zr=null,Pr=0,Zr=[],Yt={},vr={},Sr=0,Jr=null,ms=[];function Fr(m){return(function(T){if(!oe){if(Tr===0){var $=!1,B=!1;T((V=0)=>{if(!oe&&(Pr=V,$=!0,B)){Tr=2,ir(()=>Ra(zr)),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.resume(),V=!1;try{var ie=(function(){var Je=L()[zr+8>>>2>>>0];return Je=ct[vr[Je]],--ot,Je()})()}catch(Je){ie=Je,V=!0}var Ee=!1;if(!zr){var Be=Jr;Be&&(Jr=null,(V?Be.reject:Be.resolve)(ie),Ee=!0)}if(V&&!Ee)throw ie}}),B=!0,$||(Tr=1,zr=(function(){var V=fo(65548),ie=V+12;ee()[V>>>2>>>0]=ie,ee()[V+4>>>2>>>0]=ie+65536,ie=Zr[0];var Ee=Yt[ie];return Ee===void 0&&(Ee=Sr++,Yt[ie]=Ee,vr[Ee]=ie),ie=Ee,L()[V+8>>>2>>>0]=ie,V})(),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.pause(),ir(()=>ea(zr)))}else Tr===2?(Tr=0,ir(ta),es(zr),zr=null,ms.forEach(se)):ve(`invalid state: ${Tr}`);return Pr}})(T=>{m().then(T)})}function is(m){return m>>>=0,Fr(async()=>{var T=await ar(m);return _r(T)})}var lr=[];function pr(m,T,$,B){return $>>>=0,B>>>=0,(m=lr[m>>>0])(null,T=ar(T>>>0),$,B)}var wr={},er=m=>{var T=wr[m];return T===void 0?Qt(m):T};function Kr(m,T,$,B,V){return $>>>=0,B>>>=0,V>>>=0,(m=lr[m>>>0])(T=ar(T>>>0),T[$=er($)],B,V)}var Ws=()=>typeof globalThis=="object"?globalThis:Function("return this")();function Os(m){return(m>>>=0)==0?_r(Ws()):(m=er(m),_r(Ws()[m]))}var hn=m=>{var T=lr.length;return lr.push(m),T},fn=(m,T)=>{for(var $=Array(m),B=0;B<m;++B)$[B]=Xt(ee()[T+4*B>>>2>>>0],"parameter "+B);return $},fa=(m,T)=>Object.defineProperty(T,"name",{value:m});function gn(m,T,$){var B=(T=fn(m,T>>>0)).shift();m--;var V=`return function (obj, func, destructorsRef, args) {
|
|
7
|
+
`)}});var wi=()=>({stdout:async e=>console.log(e),stderr:async e=>console.error(e)});var jf=()=>Ec()?gi():kc()?Mi():wi();var Vf=()=>({stdout:async()=>{},stderr:async()=>{}});function Wf(){return()=>({stdout:e=>e,stderr:e=>e})}var la=class e{static writers={auto:jf,void:Vf,deno:gi,node:Mi,console:wi};static colors={auto:Cc,colorful:()=>Ka,colorless:()=>Ga};static themes={auto:Bf,basic:pi};static shapers={auto:Nf,none:Wf,errors:hi,timestamp:fi};writer=e.writers.auto();colors=e.colors.auto();theme=e.themes.auto();shaper=e.shapers.auto();async log(...r){await this.writer.stdout(this.shaper(this).stdout(r).join(" "))}async error(...r){await this.writer.stderr(this.shaper(this).stderr(r).join(" "))}setWriter(r){return this.writer=r,this}setColors(r){return this.colors=r,this}setTheme(r){return this.theme=r,this}setShaper(...r){return this.shaper=Ha(...r),this}};var qa=class extends la{static dummy(){return new this().setWriter(la.writers.void())}rpcRequest=async({request:r,...t})=>{let s=this.colors.none;this.log(...this.#e(t),s(`${r.method}()`))};rpcError=async({request:r,error:t,...s})=>{this.error(...this.#e(s),`${r.method}()`,t)};#e({meta:r,label:t,remote:s}){let o=this.colors.mix(this.colors.blue,this.colors.dim),a=this.colors.mix(this.colors.cyan,this.colors.dim);return[r?this.#t(r):void 0,t||void 0,s===void 0?void 0:s?o("<-"):a("->")].filter(Boolean)}#t(r){let{headers:t}=r.request;return[this.colors.yellow(`[${r.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var Ls=class extends qa{rpcRequest=async()=>{}};var Ks;(function(e){e.version="2.0";function r(t){return"id"in t?t.id:null}e.getId=r,e.errorCodes={serverError:-32e3,unexposedError:-32001}})(Ks||(Ks={}));var To=class extends Error{name=this.constructor.name},Po=class extends Error{name=this.constructor.name};async function Uf({tap:e,request:r,action:t}){let s=Ks.getId(r);try{let o=await t();return s===null?null:{id:s,result:o,jsonrpc:Ks.version}}catch(o){return e.rpcError({request:r,error:o}),s===null?null:{id:s,jsonrpc:Ks.version,error:o instanceof To?{code:Ks.errorCodes.serverError,message:o.message}:{code:Ks.errorCodes.unexposedError,message:"unexposed error"}}}}function bi(e){let r=e.tap??new Ls;return async t=>{let s=t.method.split("."),o=Of(e.fns,s),a=async()=>await o(...t.params);return r.rpcRequest({request:t}),await Uf({tap:r,request:t,action:a})}}var Gf=Symbol("tune"),WT=Symbol("query"),UT=Symbol("notify"),GT=Symbol("settings");function Kf(e){function r(t){let s={notify:void 0};return new Proxy((()=>{}),{apply:(o,a,n)=>e(t,n,s),get:(o,a)=>{if(a!=="then")return a===Gf?n=>(...i)=>e(t,i,{...s,...n}):a===UT?(...n)=>e(t,n,{...s,notify:!0}):a===WT?(...n)=>e(t,n,{...s,notify:!1}):a===GT?s:(o[a]||(o[a]=r([...t,a])),o[a])},set:(o,a,n)=>(o[a]=n,!0)})}return r([])}function Eo(e){let{endpoint:r,tap:t=new Ls}=e,s=1;return Kf(async(o,a,n)=>{let i=n.notify??e.notify??!1,l=n.transfer,c={jsonrpc:"2.0",method:o.join("."),params:a},_=i?c:{...c,id:s++};t.rpcRequest({request:_});let u=await r(_,{transfer:l});if(i&&!u)return null;if(!u)throw new Po("response was null, but shouldn't be, because the request was not a notification");if("error"in u)throw new Po(e.label?`${e.label}: ${u.error.message}`:u.error.message);return u.result})}function Qa(e){return Eo({endpoint:bi(e),tap:e.tap})}var ko=class{recv=_i();sendRequest=_i();sendResponse=_i();static makeEntangledPair({origin:r="example.e280.org"}={}){let t=new this,s=new this,o=[t.sendRequest.sub(n=>s.recv(n,{origin:r})),t.sendResponse.sub(n=>s.recv(n,{origin:r})),s.sendRequest.sub(n=>t.recv(n,{origin:r})),s.sendResponse.sub(n=>t.recv(n,{origin:r}))];return[t,s,()=>o.forEach(n=>n())]}};function vi(e,r){return e.addEventListener("message",r),()=>e.removeEventListener("message",r)}function Hf(e,r){return async(t,{transfer:s}={})=>{if("id"in t){let o=ls();return r(t,s,o.promise),e.wait(t.id,t.method).then(a=>(o.resolve(a),a))}else{let o=Promise.resolve(null);return r(t,s,o),o}}}function qf(e){let r=[],t=[];for(let s of Array.isArray(e)?e:[e])"method"in s?r.push(s):t.push(s);return{requests:r,responses:t}}async function Qf(e,r){let t=(await Promise.all(r.map(async s=>e(s)))).filter(s=>s!==null);return t.length===0?null:t.length===1?t[0]:t}var ca=class extends ko{dispose=ui();constructor(r){super(),this.dispose.schedule(this.sendRequest.sub((t,s)=>r.postMessage(t,s)),this.sendResponse.sub((t,s)=>r.postMessage(t,s)),vi(r,t=>this.recv(t.data,t)))}};var xi=class{remote;transfer;constructor(r){this.remote=r}};var Sc=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var yi=class{timeout;pending=new Map;constructor(r){this.timeout=r}async wait(r,t){let s=ls();return this.pending.set(r,{method:t,deferred:s}),await Df(this.timeout,()=>s.promise).catch(o=>{throw o instanceof Ua&&(o.message=`request #${r} ${t}(), ${o.message}`),o})}deliverResponse(r){let t=this.pending.get(r.id);t&&("error"in r?t.deferred.reject(new Po(r.error.message)):t.deferred.resolve(r))}};var Co=class{options;remote;remoteEndpoint;dispose=ui();#e;constructor(r){this.options=r;let{conduit:t,tap:s}=r;this.#e=new yi(r.timeout??Sc.timeout),this.remoteEndpoint=Hf(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Eo({endpoint:this.remoteEndpoint,tap:s&&Pc(s,{remote:!0})}),this.dispose.schedule(t.recv.sub(o=>this.recv(o)))}async recv(r){let t=new xi(this.remote),{conduit:s,rpc:o,tap:a}=this.options,{requests:n,responses:i}=qf(r);for(let u of i)this.#e.deliverResponse(u);if(!o)return;let l=await o(t),c=bi({fns:l,tap:a&&Pc(a,{remote:!1})}),_=await Qf(c,n);_&&await s.sendResponse(_,t.transfer)}};var Hs={derive:{host:e=>({host:e.remote.host,get transfer(){return e.transfer},set transfer(r){e.transfer=r}}),work:e=>({work:e.remote,get transfer(){return e.transfer},set transfer(r){e.transfer=r}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var qs=new Ls;async function Xf(e,r,t={}){let s=t.tap??qs,o=new Co({tap:s,timeout:t.timeout??1/0,conduit:new ca(e.getSelf()),rpc:async a=>r(Hs.derive.host(a))});return await o.remote.infra.ready(),o.remote.host}var da=class{worker;messenger;constructor(r,t){this.worker=r,this.messenger=t}static async make(r,t){let s=t.tap??qs,o=t.label??"comrade",a=r.loadWorker(t.workerUrl,o),n=ls(),i={async ready(){n.resolve()}},l=new Co({tap:s,timeout:t.timeout??1/0,conduit:new ca(a),rpc:async c=>({infra:i,host:t.setupHost(Hs.derive.work(c))})});return await n.promise,new this(a,l)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Ti=class{threads;static async make(r,t){let s=t.workerCount??r.guessOptimalThreadCount(),o=await Promise.all([...Array(s)].map(async(a,n)=>da.make(r,{...t,label:t.label??`${t.label??"comrade"}_${n+1}`})));return new this(o,{tap:t.tap})}work;#e=new Set;#t=[];constructor(r,t={}){this.threads=r;let s=t.tap??qs,o=async(a,n)=>this.#s({request:a,prom:ls(),transfer:n?.transfer});this.work=Eo({tap:s,endpoint:o}),r.forEach(a=>this.#e.add(a))}get threadCount(){return this.threads.length}terminate(){for(let r of this.threads)r.terminate()}#s(r){return this.#t.push(r),this.#r(),r.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let r=[...this.#e].pop();this.#e.delete(r);let t=this.#t.shift();this.#e.delete(r);let s=r.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(s).finally(()=>{this.#e.add(r),this.#r()})}}};var Jf=e=>({thread:r=>da.make(e,r),cluster:r=>Ti.make(e,r),worker:(r,t={})=>Xf(e,r,t),work:r=>r,host:r=>r,mocks(r){let{setupWork:t,setupHost:s,tap:o=qs}=r,a=Hs.mock.host(),n=Hs.mock.work();return n.work=Qa({tap:o,fns:t(a)}),a.host=Qa({tap:o,fns:s(n)}),{workShell:n,hostShell:a,work:n.work,host:a.host}},mockWork(r,t=qs){let s=Hs.mock.host(),o=Hs.mock.work();return o.work=Qa({tap:t,fns:r(s)}),{workShell:o,hostShell:s,work:o.work,mockHost:a=>(s.host=Qa({tap:t,fns:a(o)}),{workShell:o,hostShell:s,work:o.work,host:s.host})}}});var Yf=()=>({getSelf(){return self},guessOptimalThreadCount(){let e=navigator.hardwareConcurrency??1;return Math.max(1,e-1)},loadWorker(e,r){return new window.Worker(e,{name:r,type:"module"})},async loadWasm(e){return WebAssembly.instantiateStreaming(fetch(e))}});var qT=Yf(),Zf=Jf(qT);var Ic={};Af(Ic,{InferenceSession:()=>JT,TRACE:()=>hg,TRACE_FUNC_BEGIN:()=>Ei,TRACE_FUNC_END:()=>ki,Tensor:()=>Io,env:()=>XT,registerBackend:()=>eg});var Pi=new Map,So=[],eg=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=Pi.get(e);if(s===void 0)Pi.set(e,{backend:r,priority:t});else{if(s.priority>t)return;if(s.priority===t&&s.backend!==r)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){let o=So.indexOf(e);o!==-1&&So.splice(o,1);for(let a=0;a<So.length;a++)if(Pi.get(So[a]).priority<=t){So.splice(a,0,e);return}So.push(e)}return}throw new TypeError("not a valid backend")},QT=async e=>{let r=Pi.get(e);if(!r)return"backend not found.";if(r.initialized)return r.backend;if(r.aborted)return r.error;{let t=!!r.initPromise;try{return t||(r.initPromise=r.backend.init(e)),await r.initPromise,r.initialized=!0,r.backend}catch(s){return t||(r.error=`${s}`,r.aborted=!0),r.error}finally{delete r.initPromise}}},tg=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?So:t,o,a=[],n=new Set;for(let l of s){let c=await QT(l);typeof c=="string"?a.push({name:l,err:c}):(o||(o=c),o===c&&n.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${a.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of a)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>n.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]};var rg="1.21.0";var sg="warning",ts={wasm:{},webgl:{},webgpu:{},versions:{common:rg},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}`);sg=e}},get logLevel(){return sg}};Object.defineProperty(ts,"logLevel",{enumerable:!0});var XT=ts;var og=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];let s=t.getContext("2d");if(s!=null){let o,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[3]):(o=e.dims[3],a=e.dims[2]);let n=r?.format!==void 0?r.format:"RGB",i=r?.norm,l,c;i===void 0||i.mean===void 0?l=[255,255,255,255]:typeof i.mean=="number"?l=[i.mean,i.mean,i.mean,i.mean]:(l=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(l[3]=i.mean[3])),i===void 0||i.bias===void 0?c=[0,0,0,0]:typeof i.bias=="number"?c=[i.bias,i.bias,i.bias,i.bias]:(c=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(c[3]=i.bias[3]));let _=a*o,u=0,d=_,g=_*2,h=-1;n==="RGBA"?(u=0,d=_,g=_*2,h=_*3):n==="RGB"?(u=0,d=_,g=_*2):n==="RBG"&&(u=0,g=_,d=_*2);for(let x=0;x<a;x++)for(let F=0;F<o;F++){let v=(e.data[u++]-c[0])*l[0],b=(e.data[d++]-c[1])*l[1],C=(e.data[g++]-c[2])*l[2],y=h===-1?255:(e.data[h++]-c[3])*l[3];s.fillStyle="rgba("+v+","+b+","+C+","+y+")",s.fillRect(F,x,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},ag=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,a,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[1],n=e.dims[3]):(o=e.dims[3],a=e.dims[2],n=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,_;l===void 0||l.mean===void 0?c=[255,255,255,255]:typeof l.mean=="number"?c=[l.mean,l.mean,l.mean,l.mean]:(c=[l.mean[0],l.mean[1],l.mean[2],255],l.mean[3]!==void 0&&(c[3]=l.mean[3])),l===void 0||l.bias===void 0?_=[0,0,0,0]:typeof l.bias=="number"?_=[l.bias,l.bias,l.bias,l.bias]:(_=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(_[3]=l.bias[3]));let u=a*o;if(r!==void 0&&(r.format!==void 0&&n===4&&r.format!=="RGBA"||n===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,g=0,h=1,x=2,F=3,v=0,b=u,C=u*2,y=-1;i==="RGBA"?(v=0,b=u,C=u*2,y=u*3):i==="RGB"?(v=0,b=u,C=u*2):i==="RBG"&&(v=0,C=u,b=u*2),s=t.createImageData(o,a);for(let P=0;P<a*o;g+=d,h+=d,x+=d,F+=d,P++)s.data[g]=(e.data[v++]-_[0])*c[0],s.data[h]=(e.data[b++]-_[1])*c[1],s.data[x]=(e.data[C++]-_[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-_[3])*c[3]}else throw new Error("Can not access image data");return s};var Fc=(e,r)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(r.height===void 0||r.width===void 0)throw new Error("Image height and width must be defined");if(r.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:t,width:s}=r,o=r.norm??{mean:255,bias:0},a,n;typeof o.mean=="number"?a=[o.mean,o.mean,o.mean,o.mean]:a=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?n=[o.bias,o.bias,o.bias,o.bias]:n=[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let i=r.format!==void 0?r.format:"RGBA",l=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",c=t*s,_=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,g=1,h=2,x=3,F=0,v=c,b=c*2,C=-1;i==="RGB"&&(u=3,d=0,g=1,h=2,x=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,b=c,v=c*2):l==="BGR"&&(b=0,v=c,F=c*2);for(let P=0;P<c;P++,d+=u,h+=u,g+=u,x+=u)_[F++]=(e[d]+n[0])/a[0],_[v++]=(e[g]+n[1])/a[1],_[b++]=(e[h]+n[2])/a[2],C!==-1&&x!==-1&&(_[C++]=(e[x]+n[3])/a[3]);return l==="RGBA"?new Vr("float32",_,[1,4,t,s]):new Vr("float32",_,[1,3,t,s])},ng=async(e,r)=>{let t=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,s=typeof ImageData<"u"&&e instanceof ImageData,o=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",n,i=r??{},l=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=_=>typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||_ instanceof OffscreenCanvas?_.getContext("2d"):null;if(t){let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,g=r.resizedWidth),r!==void 0){if(i=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=d,i.width=g}else i.tensorFormat="RGBA",i.height=d,i.width=g;u.drawImage(e,0,0),n=u.getImageData(0,0,g,d).data}else throw new Error("Can not access image data")}else if(s){let _,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(_=r.resizedHeight,u=r.resizedWidth):(_=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=_,i.width=u,r!==void 0){let d=l();d.width=u,d.height=_;let g=c(d);if(g!=null)g.putImageData(e,0,0),n=g.getImageData(0,0,u,_).data;else throw new Error("Can not access image data")}else n=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;return u.drawImage(e,0,0,g,d),n=u.getImageData(0,0,g,d).data,i.height=d,i.width=g,Fc(n,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((_,u)=>{let d=l(),g=c(d);if(!e||!g)return u();let h=new Image;h.crossOrigin="Anonymous",h.src=e,h.onload=()=>{d.width=h.width,d.height=h.height,g.drawImage(h,0,0,d.width,d.height);let x=g.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,_(Fc(x.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(n!==void 0)return Fc(n,i);throw new Error("Input data provided is not supported - aborted tensor creation")},ig=(e,r)=>{let{width:t,height:s,download:o,dispose:a}=r,n=[1,s,t,4];return new Vr({location:"texture",type:"float32",texture:e,dims:n,download:o,dispose:a})},lg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new Vr({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:a})},cg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new Vr({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:a})},dg=(e,r,t)=>new Vr({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]});var Fo=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Xa=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),ug=!1,_g=()=>{if(!ug){ug=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(Fo.set("int64",BigInt64Array),Xa.set(BigInt64Array,"int64")),r&&(Fo.set("uint64",BigUint64Array),Xa.set(BigUint64Array,"uint64")),s?(Fo.set("float16",t),Xa.set(t,"float16")):Fo.set("float16",Uint16Array)}};var pg=e=>{let r=1;for(let t=0;t<e.length;t++){let s=e[t];if(typeof s!="number"||!Number.isSafeInteger(s))throw new TypeError(`dims[${t}] must be an integer, got: ${s}`);if(s<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${s}`);r*=s}return r},mg=(e,r)=>{switch(e.location){case"cpu":return new Vr(e.type,e.data,r);case"cpu-pinned":return new Vr({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new Vr({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new Vr({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new Vr({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}};var Vr=class{constructor(r,t,s){_g();let o,a;if(typeof r=="object"&&"location"in r)switch(this.dataLocation=r.location,o=r.type,a=r.dims,r.location){case"cpu-pinned":{let i=Fo.get(o);if(!i)throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);if(!(r.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=r.data;break}case"texture":{if(o!=="float32")throw new TypeError(`unsupported type "${o}" to create tensor from texture`);this.gpuTextureData=r.texture,this.downloader=r.download,this.disposer=r.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=r.gpuBuffer,this.downloader=r.download,this.disposer=r.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=r.mlTensor,this.downloader=r.download,this.disposer=r.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,l;if(typeof r=="string")if(o=r,l=s,r==="string"){if(!Array.isArray(t))throw new TypeError("A string tensor's data must be a string array.");i=t}else{let c=Fo.get(r);if(c===void 0)throw new TypeError(`Unsupported tensor type: ${r}.`);if(Array.isArray(t)){if(r==="float16"&&c===Uint16Array||r==="uint4"||r==="int4")throw new TypeError(`Creating a ${r} tensor from number array is not supported. Please use ${c.name} as data.`);r==="uint64"||r==="int64"?i=c.from(t,BigInt):i=c.from(t)}else if(t instanceof c)i=t;else if(t instanceof Uint8ClampedArray)if(r==="uint8")i=Uint8Array.from(t);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(r==="float16"&&t instanceof Uint16Array&&c!==Uint16Array)i=new globalThis.Float16Array(t.buffer,t.byteOffset,t.length);else throw new TypeError(`A ${o} tensor's data must be type of ${c}`)}else if(l=t,Array.isArray(r)){if(r.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let c=typeof r[0];if(c==="string")o="string",i=r;else if(c==="boolean")o="bool",i=Uint8Array.from(r);else throw new TypeError(`Invalid element type of data array: ${c}.`)}else if(r instanceof Uint8ClampedArray)o="uint8",i=Uint8Array.from(r);else{let c=Xa.get(r.constructor);if(c===void 0)throw new TypeError(`Unsupported type for tensor data: ${r.constructor}.`);o=c,i=r}if(l===void 0)l=[i.length];else if(!Array.isArray(l))throw new TypeError("A tensor's dims must be a number array");a=l,this.cpuData=i,this.dataLocation="cpu"}let n=pg(a);if(this.cpuData&&n!==this.cpuData.length&&!((o==="uint4"||o==="int4")&&Math.ceil(n/2)===this.cpuData.length))throw new Error(`Tensor's size(${n}) does not match data length(${this.cpuData.length}).`);this.type=o,this.dims=a,this.size=n}static async fromImage(r,t){return ng(r,t)}static fromTexture(r,t){return ig(r,t)}static fromGpuBuffer(r,t){return lg(r,t)}static fromMLTensor(r,t){return cg(r,t)}static fromPinnedBuffer(r,t,s){return dg(r,t,s)}toDataURL(r){return og(this,r)}toImageData(r){return ag(this,r)}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(r){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 t=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=t,r&&this.disposer&&(this.disposer(),this.disposer=void 0),t}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(r){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return mg(this,r)}};var Io=Vr;var hg=(e,r)=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||console.timeStamp(`${e}::ORT::${r}`)},fg=(e,r)=>{let t=new Error().stack?.split(/\r\n|\r|\n/g)||[],s=!1;for(let o=0;o<t.length;o++){if(s&&!t[o].includes("TRACE_FUNC")){let a=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(a+=`::${r}`),hg("CPU",a);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Ei=e=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||fg("BEGIN",e)},ki=e=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||fg("END",e)};var Ci=class e{constructor(r){this.handler=r}async run(r,t,s){Ei();let o={},a={};if(typeof r!="object"||r===null||r instanceof Io||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let n=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Io)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(t.length===0)throw new TypeError("'fetches' cannot be an empty array.");n=!1;for(let c of t){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);o[c]=null}if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,_=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(_.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Io)&&(c=!0,n=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else a=t}}else if(typeof t<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof r[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(n)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,a),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let _=i[c];_ instanceof Io?l[c]=_:l[c]=new Io(_.type,_.data,_.dims)}return ki(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Ei();let a,n={};if(typeof r=="string"){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer){let _=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)n=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=_.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${_.byteLength}).`);if(d=r.byteLength-u,typeof s=="number"){if(d=s,!Number.isSafeInteger(d))throw new RangeError("'byteLength' must be an integer.");if(d<=0||u+d>_.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${_.byteLength-u}].`);if(typeof o=="object"&&o!==null)n=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else if(typeof s<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof t<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(_,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await tg(n),c=await i.createInferenceSessionHandler(a,l);return ki(),new e(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};var JT=Ci;var yu={};Af(yu,{InferenceSession:()=>Qd,TRACE:()=>mn,TRACE_FUNC_BEGIN:()=>Es,TRACE_FUNC_END:()=>us,Tensor:()=>Ps,default:()=>gE,env:()=>Zt,registerBackend:()=>zo});var Hd=Object.defineProperty,YT=Object.getOwnPropertyDescriptor,ZT=Object.getOwnPropertyNames,eP=Object.prototype.hasOwnProperty,tP=(e=>typeof yo<"u"?yo:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof yo<"u"?yo:r)[t]}):e)(function(e){if(typeof yo<"u")return yo.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),Ve=(e,r)=>()=>(e&&(r=e(e=0)),r),fa=(e,r)=>{for(var t in r)Hd(e,t,{get:r[t],enumerable:!0})},rP=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of ZT(r))!eP.call(e,o)&&o!==t&&Hd(e,o,{get:()=>r[o],enumerable:!(s=YT(r,o))||s.enumerable});return e},pn=e=>rP(Hd({},"__esModule",{value:!0}),e),Ja,lo,zo,gg,Qb,Xb=Ve(()=>{"use strict";Ja=new Map,lo=[],zo=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=Ja.get(e);if(s===void 0)Ja.set(e,{backend:r,priority:t});else{if(s.priority>t)return;if(s.priority===t&&s.backend!==r)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){let o=lo.indexOf(e);o!==-1&&lo.splice(o,1);for(let a=0;a<lo.length;a++)if(Ja.get(lo[a]).priority<=t){lo.splice(a,0,e);return}lo.push(e)}return}throw new TypeError("not a valid backend")},gg=async e=>{let r=Ja.get(e);if(!r)return"backend not found.";if(r.initialized)return r.backend;if(r.aborted)return r.error;{let t=!!r.initPromise;try{return t||(r.initPromise=r.backend.init(e)),await r.initPromise,r.initialized=!0,r.backend}catch(s){return t||(r.error=`${s}`,r.aborted=!0),r.error}finally{delete r.initPromise}}},Qb=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?lo:t,o,a=[],n=new Set;for(let l of s){let c=await gg(l);typeof c=="string"?a.push({name:l,err:c}):(o||(o=c),o===c&&n.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${a.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of a)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>n.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]}}),sP=Ve(()=>{"use strict";Xb()}),Jb,oP=Ve(()=>{"use strict";Jb="1.22.0-dev.20250409-89f8206ba4"}),Ac,ds,Yb=Ve(()=>{"use strict";oP(),Ac="warning",ds={wasm:{},webgl:{},webgpu:{},versions:{common:Jb},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}`);Ac=e}},get logLevel(){return Ac}},Object.defineProperty(ds,"logLevel",{enumerable:!0})}),Zt,aP=Ve(()=>{"use strict";Yb(),Zt=ds}),Zb,ev,nP=Ve(()=>{"use strict";Zb=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];let s=t.getContext("2d");if(s!=null){let o,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[3]):(o=e.dims[3],a=e.dims[2]);let n=r?.format!==void 0?r.format:"RGB",i=r?.norm,l,c;i===void 0||i.mean===void 0?l=[255,255,255,255]:typeof i.mean=="number"?l=[i.mean,i.mean,i.mean,i.mean]:(l=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(l[3]=i.mean[3])),i===void 0||i.bias===void 0?c=[0,0,0,0]:typeof i.bias=="number"?c=[i.bias,i.bias,i.bias,i.bias]:(c=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(c[3]=i.bias[3]));let _=a*o,u=0,d=_,g=_*2,h=-1;n==="RGBA"?(u=0,d=_,g=_*2,h=_*3):n==="RGB"?(u=0,d=_,g=_*2):n==="RBG"&&(u=0,g=_,d=_*2);for(let x=0;x<a;x++)for(let F=0;F<o;F++){let v=(e.data[u++]-c[0])*l[0],b=(e.data[d++]-c[1])*l[1],C=(e.data[g++]-c[2])*l[2],y=h===-1?255:(e.data[h++]-c[3])*l[3];s.fillStyle="rgba("+v+","+b+","+C+","+y+")",s.fillRect(F,x,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},ev=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,a,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[1],n=e.dims[3]):(o=e.dims[3],a=e.dims[2],n=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,_;l===void 0||l.mean===void 0?c=[255,255,255,255]:typeof l.mean=="number"?c=[l.mean,l.mean,l.mean,l.mean]:(c=[l.mean[0],l.mean[1],l.mean[2],255],l.mean[3]!==void 0&&(c[3]=l.mean[3])),l===void 0||l.bias===void 0?_=[0,0,0,0]:typeof l.bias=="number"?_=[l.bias,l.bias,l.bias,l.bias]:(_=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(_[3]=l.bias[3]));let u=a*o;if(r!==void 0&&(r.format!==void 0&&n===4&&r.format!=="RGBA"||n===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,g=0,h=1,x=2,F=3,v=0,b=u,C=u*2,y=-1;i==="RGBA"?(v=0,b=u,C=u*2,y=u*3):i==="RGB"?(v=0,b=u,C=u*2):i==="RBG"&&(v=0,C=u,b=u*2),s=t.createImageData(o,a);for(let P=0;P<a*o;g+=d,h+=d,x+=d,F+=d,P++)s.data[g]=(e.data[v++]-_[0])*c[0],s.data[h]=(e.data[b++]-_[1])*c[1],s.data[x]=(e.data[C++]-_[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-_[3])*c[3]}else throw new Error("Can not access image data");return s}}),Si,tv,rv,sv,ov,av,iP=Ve(()=>{"use strict";qd(),Si=(e,r)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(r.height===void 0||r.width===void 0)throw new Error("Image height and width must be defined");if(r.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:t,width:s}=r,o=r.norm??{mean:255,bias:0},a,n;typeof o.mean=="number"?a=[o.mean,o.mean,o.mean,o.mean]:a=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?n=[o.bias,o.bias,o.bias,o.bias]:n=[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let i=r.format!==void 0?r.format:"RGBA",l=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",c=t*s,_=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,g=1,h=2,x=3,F=0,v=c,b=c*2,C=-1;i==="RGB"&&(u=3,d=0,g=1,h=2,x=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,b=c,v=c*2):l==="BGR"&&(b=0,v=c,F=c*2);for(let y=0;y<c;y++,d+=u,h+=u,g+=u,x+=u)_[F++]=(e[d]+n[0])/a[0],_[v++]=(e[g]+n[1])/a[1],_[b++]=(e[h]+n[2])/a[2],C!==-1&&x!==-1&&(_[C++]=(e[x]+n[3])/a[3]);return l==="RGBA"?new ss("float32",_,[1,4,t,s]):new ss("float32",_,[1,3,t,s])},tv=async(e,r)=>{let t=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,s=typeof ImageData<"u"&&e instanceof ImageData,o=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",n,i=r??{},l=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=_=>typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||_ instanceof OffscreenCanvas?_.getContext("2d"):null;if(t){let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,g=r.resizedWidth),r!==void 0){if(i=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=d,i.width=g}else i.tensorFormat="RGBA",i.height=d,i.width=g;u.drawImage(e,0,0),n=u.getImageData(0,0,g,d).data}else throw new Error("Can not access image data")}else if(s){let _,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(_=r.resizedHeight,u=r.resizedWidth):(_=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=_,i.width=u,r!==void 0){let d=l();d.width=u,d.height=_;let g=c(d);if(g!=null)g.putImageData(e,0,0),n=g.getImageData(0,0,u,_).data;else throw new Error("Can not access image data")}else n=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;return u.drawImage(e,0,0,g,d),n=u.getImageData(0,0,g,d).data,i.height=d,i.width=g,Si(n,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((_,u)=>{let d=l(),g=c(d);if(!e||!g)return u();let h=new Image;h.crossOrigin="Anonymous",h.src=e,h.onload=()=>{d.width=h.width,d.height=h.height,g.drawImage(h,0,0,d.width,d.height);let x=g.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,_(Si(x.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(n!==void 0)return Si(n,i);throw new Error("Input data provided is not supported - aborted tensor creation")},rv=(e,r)=>{let{width:t,height:s,download:o,dispose:a}=r,n=[1,s,t,4];return new ss({location:"texture",type:"float32",texture:e,dims:n,download:o,dispose:a})},sv=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new ss({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:a})},ov=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new ss({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:a})},av=(e,r,t)=>new ss({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]})}),Lo,ln,$c,nv,lP=Ve(()=>{"use strict";Lo=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),ln=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),$c=!1,nv=()=>{if(!$c){$c=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(Lo.set("int64",BigInt64Array),ln.set(BigInt64Array,"int64")),r&&(Lo.set("uint64",BigUint64Array),ln.set(BigUint64Array,"uint64")),s?(Lo.set("float16",t),ln.set(t,"float16")):Lo.set("float16",Uint16Array)}}}),iv,lv,cP=Ve(()=>{"use strict";qd(),iv=e=>{let r=1;for(let t=0;t<e.length;t++){let s=e[t];if(typeof s!="number"||!Number.isSafeInteger(s))throw new TypeError(`dims[${t}] must be an integer, got: ${s}`);if(s<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${s}`);r*=s}return r},lv=(e,r)=>{switch(e.location){case"cpu":return new ss(e.type,e.data,r);case"cpu-pinned":return new ss({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new ss({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new ss({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new ss({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}}),ss,qd=Ve(()=>{"use strict";nP(),iP(),lP(),cP(),ss=class{constructor(e,r,t){nv();let s,o;if(typeof e=="object"&&"location"in e)switch(this.dataLocation=e.location,s=e.type,o=e.dims,e.location){case"cpu-pinned":{let n=Lo.get(s);if(!n)throw new TypeError(`unsupported type "${s}" to create tensor from pinned buffer`);if(!(e.data instanceof n))throw new TypeError(`buffer should be of type ${n.name}`);this.cpuData=e.data;break}case"texture":{if(s!=="float32")throw new TypeError(`unsupported type "${s}" to create tensor from texture`);this.gpuTextureData=e.texture,this.downloader=e.download,this.disposer=e.dispose;break}case"gpu-buffer":{if(s!=="float32"&&s!=="float16"&&s!=="int32"&&s!=="int64"&&s!=="uint32"&&s!=="uint8"&&s!=="bool"&&s!=="uint4"&&s!=="int4")throw new TypeError(`unsupported type "${s}" to create tensor from gpu buffer`);this.gpuBufferData=e.gpuBuffer,this.downloader=e.download,this.disposer=e.dispose;break}case"ml-tensor":{if(s!=="float32"&&s!=="float16"&&s!=="int32"&&s!=="int64"&&s!=="uint32"&&s!=="uint64"&&s!=="int8"&&s!=="uint8"&&s!=="bool"&&s!=="uint4"&&s!=="int4")throw new TypeError(`unsupported type "${s}" to create tensor from MLTensor`);this.mlTensorData=e.mlTensor,this.downloader=e.download,this.disposer=e.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let n,i;if(typeof e=="string")if(s=e,i=t,e==="string"){if(!Array.isArray(r))throw new TypeError("A string tensor's data must be a string array.");n=r}else{let l=Lo.get(e);if(l===void 0)throw new TypeError(`Unsupported tensor type: ${e}.`);if(Array.isArray(r)){if(e==="float16"&&l===Uint16Array||e==="uint4"||e==="int4")throw new TypeError(`Creating a ${e} tensor from number array is not supported. Please use ${l.name} as data.`);e==="uint64"||e==="int64"?n=l.from(r,BigInt):n=l.from(r)}else if(r instanceof l)n=r;else if(r instanceof Uint8ClampedArray)if(e==="uint8")n=Uint8Array.from(r);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(e==="float16"&&r instanceof Uint16Array&&l!==Uint16Array)n=new globalThis.Float16Array(r.buffer,r.byteOffset,r.length);else throw new TypeError(`A ${s} tensor's data must be type of ${l}`)}else if(i=r,Array.isArray(e)){if(e.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let l=typeof e[0];if(l==="string")s="string",n=e;else if(l==="boolean")s="bool",n=Uint8Array.from(e);else throw new TypeError(`Invalid element type of data array: ${l}.`)}else if(e instanceof Uint8ClampedArray)s="uint8",n=Uint8Array.from(e);else{let l=ln.get(e.constructor);if(l===void 0)throw new TypeError(`Unsupported type for tensor data: ${e.constructor}.`);s=l,n=e}if(i===void 0)i=[n.length];else if(!Array.isArray(i))throw new TypeError("A tensor's dims must be a number array");o=i,this.cpuData=n,this.dataLocation="cpu"}let a=iv(o);if(this.cpuData&&a!==this.cpuData.length&&!((s==="uint4"||s==="int4")&&Math.ceil(a/2)===this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=s,this.dims=o,this.size=a}static async fromImage(e,r){return tv(e,r)}static fromTexture(e,r){return rv(e,r)}static fromGpuBuffer(e,r){return sv(e,r)}static fromMLTensor(e,r){return ov(e,r)}static fromPinnedBuffer(e,r,t){return av(e,r,t)}toDataURL(e){return Zb(this,e)}toImageData(e){return ev(this,e)}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(e){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 r=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=r,e&&this.disposer&&(this.disposer(),this.disposer=void 0),r}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.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(e){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return lv(this,e)}}}),Ps,cv=Ve(()=>{"use strict";qd(),Ps=ss}),mn,Dc,Es,us,dv=Ve(()=>{"use strict";Yb(),mn=(e,r)=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||console.timeStamp(`${e}::ORT::${r}`)},Dc=(e,r)=>{let t=new Error().stack?.split(/\r\n|\r|\n/g)||[],s=!1;for(let o=0;o<t.length;o++){if(s&&!t[o].includes("TRACE_FUNC")){let a=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(a+=`::${r}`),mn("CPU",a);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Es=e=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||Dc("BEGIN",e)},us=e=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||Dc("END",e)}}),uv,dP=Ve(()=>{"use strict";Xb(),cv(),dv(),uv=class _v{constructor(r){this.handler=r}async run(r,t,s){Es();let o={},a={};if(typeof r!="object"||r===null||r instanceof Ps||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let n=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Ps)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(t.length===0)throw new TypeError("'fetches' cannot be an empty array.");n=!1;for(let c of t){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);o[c]=null}if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,_=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(_.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Ps)&&(c=!0,n=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else a=t}}else if(typeof t<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof r[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(n)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,a),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let _=i[c];_ instanceof Ps?l[c]=_:l[c]=new Ps(_.type,_.data,_.dims)}return us(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Es();let a,n={};if(typeof r=="string"){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer){let _=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)n=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=_.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${_.byteLength}).`);if(d=r.byteLength-u,typeof s=="number"){if(d=s,!Number.isSafeInteger(d))throw new RangeError("'byteLength' must be an integer.");if(d<=0||u+d>_.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${_.byteLength-u}].`);if(typeof o=="object"&&o!==null)n=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else if(typeof s<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof t<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(_,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await Qb(n),c=await i.createInferenceSessionHandler(a,l);return us(),new _v(c)}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}}}),Qd,uP=Ve(()=>{"use strict";dP(),Qd=uv}),_P=Ve(()=>{"use strict"}),pP=Ve(()=>{"use strict"}),mP=Ve(()=>{"use strict"}),hP=Ve(()=>{"use strict"}),pv={};fa(pv,{InferenceSession:()=>Qd,TRACE:()=>mn,TRACE_FUNC_BEGIN:()=>Es,TRACE_FUNC_END:()=>us,Tensor:()=>Ps,env:()=>Zt,registerBackend:()=>zo});var ks=Ve(()=>{"use strict";sP(),aP(),uP(),cv(),_P(),pP(),dv(),mP(),hP()}),Xd=Ve(()=>{"use strict"}),mv={};fa(mv,{default:()=>hv});var Oc,Lc,hv,fP=Ve(()=>{"use strict";b0(),Vo(),Jd(),Oc="ort-wasm-proxy-worker",Lc=globalThis.self?.name===Oc,Lc&&(self.onmessage=e=>{let{type:r,in:t}=e.data;try{switch(r){case"init-wasm":Yd(t.wasm).then(()=>{fu(t).then(()=>{postMessage({type:r})},s=>{postMessage({type:r,err:s})})},s=>{postMessage({type:r,err:s})});break;case"init-ep":{let{epName:s,env:o}=t;gu(o,s).then(()=>{postMessage({type:r})},a=>{postMessage({type:r,err:a})});break}case"copy-from":{let{buffer:s}=t,o=Ji(s);postMessage({type:r,out:o});break}case"create":{let{model:s,options:o}=t;Mu(s,o).then(a=>{postMessage({type:r,out:a})},a=>{postMessage({type:r,err:a})});break}case"release":wu(t),postMessage({type:r});break;case"run":{let{sessionId:s,inputIndices:o,inputs:a,outputIndices:n,options:i}=t;bu(s,o,a,n,new Array(n.length).fill(null),i).then(l=>{l.some(c=>c[3]!=="cpu")?postMessage({type:r,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:r,out:l},xu([...a,...l]))},l=>{postMessage({type:r,err:l})});break}case"end-profiling":vu(t),postMessage({type:r});break;default:}}catch(s){postMessage({type:r,err:s})}}),hv=Lc?null:e=>new Worker(e??rs,{type:"module",name:Oc})}),fv={};fa(fv,{default:()=>gv});var Bc,zc,gv,Mg,gP=Ve(()=>{"use strict";zc=(Bc=import.meta.url,async function(e={}){var r,t,s=e,o=new Promise((m,T)=>{r=m,t=T}),a=typeof window=="object",n=typeof WorkerGlobalScope<"u",i=n&&self.name?.startsWith("em-pthread");s.mountExternalData=(m,T)=>{m.startsWith("./")&&(m=m.substring(2)),(s.Eb||(s.Eb=new Map)).set(m,T)},s.unmountExternalData=()=>{delete s.Eb};var l=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,pc:!0}).buffer.constructor;let c=m=>async(...T)=>{try{if(s.Fb)throw Error("Session already started");let $=s.Fb={dc:T[0],errors:[]},B=await m(...T);if(s.Fb!==$)throw Error("Session mismatch");s.Jb?.flush();let V=$.errors;if(0<V.length){let ie=await Promise.all(V);if(ie=ie.filter(Ee=>Ee),0<ie.length)throw Error(ie.join(`
|
|
8
|
+
`))}return B}finally{s.Fb=null}};s.jsepInit=(m,T)=>{if(m==="webgpu"){[s.Jb,s.Ub,s.Yb,s.Kb,s.Xb,s.jb,s.Zb,s.ac,s.Vb,s.Wb,s.$b]=T;let $=s.Jb;s.jsepRegisterBuffer=(B,V,ie,Ee)=>$.registerBuffer(B,V,ie,Ee),s.jsepGetBuffer=B=>$.getBuffer(B),s.jsepCreateDownloader=(B,V,ie)=>$.createDownloader(B,V,ie),s.jsepOnCreateSession=B=>{$.onCreateSession(B)},s.jsepOnReleaseSession=B=>{$.onReleaseSession(B)},s.jsepOnRunStart=B=>$.onRunStart(B),s.bc=(B,V)=>{$.upload(B,V)}}else if(m==="webnn"){let $=T[0];[s.nc,s.Nb,s.webnnEnsureTensor,s.Ob,s.webnnDownloadTensor]=T.slice(1),s.webnnReleaseTensorId=s.Nb,s.webnnUploadTensor=s.Ob,s.webnnOnRunStart=B=>$.onRunStart(B),s.webnnOnRunEnd=$.onRunEnd.bind($),s.webnnRegisterMLContext=(B,V)=>{$.registerMLContext(B,V)},s.webnnOnReleaseSession=B=>{$.onReleaseSession(B)},s.webnnCreateMLTensorDownloader=(B,V)=>$.createMLTensorDownloader(B,V),s.webnnRegisterMLTensor=(B,V,ie,Ee)=>$.registerMLTensor(B,V,ie,Ee),s.webnnCreateMLContext=B=>$.createMLContext(B),s.webnnRegisterMLConstant=(B,V,ie,Ee,Be,Je)=>$.registerMLConstant(B,V,ie,Ee,Be,s.Eb,Je),s.webnnRegisterGraphInput=$.registerGraphInput.bind($),s.webnnIsGraphInput=$.isGraphInput.bind($),s.webnnCreateTemporaryTensor=$.createTemporaryTensor.bind($),s.webnnIsInt64Supported=$.isInt64Supported.bind($)}};let _=()=>{let m=(T,$,B)=>(...V)=>{let ie=zr,Ee=$?.();V=T(...V);let Be=$?.();return Ee!==Be&&(T=Be,B(Ee),$=B=null),zr!=ie?new Promise((Je,nt)=>{Jr={resolve:Je,reject:nt}}):V};(()=>{for(let T of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])s[T]=m(s[T],()=>s[T],$=>s[T]=$)})(),c!==void 0&&(s._OrtRun=c(s._OrtRun),s._OrtRunWithBinding=c(s._OrtRunWithBinding)),_=void 0};s.asyncInit=()=>{_?.()};var u,d,g=Object.assign({},s),h=(m,T)=>{throw T},x="";(a||n)&&(n?x=self.location.href:typeof document<"u"&&document.currentScript&&(x=document.currentScript.src),Bc&&(x=Bc),x=x.startsWith("blob:")?"":x.slice(0,x.replace(/[?#].*/,"").lastIndexOf("/")+1),n&&(d=m=>{var T=new XMLHttpRequest;return T.open("GET",m,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}),u=async m=>{if(ne(m))return new Promise(($,B)=>{var V=new XMLHttpRequest;V.open("GET",m,!0),V.responseType="arraybuffer",V.onload=()=>{V.status==200||V.status==0&&V.response?$(V.response):B(V.status)},V.onerror=B,V.send(null)});var T=await fetch(m,{credentials:"same-origin"});if(T.ok)return T.arrayBuffer();throw Error(T.status+" : "+T.url)});var F=console.log.bind(console),v=console.error.bind(console),b=F,C=v;Object.assign(s,g),g=null;var y,P,I,f,E,D,O,U,W,z,X,J,q,re=s.wasmBinary,oe=!1,ne=m=>m.startsWith("file://");function ye(){return y.buffer!=f.buffer&&we(),f}function Y(){return y.buffer!=f.buffer&&we(),E}function H(){return y.buffer!=f.buffer&&we(),D}function R(){return y.buffer!=f.buffer&&we(),O}function L(){return y.buffer!=f.buffer&&we(),U}function ee(){return y.buffer!=f.buffer&&we(),W}function ue(){return y.buffer!=f.buffer&&we(),z}function ke(){return y.buffer!=f.buffer&&we(),q}if(i){let m=function(T){try{var $=T.data,B=$.Bb;if(B==="load"){let V=[];self.onmessage=ie=>V.push(ie),self.startWorker=()=>{postMessage({Bb:"loaded"});for(let ie of V)m(ie);self.onmessage=m};for(let ie of $.Rb)s[ie]&&!s[ie].proxy||(s[ie]=(...Ee)=>{postMessage({Bb:"callHandler",Qb:ie,args:Ee})},ie=="print"&&(b=s[ie]),ie=="printErr"&&(C=s[ie]));y=$.kc,we(),Le($.lc)}else if(B==="run"){Ys($.Ab),go($.Ab,0,0,1,0,0),zt(),me($.Ab),rt||($a(),rt=!0);try{Zs($.fc,$.Hb)}catch(V){if(V!="unwind")throw V}}else $.target!=="setimmediate"&&(B==="checkMailbox"?rt&&Ce():B&&(C(`worker: received unknown command ${B}`),C($)))}catch(V){throw Da(),V}};var Ie=m,Le,rt=!1;C=function(...T){T=T.join(" "),console.error(T)},self.alert=function(...T){postMessage({Bb:"alert",text:T.join(" "),ic:so()})},self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=m}function we(){var m=y.buffer;s.HEAP8=f=new Int8Array(m),s.HEAP16=D=new Int16Array(m),s.HEAPU8=E=new Uint8Array(m),s.HEAPU16=O=new Uint16Array(m),s.HEAP32=U=new Int32Array(m),s.HEAPU32=W=new Uint32Array(m),s.HEAPF32=z=new Float32Array(m),s.HEAPF64=q=new Float64Array(m),s.HEAP64=X=new BigInt64Array(m),s.HEAPU64=J=new BigUint64Array(m)}function A(){i?startWorker(s):ct.Ca()}i||(y=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),we());var le,ge=0,be=null;function Ae(){if(--ge==0&&be){var m=be;be=null,m()}}function ve(m){throw C(m="Aborted("+m+")"),oe=!0,m=new WebAssembly.RuntimeError(m+". Build with -sASSERTIONS for more info."),t(m),m}function pe(){return{a:{L:Te,Aa:fe,b:Dr,$:Rs,A:Ss,pa:Qr,X:k,Z:Q,qa:N,na:K,ga:Z,ma:ce,J:xe,Y:et,V:ut,oa:qe,W:wt,va:Nt,E:Fs,Q:Ns,O:As,D:ns,u:Wr,r:ze,P:Ue,z:S,R:G,ja:te,T:Ye,aa:Ze,M:He,F:It,ia:me,sa:yt,t:nr,Ba:Br,w:is,o:pr,l:Kr,c:Gr,n:Os,j:Mn,v:wn,p:eo,f:bn,s:vn,m:xn,e:yn,k:Tn,i:to,g:Pn,d:En,da:kn,ea:Cn,fa:Sn,ba:Ko,ca:ba,N:Ho,xa:Yi,ua:xa,h:An,C:$n,G:Dn,ta:In,x:On,ra:Ln,U:Ta,q:Fn,y:Bn,K:zn,S:Pa,za:Rn,ya:Ea,ka,la:jn,_:pt,B:Ca,I:Xo,ha:Sa,H:Fa,a:y,wa:Qe}}}var Pe={829644:(m,T,$,B,V)=>{if(s===void 0||!s.Eb)return 1;if((m=qt(Number(m>>>0))).startsWith("./")&&(m=m.substring(2)),!(m=s.Eb.get(m)))return 2;if(T=Number(T>>>0),$=Number($>>>0),B=Number(B>>>0),T+$>m.byteLength)return 3;try{let ie=m.subarray(T,T+$);switch(V){case 0:Y().set(ie,B>>>0);break;case 1:s.mc?s.mc(B,ie):s.bc(B,ie);break;default:return 4}return 0}catch{return 4}},830468:(m,T,$)=>{s.Ob(m,Y().subarray(T>>>0,T+$>>>0))},830532:()=>s.nc(),830574:m=>{s.Nb(m)},830611:()=>{s.Vb()},830642:()=>{s.Wb()},830671:()=>{s.$b()},830696:m=>s.Ub(m),830729:m=>s.Yb(m),830761:(m,T,$)=>{s.Kb(Number(m),Number(T),Number($),!0)},830824:(m,T,$)=>{s.Kb(Number(m),Number(T),Number($))},830881:()=>typeof wasmOffsetConverter<"u",830938:m=>{s.jb("Abs",m,void 0)},830989:m=>{s.jb("Neg",m,void 0)},831040:m=>{s.jb("Floor",m,void 0)},831093:m=>{s.jb("Ceil",m,void 0)},831145:m=>{s.jb("Reciprocal",m,void 0)},831203:m=>{s.jb("Sqrt",m,void 0)},831255:m=>{s.jb("Exp",m,void 0)},831306:m=>{s.jb("Erf",m,void 0)},831357:m=>{s.jb("Sigmoid",m,void 0)},831412:(m,T,$)=>{s.jb("HardSigmoid",m,{alpha:T,beta:$})},831491:m=>{s.jb("Log",m,void 0)},831542:m=>{s.jb("Sin",m,void 0)},831593:m=>{s.jb("Cos",m,void 0)},831644:m=>{s.jb("Tan",m,void 0)},831695:m=>{s.jb("Asin",m,void 0)},831747:m=>{s.jb("Acos",m,void 0)},831799:m=>{s.jb("Atan",m,void 0)},831851:m=>{s.jb("Sinh",m,void 0)},831903:m=>{s.jb("Cosh",m,void 0)},831955:m=>{s.jb("Asinh",m,void 0)},832008:m=>{s.jb("Acosh",m,void 0)},832061:m=>{s.jb("Atanh",m,void 0)},832114:m=>{s.jb("Tanh",m,void 0)},832166:m=>{s.jb("Not",m,void 0)},832217:(m,T,$)=>{s.jb("Clip",m,{min:T,max:$})},832286:m=>{s.jb("Clip",m,void 0)},832338:(m,T)=>{s.jb("Elu",m,{alpha:T})},832396:m=>{s.jb("Gelu",m,void 0)},832448:m=>{s.jb("Relu",m,void 0)},832500:(m,T)=>{s.jb("LeakyRelu",m,{alpha:T})},832564:(m,T)=>{s.jb("ThresholdedRelu",m,{alpha:T})},832634:(m,T)=>{s.jb("Cast",m,{to:T})},832692:m=>{s.jb("Add",m,void 0)},832743:m=>{s.jb("Sub",m,void 0)},832794:m=>{s.jb("Mul",m,void 0)},832845:m=>{s.jb("Div",m,void 0)},832896:m=>{s.jb("Pow",m,void 0)},832947:m=>{s.jb("Equal",m,void 0)},833e3:m=>{s.jb("Greater",m,void 0)},833055:m=>{s.jb("GreaterOrEqual",m,void 0)},833117:m=>{s.jb("Less",m,void 0)},833169:m=>{s.jb("LessOrEqual",m,void 0)},833228:(m,T,$,B,V)=>{s.jb("ReduceMean",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833403:(m,T,$,B,V)=>{s.jb("ReduceMax",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833577:(m,T,$,B,V)=>{s.jb("ReduceMin",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833751:(m,T,$,B,V)=>{s.jb("ReduceProd",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833926:(m,T,$,B,V)=>{s.jb("ReduceSum",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834100:(m,T,$,B,V)=>{s.jb("ReduceL1",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834273:(m,T,$,B,V)=>{s.jb("ReduceL2",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834446:(m,T,$,B,V)=>{s.jb("ReduceLogSum",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834623:(m,T,$,B,V)=>{s.jb("ReduceSumSquare",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834803:(m,T,$,B,V)=>{s.jb("ReduceLogSumExp",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834983:m=>{s.jb("Where",m,void 0)},835036:(m,T,$)=>{s.jb("Transpose",m,{perm:T?Array.from(L().subarray(Number(T)>>>0,Number($)>>>0)):[]})},835160:(m,T,$,B)=>{s.jb("DepthToSpace",m,{blocksize:T,mode:qt($),format:B?"NHWC":"NCHW"})},835293:(m,T,$,B)=>{s.jb("DepthToSpace",m,{blocksize:T,mode:qt($),format:B?"NHWC":"NCHW"})},835426:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs)=>{s.jb("ConvTranspose",m,{format:Je?"NHWC":"NCHW",autoPad:T,dilations:[$],group:B,kernelShape:[V],pads:[ie,Ee],strides:[Be],wIsConst:()=>!!ye()[nt>>>0],outputPadding:Tt?Array.from(L().subarray(Number(Tt)>>>0,Number(Dt)>>>0)):[],outputShape:Wt?Array.from(L().subarray(Number(Wt)>>>0,Number(xr)>>>0)):[],activation:qt(Gs)})},835859:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("ConvTranspose",m,{format:Be?"NHWC":"NCHW",autoPad:T,dilations:Array.from(L().subarray(Number($)>>>0,2+(Number($)>>>0)>>>0)),group:B,kernelShape:Array.from(L().subarray(Number(V)>>>0,2+(Number(V)>>>0)>>>0)),pads:Array.from(L().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(L().subarray(Number(Ee)>>>0,2+(Number(Ee)>>>0)>>>0)),wIsConst:()=>!!ye()[Je>>>0],outputPadding:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],outputShape:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[],activation:qt(xr)})},836520:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs)=>{s.jb("ConvTranspose",m,{format:Je?"NHWC":"NCHW",autoPad:T,dilations:[$],group:B,kernelShape:[V],pads:[ie,Ee],strides:[Be],wIsConst:()=>!!ye()[nt>>>0],outputPadding:Tt?Array.from(L().subarray(Number(Tt)>>>0,Number(Dt)>>>0)):[],outputShape:Wt?Array.from(L().subarray(Number(Wt)>>>0,Number(xr)>>>0)):[],activation:qt(Gs)})},836953:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("ConvTranspose",m,{format:Be?"NHWC":"NCHW",autoPad:T,dilations:Array.from(L().subarray(Number($)>>>0,2+(Number($)>>>0)>>>0)),group:B,kernelShape:Array.from(L().subarray(Number(V)>>>0,2+(Number(V)>>>0)>>>0)),pads:Array.from(L().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(L().subarray(Number(Ee)>>>0,2+(Number(Ee)>>>0)>>>0)),wIsConst:()=>!!ye()[Je>>>0],outputPadding:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],outputShape:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[],activation:qt(xr)})},837614:(m,T)=>{s.jb("GlobalAveragePool",m,{format:T?"NHWC":"NCHW"})},837705:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("AveragePool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},838184:(m,T)=>{s.jb("GlobalAveragePool",m,{format:T?"NHWC":"NCHW"})},838275:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("AveragePool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},838754:(m,T)=>{s.jb("GlobalMaxPool",m,{format:T?"NHWC":"NCHW"})},838841:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("MaxPool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},839316:(m,T)=>{s.jb("GlobalMaxPool",m,{format:T?"NHWC":"NCHW"})},839403:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("MaxPool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},839878:(m,T,$,B,V)=>{s.jb("Gemm",m,{alpha:T,beta:$,transA:B,transB:V})},839982:m=>{s.jb("MatMul",m,void 0)},840036:(m,T,$,B)=>{s.jb("ArgMax",m,{keepDims:!!T,selectLastIndex:!!$,axis:B})},840144:(m,T,$,B)=>{s.jb("ArgMin",m,{keepDims:!!T,selectLastIndex:!!$,axis:B})},840252:(m,T)=>{s.jb("Softmax",m,{axis:T})},840315:(m,T)=>{s.jb("Concat",m,{axis:T})},840375:(m,T,$,B,V)=>{s.jb("Split",m,{axis:T,numOutputs:$,splitSizes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},840531:m=>{s.jb("Expand",m,void 0)},840585:(m,T)=>{s.jb("Gather",m,{axis:Number(T)})},840656:(m,T)=>{s.jb("GatherElements",m,{axis:Number(T)})},840735:(m,T)=>{s.jb("GatherND",m,{batch_dims:Number(T)})},840814:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt)=>{s.jb("Resize",m,{antialias:T,axes:$?Array.from(L().subarray(Number($)>>>0,Number(B)>>>0)):[],coordinateTransformMode:qt(V),cubicCoeffA:ie,excludeOutside:Ee,extrapolationValue:Be,keepAspectRatioPolicy:qt(Je),mode:qt(nt),nearestMode:qt(Tt)})},841176:(m,T,$,B,V,ie,Ee)=>{s.jb("Slice",m,{starts:T?Array.from(L().subarray(Number(T)>>>0,Number($)>>>0)):[],ends:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[],axes:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[]})},841440:m=>{s.jb("Tile",m,void 0)},841492:(m,T,$)=>{s.jb("InstanceNormalization",m,{epsilon:T,format:$?"NHWC":"NCHW"})},841606:(m,T,$)=>{s.jb("InstanceNormalization",m,{epsilon:T,format:$?"NHWC":"NCHW"})},841720:m=>{s.jb("Range",m,void 0)},841773:(m,T)=>{s.jb("Einsum",m,{equation:qt(T)})},841854:(m,T,$,B,V)=>{s.jb("Pad",m,{mode:T,value:$,pads:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},841997:(m,T,$,B,V,ie)=>{s.jb("BatchNormalization",m,{epsilon:T,momentum:$,spatial:!!V,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842166:(m,T,$,B,V,ie)=>{s.jb("BatchNormalization",m,{epsilon:T,momentum:$,spatial:!!V,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842335:(m,T,$)=>{s.jb("CumSum",m,{exclusive:Number(T),reverse:Number($)})},842432:(m,T,$)=>{s.jb("DequantizeLinear",m,{axis:T,blockSize:$})},842522:(m,T,$,B,V)=>{s.jb("GridSample",m,{align_corners:T,mode:qt($),padding_mode:qt(B),format:V?"NHWC":"NCHW"})},842692:(m,T,$,B,V)=>{s.jb("GridSample",m,{align_corners:T,mode:qt($),padding_mode:qt(B),format:V?"NHWC":"NCHW"})},842862:(m,T)=>{s.jb("ScatterND",m,{reduction:qt(T)})},842947:(m,T,$,B,V,ie,Ee,Be,Je)=>{s.jb("Attention",m,{numHeads:T,isUnidirectional:$,maskFilterValue:B,scale:V,doRotary:ie,qkvHiddenSizes:Ee?Array.from(L().subarray(Number(Be)>>>0,Number(Be)+Ee>>>0)):[],pastPresentShareBuffer:!!Je})},843219:m=>{s.jb("BiasAdd",m,void 0)},843274:m=>{s.jb("BiasSplitGelu",m,void 0)},843335:m=>{s.jb("FastGelu",m,void 0)},843391:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs,Un)=>{s.jb("Conv",m,{format:Dt?"NHWC":"NCHW",auto_pad:T,dilations:$?Array.from(L().subarray(Number($)>>>0,Number(B)>>>0)):[],group:V,kernel_shape:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],pads:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],strides:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],w_is_const:()=>!!ye()[Number(Wt)>>>0],activation:qt(xr),activation_params:Gs?Array.from(ue().subarray(Number(Gs)>>>0,Number(Un)>>>0)):[]})},843975:m=>{s.jb("Gelu",m,void 0)},844027:(m,T,$,B,V,ie,Ee,Be,Je)=>{s.jb("GroupQueryAttention",m,{numHeads:T,kvNumHeads:$,scale:B,softcap:V,doRotary:ie,rotaryInterleaved:Ee,smoothSoftmax:Be,localWindowSize:Je})},844244:(m,T,$,B)=>{s.jb("LayerNormalization",m,{axis:T,epsilon:$,simplified:!!B})},844355:(m,T,$,B)=>{s.jb("LayerNormalization",m,{axis:T,epsilon:$,simplified:!!B})},844466:(m,T,$,B,V,ie)=>{s.jb("MatMulNBits",m,{k:T,n:$,accuracyLevel:B,bits:V,blockSize:ie})},844593:(m,T,$,B,V,ie)=>{s.jb("MultiHeadAttention",m,{numHeads:T,isUnidirectional:$,maskFilterValue:B,scale:V,doRotary:ie})},844752:(m,T)=>{s.jb("QuickGelu",m,{alpha:T})},844816:(m,T,$,B,V)=>{s.jb("RotaryEmbedding",m,{interleaved:!!T,numHeads:$,rotaryEmbeddingDim:B,scale:V})},844955:(m,T,$)=>{s.jb("SkipLayerNormalization",m,{epsilon:T,simplified:!!$})},845057:(m,T,$)=>{s.jb("SkipLayerNormalization",m,{epsilon:T,simplified:!!$})},845159:(m,T,$,B)=>{s.jb("GatherBlockQuantized",m,{gatherAxis:T,quantizeAxis:$,blockSize:B})},845280:m=>{s.Zb(m)},845314:(m,T)=>s.ac(Number(m),Number(T),s.Fb.dc,s.Fb.errors)};function fe(m,T,$){return Fr(async()=>{await s.Xb(Number(m),Number(T),Number($))})}function Te(){return typeof wasmOffsetConverter<"u"}class We{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var $e=m=>{m.terminate(),m.onmessage=()=>{}},Re=[],Ne=m=>{Ke.length==0&&(zs(),yr(Ke[0]));var T=Ke.pop();if(!T)return 6;bt.push(T),Lt[m.Ab]=T,T.Ab=m.Ab;var $={Bb:"run",fc:m.ec,Hb:m.Hb,Ab:m.Ab};return T.postMessage($,m.Mb),0},ot=0,De=(m,T,...$)=>{for(var B=2*$.length,V=ea(),ie=wo(8*B),Ee=ie>>>3,Be=0;Be<$.length;Be++){var Je=$[Be];typeof Je=="bigint"?(X[Ee+2*Be]=1n,X[Ee+2*Be+1]=Je):(X[Ee+2*Be]=0n,ke()[Ee+2*Be+1>>>0]=Je)}return m=Oa(m,0,B,ie,T),Mo(V),m};function Qe(m){if(i)return De(0,1,m);if(I=m,!(0<ot)){for(var T of bt)$e(T);for(T of Ke)$e(T);Ke=[],bt=[],Lt={},oe=!0}h(0,new We(m))}function je(m){if(i)return De(1,0,m);pt(m)}var pt=m=>{if(I=m,i)throw je(m),"unwind";Qe(m)},Ke=[],bt=[],At=[],Lt={},fr=m=>{var T=m.Ab;delete Lt[T],Ke.push(m),bt.splice(bt.indexOf(m),1),m.Ab=0,Jo(T)};function zt(){At.forEach(m=>m())}var yr=m=>new Promise(T=>{m.onmessage=V=>{var ie=(V=V.data).Bb;if(V.Gb&&V.Gb!=so()){var Ee=Lt[V.Gb];Ee?Ee.postMessage(V,V.Mb):C(`Internal error! Worker sent a message "${ie}" to target pthread ${V.Gb}, but that thread no longer exists!`)}else ie==="checkMailbox"?Ce():ie==="spawnThread"?Ne(V):ie==="cleanupThread"?fr(Lt[V.hc]):ie==="loaded"?(m.loaded=!0,T(m)):ie==="alert"?alert(`Thread ${V.ic}: ${V.text}`):V.target==="setimmediate"?m.postMessage(V):ie==="callHandler"?s[V.Qb](...V.args):ie&&C(`worker sent an unknown command ${ie}`)},m.onerror=V=>{throw C(`worker sent an error! ${V.filename}:${V.lineno}: ${V.message}`),V};var $,B=[];for($ of[])s.propertyIsEnumerable($)&&B.push($);m.postMessage({Bb:"load",Rb:B,kc:y,lc:P})});function zs(){var m=new Worker((()=>{let T=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new T("ort.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});Ke.push(m)}var Ys=m=>{we();var T=ee()[m+52>>>2>>>0];m=ee()[m+56>>>2>>>0],Ba(T,T-m),Mo(T)},Zs=(m,T)=>{ot=0,m=za(m,T),0<ot?I=m:Yo(m)};class or{constructor(T){this.Ib=T-24}}function Dr(m,T,$){var B=new or(m>>>=0);throw T>>>=0,$>>>=0,ee()[B.Ib+16>>>2>>>0]=0,ee()[B.Ib+4>>>2>>>0]=T,ee()[B.Ib+8>>>2>>>0]=$,m}function Yr(m,T,$,B){return i?De(2,1,m,T,$,B):Rs(m,T,$,B)}function Rs(m,T,$,B){if(m>>>=0,$>>>=0,B>>>=0,l===void 0)return 6;var V=[];return i&&V.length===0?Yr(m,T>>>=0,$,B):(m={ec:$,Ab:m,Hb:B,Mb:V},i?(m.Bb="spawnThread",postMessage(m,V),0):Ne(m))}var ft=typeof TextDecoder<"u"?new TextDecoder:void 0,Cs=(m,T=0,$=NaN)=>{var B=(T>>>=0)+$;for($=T;m[$]&&!($>=B);)++$;if(16<$-T&&m.buffer&&ft)return ft.decode(m.buffer instanceof ArrayBuffer?m.subarray(T,$):m.slice(T,$));for(B="";T<$;){var V=m[T++];if(128&V){var ie=63&m[T++];if((224&V)==192)B+=String.fromCharCode((31&V)<<6|ie);else{var Ee=63&m[T++];65536>(V=(240&V)==224?(15&V)<<12|ie<<6|Ee:(7&V)<<18|ie<<12|Ee<<6|63&m[T++])?B+=String.fromCharCode(V):(V-=65536,B+=String.fromCharCode(55296|V>>10,56320|1023&V))}}else B+=String.fromCharCode(V)}return B},qt=(m,T)=>(m>>>=0)?Cs(Y(),m,T):"";function Ss(m,T,$){return i?De(3,1,m,T,$):0}function Qr(m,T){if(i)return De(4,1,m,T)}var St=m=>{for(var T=0,$=0;$<m.length;++$){var B=m.charCodeAt($);127>=B?T++:2047>=B?T+=2:55296<=B&&57343>=B?(T+=4,++$):T+=3}return T},Xr=(m,T,$)=>{var B=Y();if(T>>>=0,0<$){var V=T;$=T+$-1;for(var ie=0;ie<m.length;++ie){var Ee=m.charCodeAt(ie);if(55296<=Ee&&57343>=Ee&&(Ee=65536+((1023&Ee)<<10)|1023&m.charCodeAt(++ie)),127>=Ee){if(T>=$)break;B[T++>>>0]=Ee}else{if(2047>=Ee){if(T+1>=$)break;B[T++>>>0]=192|Ee>>6}else{if(65535>=Ee){if(T+2>=$)break;B[T++>>>0]=224|Ee>>12}else{if(T+3>=$)break;B[T++>>>0]=240|Ee>>18,B[T++>>>0]=128|Ee>>12&63}B[T++>>>0]=128|Ee>>6&63}B[T++>>>0]=128|63&Ee}}B[T>>>0]=0,m=T-V}else m=0;return m};function k(m,T){if(i)return De(5,1,m,T)}function Q(m,T,$){if(i)return De(6,1,m,T,$)}function N(m,T,$){return i?De(7,1,m,T,$):0}function K(m,T){if(i)return De(8,1,m,T)}function Z(m,T,$){if(i)return De(9,1,m,T,$)}function ce(m,T,$,B){if(i)return De(10,1,m,T,$,B)}function xe(m,T,$,B){if(i)return De(11,1,m,T,$,B)}function et(m,T,$,B){if(i)return De(12,1,m,T,$,B)}function ut(m){if(i)return De(13,1,m)}function qe(m,T){if(i)return De(14,1,m,T)}function wt(m,T,$){if(i)return De(15,1,m,T,$)}var tt,gt,Nt=()=>ve(""),Qt=m=>{for(var T="";Y()[m>>>0];)T+=tt[Y()[m++>>>0]];return T},ur={},Or={},Cr={};function Lr(m,T,$={}){return(function(B,V,ie={}){var Ee=V.name;if(!B)throw new gt(`type "${Ee}" must have a positive integer typeid pointer`);if(Or.hasOwnProperty(B)){if(ie.Sb)return;throw new gt(`Cannot register type '${Ee}' twice`)}Or[B]=V,delete Cr[B],ur.hasOwnProperty(B)&&(V=ur[B],delete ur[B],V.forEach(Be=>Be()))})(m,T,$)}var _s=(m,T,$)=>{switch(T){case 1:return $?B=>ye()[B>>>0]:B=>Y()[B>>>0];case 2:return $?B=>H()[B>>>1>>>0]:B=>R()[B>>>1>>>0];case 4:return $?B=>L()[B>>>2>>>0]:B=>ee()[B>>>2>>>0];case 8:return $?B=>X[B>>>3]:B=>J[B>>>3];default:throw new TypeError(`invalid integer width (${T}): ${m}`)}};function Fs(m,T,$){$>>>=0,Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:B=>B,toWireType:function(B,V){if(typeof V!="bigint"&&typeof V!="number")throw V=V===null?"null":(B=typeof V)=="object"||B==="array"||B==="function"?V.toString():""+V,new TypeError(`Cannot convert "${V}" to ${this.name}`);return typeof V=="number"&&(V=BigInt(V)),V},Cb:gr,readValueFromPointer:_s(T,$,T.indexOf("u")==-1),Db:null})}var gr=8;function Ns(m,T,$,B){Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:function(V){return!!V},toWireType:function(V,ie){return ie?$:B},Cb:gr,readValueFromPointer:function(V){return this.fromWireType(Y()[V>>>0])},Db:null})}var as=[],Nr=[];function Gr(m){9<(m>>>=0)&&--Nr[m+1]==0&&(Nr[m]=void 0,as.push(m))}var ar=m=>{if(!m)throw new gt("Cannot use deleted val. handle = "+m);return Nr[m]},_r=m=>{switch(m){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let T=as.pop()||Nr.length;return Nr[T]=m,Nr[T+1]=1,T}};function ps(m){return this.fromWireType(ee()[m>>>2>>>0])}var Is={name:"emscripten::val",fromWireType:m=>{var T=ar(m);return Gr(m),T},toWireType:(m,T)=>_r(T),Cb:gr,readValueFromPointer:ps,Db:null};function As(m){return Lr(m>>>0,Is)}var $s=(m,T)=>{switch(T){case 4:return function($){return this.fromWireType(ue()[$>>>2>>>0])};case 8:return function($){return this.fromWireType(ke()[$>>>3>>>0])};default:throw new TypeError(`invalid float width (${T}): ${m}`)}};function ns(m,T,$){$>>>=0,Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:B=>B,toWireType:(B,V)=>V,Cb:gr,readValueFromPointer:$s(T,$),Db:null})}function Wr(m,T,$,B,V){if(m>>>=0,$>>>=0,T=Qt(T>>>0),V===-1&&(V=4294967295),V=Be=>Be,B===0){var ie=32-8*$;V=Be=>Be<<ie>>>ie}var Ee=T.includes("unsigned")?function(Be,Je){return Je>>>0}:function(Be,Je){return Je};Lr(m,{name:T,fromWireType:V,toWireType:Ee,Cb:gr,readValueFromPointer:_s(T,$,B!==0),Db:null})}function ze(m,T,$){function B(ie){var Ee=ee()[ie>>>2>>>0];return ie=ee()[ie+4>>>2>>>0],new V(ye().buffer,ie,Ee)}var V=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][T];Lr(m>>>=0,{name:$=Qt($>>>0),fromWireType:B,Cb:gr,readValueFromPointer:B},{Sb:!0})}function Ue(m,T){Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:function($){for(var B,V=ee()[$>>>2>>>0],ie=$+4,Ee=ie,Be=0;Be<=V;++Be){var Je=ie+Be;Be!=V&&Y()[Je>>>0]!=0||(Ee=qt(Ee,Je-Ee),B===void 0?B=Ee:(B+="\0",B+=Ee),Ee=Je+1)}return es($),B},toWireType:function($,B){B instanceof ArrayBuffer&&(B=new Uint8Array(B));var V=typeof B=="string";if(!(V||B instanceof Uint8Array||B instanceof Uint8ClampedArray||B instanceof Int8Array))throw new gt("Cannot pass non-string to std::string");var ie=V?St(B):B.length,Ee=fo(4+ie+1),Be=Ee+4;if(ee()[Ee>>>2>>>0]=ie,V)Xr(B,Be,ie+1);else if(V)for(V=0;V<ie;++V){var Je=B.charCodeAt(V);if(255<Je)throw es(Ee),new gt("String has UTF-16 code units that do not fit in 8 bits");Y()[Be+V>>>0]=Je}else for(V=0;V<ie;++V)Y()[Be+V>>>0]=B[V];return $!==null&&$.push(es,Ee),Ee},Cb:gr,readValueFromPointer:ps,Db($){es($)}})}var at=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Ht=(m,T)=>{for(var $=m>>1,B=$+T/2;!($>=B)&&R()[$>>>0];)++$;if(32<($<<=1)-m&&at)return at.decode(Y().slice(m,$));for($="",B=0;!(B>=T/2);++B){var V=H()[m+2*B>>>1>>>0];if(V==0)break;$+=String.fromCharCode(V)}return $},js=(m,T,$)=>{if($??=2147483647,2>$)return 0;var B=T;$=($-=2)<2*m.length?$/2:m.length;for(var V=0;V<$;++V){var ie=m.charCodeAt(V);H()[T>>>1>>>0]=ie,T+=2}return H()[T>>>1>>>0]=0,T-B},Ds=m=>2*m.length,Vs=(m,T)=>{for(var $=0,B="";!($>=T/4);){var V=L()[m+4*$>>>2>>>0];if(V==0)break;++$,65536<=V?(V-=65536,B+=String.fromCharCode(55296|V>>10,56320|1023&V)):B+=String.fromCharCode(V)}return B},Uo=(m,T,$)=>{if(T>>>=0,$??=2147483647,4>$)return 0;var B=T;$=B+$-4;for(var V=0;V<m.length;++V){var ie=m.charCodeAt(V);if(55296<=ie&&57343>=ie&&(ie=65536+((1023&ie)<<10)|1023&m.charCodeAt(++V)),L()[T>>>2>>>0]=ie,(T+=4)+4>$)break}return L()[T>>>2>>>0]=0,T-B},de=m=>{for(var T=0,$=0;$<m.length;++$){var B=m.charCodeAt($);55296<=B&&57343>=B&&++$,T+=4}return T};function S(m,T,$){if(m>>>=0,T>>>=0,$=Qt($>>>=0),T===2)var B=Ht,V=js,ie=Ds,Ee=Be=>R()[Be>>>1>>>0];else T===4&&(B=Vs,V=Uo,ie=de,Ee=Be=>ee()[Be>>>2>>>0]);Lr(m,{name:$,fromWireType:Be=>{for(var Je,nt=ee()[Be>>>2>>>0],Tt=Be+4,Dt=0;Dt<=nt;++Dt){var Wt=Be+4+Dt*T;Dt!=nt&&Ee(Wt)!=0||(Tt=B(Tt,Wt-Tt),Je===void 0?Je=Tt:(Je+="\0",Je+=Tt),Tt=Wt+T)}return es(Be),Je},toWireType:(Be,Je)=>{if(typeof Je!="string")throw new gt(`Cannot pass non-string to C++ string type ${$}`);var nt=ie(Je),Tt=fo(4+nt+T);return ee()[Tt>>>2>>>0]=nt/T,V(Je,Tt+4,nt+T),Be!==null&&Be.push(es,Tt),Tt},Cb:gr,readValueFromPointer:ps,Db(Be){es(Be)}})}function G(m,T){Lr(m>>>=0,{Tb:!0,name:T=Qt(T>>>0),Cb:0,fromWireType:()=>{},toWireType:()=>{}})}function te(m){go(m>>>0,!n,1,!a,131072,!1),zt()}var se=m=>{if(!oe)try{if(m(),!(0<ot))try{i?Yo(I):pt(I)}catch(T){T instanceof We||T=="unwind"||h(0,T)}}catch(T){T instanceof We||T=="unwind"||h(0,T)}};function me(m){m>>>=0,typeof Atomics.jc=="function"&&(Atomics.jc(L(),m>>>2,m).value.then(Ce),m+=128,Atomics.store(L(),m>>>2,1))}var Ce=()=>{var m=so();m&&(me(m),se(Zo))};function Ye(m,T){(m>>>=0)==T>>>0?setTimeout(Ce):i?postMessage({Gb:m,Bb:"checkMailbox"}):(m=Lt[m])&&m.postMessage({Bb:"checkMailbox"})}var Xe=[];function Ze(m,T,$,B,V){for(T>>>=0,B/=2,Xe.length=B,$=V>>>0>>>3,V=0;V<B;V++)Xe[V]=X[$+2*V]?X[$+2*V+1]:ke()[$+2*V+1>>>0];return(T?Pe[T]:Wn[m])(...Xe)}var He=()=>{ot=0};function It(m){m>>>=0,i?postMessage({Bb:"cleanupThread",hc:m}):fr(Lt[m])}function yt(m){}var Xt=(m,T)=>{var $=Or[m];if($===void 0)throw m=Aa(m),$=Qt(m),es(m),new gt(`${T} has unknown type ${$}`);return $},Mr=(m,T,$)=>{var B=[];return m=m.toWireType(B,$),B.length&&(ee()[T>>>2>>>0]=_r(B)),m};function nr(m,T,$){return T>>>=0,$>>>=0,m=ar(m>>>0),T=Xt(T,"emval::as"),Mr(T,$,m)}function Br(m,T){return T>>>=0,m=ar(m>>>0),(T=Xt(T,"emval::as")).toWireType(null,m)}var ir=m=>{try{m()}catch(T){ve(T)}},Tr=0,zr=null,Pr=0,Zr=[],Yt={},vr={},Sr=0,Jr=null,ms=[];function Fr(m){return(function(T){if(!oe){if(Tr===0){var $=!1,B=!1;T((V=0)=>{if(!oe&&(Pr=V,$=!0,B)){Tr=2,ir(()=>Na(zr)),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.resume(),V=!1;try{var ie=(function(){var Je=L()[zr+8>>>2>>>0];return Je=ct[vr[Je]],--ot,Je()})()}catch(Je){ie=Je,V=!0}var Ee=!1;if(!zr){var Be=Jr;Be&&(Jr=null,(V?Be.reject:Be.resolve)(ie),Ee=!0)}if(V&&!Ee)throw ie}}),B=!0,$||(Tr=1,zr=(function(){var V=fo(65548),ie=V+12;ee()[V>>>2>>>0]=ie,ee()[V+4>>>2>>>0]=ie+65536,ie=Zr[0];var Ee=Yt[ie];return Ee===void 0&&(Ee=Sr++,Yt[ie]=Ee,vr[Ee]=ie),ie=Ee,L()[V+8>>>2>>>0]=ie,V})(),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.pause(),ir(()=>ta(zr)))}else Tr===2?(Tr=0,ir(ra),es(zr),zr=null,ms.forEach(se)):ve(`invalid state: ${Tr}`);return Pr}})(T=>{m().then(T)})}function is(m){return m>>>=0,Fr(async()=>{var T=await ar(m);return _r(T)})}var lr=[];function pr(m,T,$,B){return $>>>=0,B>>>=0,(m=lr[m>>>0])(null,T=ar(T>>>0),$,B)}var wr={},er=m=>{var T=wr[m];return T===void 0?Qt(m):T};function Kr(m,T,$,B,V){return $>>>=0,B>>>=0,V>>>=0,(m=lr[m>>>0])(T=ar(T>>>0),T[$=er($)],B,V)}var Ws=()=>typeof globalThis=="object"?globalThis:Function("return this")();function Os(m){return(m>>>=0)==0?_r(Ws()):(m=er(m),_r(Ws()[m]))}var fn=m=>{var T=lr.length;return lr.push(m),T},gn=(m,T)=>{for(var $=Array(m),B=0;B<m;++B)$[B]=Xt(ee()[T+4*B>>>2>>>0],"parameter "+B);return $},ga=(m,T)=>Object.defineProperty(T,"name",{value:m});function Mn(m,T,$){var B=(T=gn(m,T>>>0)).shift();m--;var V=`return function (obj, func, destructorsRef, args) {
|
|
9
9
|
`,ie=0,Ee=[];$===0&&Ee.push("obj");for(var Be=["retType"],Je=[B],nt=0;nt<m;++nt)Ee.push("arg"+nt),Be.push("argType"+nt),Je.push(T[nt]),V+=` var arg${nt} = argType${nt}.readValueFromPointer(args${ie?"+"+ie:""});
|
|
10
10
|
`,ie+=T[nt].Cb;return V+=` var rv = ${$===1?"new func":"func.call"}(${Ee.join(", ")});
|
|
11
11
|
`,B.Tb||(Be.push("emval_returnValue"),Je.push(Mr),V+=` return emval_returnValue(retType, destructorsRef, rv);
|
|
12
12
|
`),Be.push(V+`};
|
|
13
|
-
`),m=(function(Tt){var Dt=Function;if(!(Dt instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof Dt} which is not a function`);var Wt=
|
|
14
|
-
`);return m[0]=="Error"&&m.shift(),
|
|
15
|
-
`))[0]=="Error"&&B.shift(),Ho(B);for(var V=3;B[V]&&mo()!=m;)++V;for(m=0;m<$&&B[m+V];++m)L()[T+4*m>>>2>>>0]=mo();return m}var fs,qo={},Rn=()=>{if(!fs){var m,T={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(m in qo)qo[m]===void 0?delete T[m]:T[m]=qo[m];var $=[];for(m in T)$.push(`${m}=${T[m]}`);fs=$}return fs};function Ea(m,T){if(i)return De(19,1,m,T);m>>>=0,T>>>=0;var $=0;return Rn().forEach((B,V)=>{var ie=T+$;for(V=ee()[m+4*V>>>2>>>0]=ie,ie=0;ie<B.length;++ie)ye()[V++>>>0]=B.charCodeAt(ie);ye()[V>>>0]=0,$+=B.length+1}),0}function Nn(m,T){if(i)return De(20,1,m,T);m>>>=0,T>>>=0;var $=Rn();ee()[m>>>2>>>0]=$.length;var B=0;return $.forEach(V=>B+=V.length+1),ee()[T>>>2>>>0]=B,0}function ka(m){return i?De(21,1,m):52}function Qo(m,T,$,B){return i?De(22,1,m,T,$,B):52}function Ca(m,T,$,B){return i?De(23,1,m,T,$,B):70}var jn=[null,[],[]];function Sa(m,T,$,B){if(i)return De(24,1,m,T,$,B);T>>>=0,$>>>=0,B>>>=0;for(var V=0,ie=0;ie<$;ie++){var Ee=ee()[T>>>2>>>0],Be=ee()[T+4>>>2>>>0];T+=8;for(var Je=0;Je<Be;Je++){var nt=Y()[Ee+Je>>>0],Tt=jn[m];nt===0||nt===10?((m===1?b:C)(Cs(Tt)),Tt.length=0):Tt.push(nt)}V+=Be}return ee()[B>>>2>>>0]=V,0}i||(function(){for(var m=s.numThreads-1;m--;)zs();Re.unshift(()=>{ge++,(function(T){i?T():Promise.all(Ke.map(yr)).then(T)})(()=>Ae())})})();for(var Fa=Array(256),ho=0;256>ho;++ho)Fa[ho]=String.fromCharCode(ho);tt=Fa,gt=s.BindingError=class extends Error{constructor(m){super(m),this.name="BindingError"}},s.InternalError=class extends Error{constructor(m){super(m),this.name="InternalError"}},Nr.push(0,1,void 0,1,null,1,!0,1,!1,1),s.count_emval_handles=()=>Nr.length/2-5-as.length;var ct,Vn=[Qe,je,Yr,Ss,Qr,k,Q,N,K,Z,ce,xe,et,ut,qe,wt,Go,wa,Ko,Ea,Nn,ka,Qo,Ca,Sa];(async function(){function m(B,V){return ct=B.exports,ct=(function(){var ie=ct,Ee={};for(let[Be,Je]of Object.entries(ie))Ee[Be]=typeof Je=="function"?(...nt)=>{Zr.push(Be);try{return Je(...nt)}finally{oe||(Zr.pop(),zr&&Tr===1&&Zr.length===0&&(Tr=0,ot+=1,ir(za),typeof Fibers<"u"&&Fibers.rc()))}}:Je;return Ee})(),ct=(function(){var ie=ct,Ee=Je=>nt=>Je(nt)>>>0,Be=Je=>()=>Je()>>>0;return(ie=Object.assign({},ie)).Da=Ee(ie.Da),ie.fb=Be(ie.fb),ie.hb=Ee(ie.hb),ie.tb=Ee(ie.tb),ie.ub=Be(ie.ub),ie.__cxa_get_exception_ptr=Ee(ie.__cxa_get_exception_ptr),ie})(),At.push(ct.ib),P=V,Ae(),ct}ge++;var T=pe();if(s.instantiateWasm)return new Promise(B=>{s.instantiateWasm(T,(V,ie)=>{m(V,ie),B(V.exports)})});if(i)return new Promise(B=>{Le=V=>{var ie=new WebAssembly.Instance(V,pe());B(m(ie,V))}});le??=s.locateFile?s.locateFile?s.locateFile("ort-wasm-simd-threaded.jsep.wasm",x):x+"ort-wasm-simd-threaded.jsep.wasm":new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href;try{var $=await(async function(B){var V=le;if(!re&&typeof WebAssembly.instantiateStreaming=="function"&&!ne(V))try{var ie=fetch(V,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(ie,B)}catch(Ee){C(`wasm streaming compile failed: ${Ee}`),C("falling back to ArrayBuffer instantiation")}return(async function(Ee,Be){try{var Je=await(async function(nt){if(!re)try{var Tt=await u(nt);return new Uint8Array(Tt)}catch{}if(nt==le&&re)nt=new Uint8Array(re);else{if(!d)throw"both async and sync fetching of the wasm failed";nt=d(nt)}return nt})(Ee);return await WebAssembly.instantiate(Je,Be)}catch(nt){C(`failed to asynchronously prepare wasm: ${nt}`),ve(nt)}})(V,B)})(T);return m($.instance,$.module)}catch(B){return t(B),Promise.reject(B)}})();var Ia=m=>(Ia=ct.Da)(m),Aa=()=>(Aa=ct.Ea)();s._OrtInit=(m,T)=>(s._OrtInit=ct.Fa)(m,T),s._OrtGetLastError=(m,T)=>(s._OrtGetLastError=ct.Ga)(m,T),s._OrtCreateSessionOptions=(m,T,$,B,V,ie,Ee,Be,Je,nt)=>(s._OrtCreateSessionOptions=ct.Ha)(m,T,$,B,V,ie,Ee,Be,Je,nt),s._OrtAppendExecutionProvider=(m,T,$,B,V)=>(s._OrtAppendExecutionProvider=ct.Ia)(m,T,$,B,V),s._OrtAddFreeDimensionOverride=(m,T,$)=>(s._OrtAddFreeDimensionOverride=ct.Ja)(m,T,$),s._OrtAddSessionConfigEntry=(m,T,$)=>(s._OrtAddSessionConfigEntry=ct.Ka)(m,T,$),s._OrtReleaseSessionOptions=m=>(s._OrtReleaseSessionOptions=ct.La)(m),s._OrtCreateSession=(m,T,$)=>(s._OrtCreateSession=ct.Ma)(m,T,$),s._OrtReleaseSession=m=>(s._OrtReleaseSession=ct.Na)(m),s._OrtGetInputOutputCount=(m,T,$)=>(s._OrtGetInputOutputCount=ct.Oa)(m,T,$),s._OrtGetInputOutputMetadata=(m,T,$,B)=>(s._OrtGetInputOutputMetadata=ct.Pa)(m,T,$,B),s._OrtFree=m=>(s._OrtFree=ct.Qa)(m),s._OrtCreateTensor=(m,T,$,B,V,ie)=>(s._OrtCreateTensor=ct.Ra)(m,T,$,B,V,ie),s._OrtGetTensorData=(m,T,$,B,V)=>(s._OrtGetTensorData=ct.Sa)(m,T,$,B,V),s._OrtReleaseTensor=m=>(s._OrtReleaseTensor=ct.Ta)(m),s._OrtCreateRunOptions=(m,T,$,B)=>(s._OrtCreateRunOptions=ct.Ua)(m,T,$,B),s._OrtAddRunConfigEntry=(m,T,$)=>(s._OrtAddRunConfigEntry=ct.Va)(m,T,$),s._OrtReleaseRunOptions=m=>(s._OrtReleaseRunOptions=ct.Wa)(m),s._OrtCreateBinding=m=>(s._OrtCreateBinding=ct.Xa)(m),s._OrtBindInput=(m,T,$)=>(s._OrtBindInput=ct.Ya)(m,T,$),s._OrtBindOutput=(m,T,$,B)=>(s._OrtBindOutput=ct.Za)(m,T,$,B),s._OrtClearBoundOutputs=m=>(s._OrtClearBoundOutputs=ct._a)(m),s._OrtReleaseBinding=m=>(s._OrtReleaseBinding=ct.$a)(m),s._OrtRunWithBinding=(m,T,$,B,V)=>(s._OrtRunWithBinding=ct.ab)(m,T,$,B,V),s._OrtRun=(m,T,$,B,V,ie,Ee,Be)=>(s._OrtRun=ct.bb)(m,T,$,B,V,ie,Ee,Be),s._OrtEndProfiling=m=>(s._OrtEndProfiling=ct.cb)(m),s._JsepOutput=(m,T,$)=>(s._JsepOutput=ct.db)(m,T,$),s._JsepGetNodeName=m=>(s._JsepGetNodeName=ct.eb)(m);var so=()=>(so=ct.fb)(),es=s._free=m=>(es=s._free=ct.gb)(m),fo=s._malloc=m=>(fo=s._malloc=ct.hb)(m),go=(m,T,$,B,V,ie)=>(go=ct.kb)(m,T,$,B,V,ie),$a=()=>($a=ct.lb)(),Da=(m,T,$,B,V)=>(Da=ct.mb)(m,T,$,B,V),Xo=m=>(Xo=ct.nb)(m),Jo=m=>(Jo=ct.ob)(m),Oa=(m,T)=>(Oa=ct.pb)(m,T),Yo=()=>(Yo=ct.qb)(),La=(m,T)=>(La=ct.rb)(m,T),Mo=m=>(Mo=ct.sb)(m),wo=m=>(wo=ct.tb)(m),Zo=()=>(Zo=ct.ub)(),Ba=s.dynCall_ii=(m,T)=>(Ba=s.dynCall_ii=ct.vb)(m,T),ea=m=>(ea=ct.wb)(m),za=()=>(za=ct.xb)(),Ra=m=>(Ra=ct.yb)(m),ta=()=>(ta=ct.zb)();return s.stackSave=()=>Zo(),s.stackRestore=m=>Mo(m),s.stackAlloc=m=>wo(m),s.setValue=function(m,T,$="i8"){switch($.endsWith("*")&&($="*"),$){case"i1":case"i8":ye()[m>>>0]=T;break;case"i16":H()[m>>>1>>>0]=T;break;case"i32":L()[m>>>2>>>0]=T;break;case"i64":X[m>>>3]=BigInt(T);break;case"float":ue()[m>>>2>>>0]=T;break;case"double":ke()[m>>>3>>>0]=T;break;case"*":ee()[m>>>2>>>0]=T;break;default:ve(`invalid type for setValue: ${$}`)}},s.getValue=function(m,T="i8"){switch(T.endsWith("*")&&(T="*"),T){case"i1":case"i8":return ye()[m>>>0];case"i16":return H()[m>>>1>>>0];case"i32":return L()[m>>>2>>>0];case"i64":return X[m>>>3];case"float":return ue()[m>>>2>>>0];case"double":return ke()[m>>>3>>>0];case"*":return ee()[m>>>2>>>0];default:ve(`invalid type for getValue: ${T}`)}},s.UTF8ToString=qt,s.stringToUTF8=Xr,s.lengthBytesUTF8=St,(function m(){if(0<ge)be=m;else if(i)r(s),A();else{for(;0<Re.length;)Re.shift()(s);0<ge?be=m:(s.calledRun=!0,oe||(A(),r(s)))}})(),s.PTR_SIZE=4,o}),fv=zc,gg=globalThis.self?.name?.startsWith("em-pthread"),gg&&zc()}),Rc,Id,Mg,rs,gv,Fi,wg,bg,Nc,vg,jc,Mv,Vc,wv,Jd=Ve(()=>{"use strict";Xd(),Rc=typeof location>"u"?void 0:location.origin,Id=import.meta.url>"file:"&&import.meta.url<"file;",Mg=()=>{if(Id){let e=URL;return new URL(new e("ort.bundle.min.mjs",import.meta.url).href,Rc).href}return import.meta.url},rs=Mg(),gv=()=>{if(rs&&!rs.startsWith("blob:"))return rs.substring(0,rs.lastIndexOf("/")+1)},Fi=(e,r)=>{try{let t=r??rs;return(t?new URL(e,t):new URL(e)).origin===Rc}catch{return!1}},wg=(e,r)=>{let t=r??rs;try{return(t?new URL(e,t):new URL(e)).href}catch{return}},bg=(e,r)=>`${r??"./"}${e}`,Nc=async e=>{let r=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(r)},vg=async e=>(await import(e)).default,jc=(hP(),_n(pv)).default,Mv=async()=>{if(!rs)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Fi(rs))return[void 0,jc()];let e=await Nc(rs);return[e,jc(e)]},Vc=(fP(),_n(hv)).default,wv=async(e,r,t)=>{if(!e&&!r&&Vc&&rs&&Fi(rs))return[void 0,Vc];{let s="ort-wasm-simd-threaded.jsep.mjs",o=e??wg(s,r),a=t&&o&&!Fi(o,r),n=a?await Nc(o):o??bg(s,r);return[a?n:void 0,await vg(n)]}}}),Wc,Ii,Ja,Uc,xg,yg,Tg,Yd,Jt,jo=Ve(()=>{"use strict";Jd(),Ii=!1,Ja=!1,Uc=!1,xg=()=>{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}},yg=()=>{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}},Tg=()=>{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}},Yd=async e=>{if(Ii)return Promise.resolve();if(Ja)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Uc)throw new Error("previous call to 'initializeWebAssembly()' failed.");Ja=!0;let r=e.initTimeout,t=e.numThreads;if(e.simd!==!1){if(e.simd==="relaxed"){if(!Tg())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!yg())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let s=xg();t>1&&!s&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+t+", 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=t=1);let o=e.wasmPaths,a=typeof o=="string"?o:void 0,n=o?.mjs,i=n?.href??n,l=o?.wasm,c=l?.href??l,_=e.wasmBinary,[u,d]=await wv(i,a,t>1),g=!1,h=[];if(r>0&&h.push(new Promise(x=>{setTimeout(()=>{g=!0,x()},r)})),h.push(new Promise((x,F)=>{let v={numThreads:t};if(_)v.wasmBinary=_;else if(c||a)v.locateFile=b=>c??a+b;else if(i&&i.indexOf("blob:")!==0)v.locateFile=b=>new URL(b,i).href;else if(u){let b=gv();b&&(v.locateFile=C=>b+C)}d(v).then(b=>{Ja=!1,Ii=!0,Wc=b,x(),u&&URL.revokeObjectURL(u)},b=>{Ja=!1,Uc=!0,F(b)})})),await Promise.race(h),g)throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`)},Jt=()=>{if(Ii&&Wc)return Wc;throw new Error("WebAssembly is not initialized yet.")}}),Ts,Gi,Kt,Zd=Ve(()=>{"use strict";jo(),Ts=(e,r)=>{let t=Jt(),s=t.lengthBytesUTF8(e)+1,o=t._malloc(s);return t.stringToUTF8(e,o,s),r.push(o),o},Gi=(e,r,t,s)=>{if(typeof e=="object"&&e!==null){if(t.has(e))throw new Error("Circular reference in options");t.add(e)}Object.entries(e).forEach(([o,a])=>{let n=r?r+o:o;if(typeof a=="object")Gi(a,n+".",t,s);else if(typeof a=="string"||typeof a=="number")s(n,a.toString());else if(typeof a=="boolean")s(n,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},Kt=e=>{let r=Jt(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetLastError(o,o+s);let a=Number(r.getValue(o,s===4?"i32":"i64")),n=r.getValue(o+s,"*"),i=n?r.UTF8ToString(n):"";throw new Error(`${e} ERROR_CODE: ${a}, ERROR_MESSAGE: ${i}`)}finally{r.stackRestore(t)}}}),bv,gP=Ve(()=>{"use strict";jo(),Zd(),bv=e=>{let r=Jt(),t=0,s=[],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 serverity 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 a=0;return e?.tag!==void 0&&(a=Ts(e.tag,s)),t=r._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,a),t===0&&Kt("Can't create run options."),e?.extra!==void 0&&Gi(e.extra,"",new WeakSet,(n,i)=>{let l=Ts(n,s),c=Ts(i,s);r._OrtAddRunConfigEntry(t,l,c)!==0&&Kt(`Can't set a run config entry: ${n} - ${i}.`)}),[t,s]}catch(a){throw t!==0&&r._OrtReleaseRunOptions(t),s.forEach(n=>r._free(n)),a}}}),Pg,Eg,kg,Ya,Cg,vv,MP=Ve(()=>{"use strict";jo(),Zd(),Pg=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},Eg=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},kg=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let r=e.extra.session;r.use_ort_model_bytes_directly||(r.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some(t=>(typeof t=="string"?t:t.name)==="webgpu")&&(e.enableMemPattern=!1)},Ya=(e,r,t,s)=>{let o=Ts(r,s),a=Ts(t,s);Jt()._OrtAddSessionConfigEntry(e,o,a)!==0&&Kt(`Can't set a session config entry: ${r} - ${t}.`)},Cg=async(e,r,t)=>{for(let s of r){let o=typeof s=="string"?s:s.name,a=[];switch(o){case"webnn":if(o="WEBNN",typeof s!="string"){let _=s?.deviceType;_&&Ya(e,"deviceType",_,t)}break;case"webgpu":if(o="JS",typeof s!="string"){let _=s;if(_?.preferredLayout){if(_.preferredLayout!=="NCHW"&&_.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${_.preferredLayout}`);Ya(e,"preferredLayout",_.preferredLayout,t)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${o}`)}let n=Ts(o,t),i=a.length,l=0,c=0;if(i>0){l=Jt()._malloc(i*Jt().PTR_SIZE),t.push(l),c=Jt()._malloc(i*Jt().PTR_SIZE),t.push(c);for(let _=0;_<i;_++)Jt().setValue(l+_*Jt().PTR_SIZE,a[_][0],"*"),Jt().setValue(c+_*Jt().PTR_SIZE,a[_][1],"*")}await Jt()._OrtAppendExecutionProvider(e,n,l,c,i)!==0&&Kt(`Can't append execution provider: ${o}.`)}},vv=async e=>{let r=Jt(),t=0,s=[],o=e||{};kg(o);try{let a=Pg(o.graphOptimizationLevel??"all"),n=Eg(o.executionMode??"sequential"),i=typeof o.logId=="string"?Ts(o.logId,s):0,l=o.logSeverityLevel??2;if(!Number.isInteger(l)||l<0||l>4)throw new Error(`log serverity level is not valid: ${l}`);let c=o.logVerbosityLevel??0;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log verbosity level is not valid: ${c}`);let _=typeof o.optimizedModelFilePath=="string"?Ts(o.optimizedModelFilePath,s):0;if(t=r._OrtCreateSessionOptions(a,!!o.enableCpuMemArena,!!o.enableMemPattern,n,!!o.enableProfiling,0,i,l,c,_),t===0&&Kt("Can't create session options."),o.executionProviders&&await Cg(t,o.executionProviders,s),o.enableGraphCapture!==void 0){if(typeof o.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);Ya(t,"enableGraphCapture",o.enableGraphCapture.toString(),s)}if(o.freeDimensionOverrides)for(let[u,d]of Object.entries(o.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof d!="number"||!Number.isInteger(d)||d<0)throw new Error(`free dimension override value must be a non-negative integer: ${d}`);let g=Ts(u,s);r._OrtAddFreeDimensionOverride(t,g,d)!==0&&Kt(`Can't set a free dimension override: ${u} - ${d}.`)}return o.extra!==void 0&&Gi(o.extra,"",new WeakSet,(u,d)=>{Ya(t,u,d,s)}),[t,s]}catch(a){throw t!==0&&r._OrtReleaseSessionOptions(t)!==0&&Kt("Can't release session options."),s.forEach(n=>r._free(n)),a}}}),ua,Xs,Lo,eu,Ki,tu,ru,Ad,Mt=Ve(()=>{"use strict";ua=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}`)}},Xs=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}`)}},Lo=(e,r)=>{let t=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],s=typeof r=="number"?r:r.reduce((o,a)=>o*a,1);return t>0?Math.ceil(s*t):void 0},eu=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}`)}},Ki=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}`)}},tu=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",ru=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",Ad=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}`)}}}),su,xv=Ve(()=>{"use strict";Xd(),su=async e=>{if(typeof e=="string"){let r=await fetch(e);if(!r.ok)throw new Error(`failed to load external data file: ${e}`);let t=r.headers.get("Content-Length"),s=t?parseInt(t,10):0;if(s<1073741824)return new Uint8Array(await r.arrayBuffer());{if(!r.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let o=r.body.getReader(),a;try{a=new ArrayBuffer(s)}catch(i){if(i instanceof RangeError){let l=Math.ceil(s/65536);a=new WebAssembly.Memory({initial:l,maximum:l}).buffer}else throw i}let n=0;for(;;){let{done:i,value:l}=await o.read();if(i)break;let c=l.byteLength;new Uint8Array(a,n,c).set(l),n+=c}return new Uint8Array(a,0,s)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}}),Sg,Fg,Ig,Ag,ou,$g,Ot,Js=Ve(()=>{"use strict";Mt(),Sg=["V","I","W","E","F"],Fg=(e,r)=>{console.log(`[${Sg[e]},${new Date().toISOString()}]${r}`)},ou=(e,r)=>{Ig=e,Ag=r},$g=(e,r)=>{let t=Ki(e),s=Ki(Ig);t>=s&&Fg(t,typeof r=="function"?r():r)},Ot=(...e)=>{Ag&&$g(...e)}}),Dg,pa,Me,Hi,yv,Tv,Pv,kt=Ve(()=>{"use strict";Dg=class{static calcMatMulShape(e,r){return e[1]!==r[0]?void 0:[e[0],r[1]]}},pa=class{static calcShape(e,r,t=!1){let s=e.length,o=r.length;if(s===0)return r;if(o===0)return e;let a=Math.max(e.length,r.length),n=new Array(a);if(t){if(s<2||o<2)return;let i=Dg.calcMatMulShape([e[s-2],e[s-1]],[r[o-2],r[o-1]]);if(i===void 0)return;[n[a-2],n[a-1]]=i}for(let i=t?3:1;i<=a;i++){let l=s-i<0?1:e[s-i],c=o-i<0?1:r[o-i];if(l!==c&&l>1&&c>1)return;let _=Math.max(l,c);if(l&&c)n[a-i]=Math.max(l,c);else{if(_>1)return;n[a-i]=0}}return n}static isValidBroadcast(e,r){let t=e.length,s=r.length;if(t>s)return!1;for(let o=1;o<=t;o++)if(e[t-o]!==1&&e[t-o]!==r[s-o])return!1;return!0}},Me=class Wi{static size(r){return Wi.getSizeFromDimensionRange(r,0,r.length)}static convertShape(r,t=4){let s=r.length;if(s===0)return[];let o=new Array(s),a=s-1;for(;a>=0;){if(r[a]%t===0){o[a]=r[a]/t;break}if(t%r[a]!==0)throw new Error("cannot convert shape");o[a]=1,t/=r[a],a--}for(a--;a>=0;a--)o[a]=r[a];return o}static sizeFromDimension(r,t){if(t<0||t>r.length)throw new Error(`invalid dimension of ${t} for sizeFromDimension as Tensor has ${r.length} dimensions.`);return Wi.getSizeFromDimensionRange(r,t,r.length)}static sizeToDimension(r,t){if(t<0||t>r.length)throw new Error(`invalid dimension of ${t} for sizeToDimension as Tensor has ${r.length} dimensions.`);return Wi.getSizeFromDimensionRange(r,0,t)}static getSizeFromDimensionRange(r,t,s){let o=1;for(let a=t;a<s;a++){if(r[a]<0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains negative values in them.");o*=Number(r[a])}return o}static computeStrides(r){let t=r.length;if(t===0)return[];if(t===1)return[1];let s=new Array(t);s[t-1]=1,s[t-2]=r[t-1];for(let o=t-3;o>=0;--o)s[o]=s[o+1]*r[o+1];return s}static normalizeAxis(r,t){if(r<-t&&r>=t)throw new Error("unsupported axis for this operation.");return r<0?r+t:r}static normalizeAxes(r,t){return r.map(s=>this.normalizeAxis(s,t??r.length))}static sortBasedOnPerm(r,t){return t?t.map(s=>r[s]):r.slice().reverse()}static padShape(r,t){let s=r.length;return r.map((o,a)=>o+t[a]+t[a+s])}static areEqual(r,t){return r.length!==t.length?!1:r.every((s,o)=>s===t[o])}},Hi=class ln{static adjustPoolAttributes(r,t,s,o,a,n){if(!r&&s.length!==t.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(r)for(let i=0;i<t.length-2;i++)i>=s.length?s.push(t[i+2]):s[i]=t[i+2];for(let i=0;i<s.length;i++)if(i<o.length){if(o[i]<0)throw new Error("strides should be greater than or equal to 1")}else o.push(1);for(let i=0;i<s.length;i++)if(i<a.length){if(a[i]<0)throw new Error("dilations should be greater than or equal to 1")}else a.push(1);for(let i=0;i<s.length*2;i++)if(i<n.length){if(n[i]<0)throw new Error("pad should be greater than or equal to 1")}else n.push(0);for(let i=0;i<s.length;i++){if(s[i]<=0)throw new Error("kernel shapes need to be greater than 0");if(n[i]>=s[i]||n[i+s.length]>=s[i])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(r,t,s,o,a,n,i){if(i){if(a.length!==2*(r.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(t.length!==r.length-2)throw new Error("length of strides should be the length of data dimensions");if(o.length!==r.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let l=0;l<r.length-2;l++)ln.adjustPadAndReturnShape(r[l+(n?1:2)],t[l],s[l],o[l],a,l,l+r.length-2,i)}}static computePoolOutputShape(r,t,s,o,a,n,i){if(t.length<=0)throw new Error("input shape must be of size greater than 0");let l=[t[0],t[1]];return ln.computeShapeHelper(r,t,l,s,o,a,n,i),l}static computeConvOutputShape(r,t,s,o,a,n,i){if(r.length<=0||t.length<=0)throw new Error("invalid input tensor dims or invalid filter tensor dims");let l=[r[0],t[0]];return ln.computeShapeHelper(!1,r,l,s,o,a,n,i),l}static computeShapeHelper(r,t,s,o,a,n,i,l){if(r)for(let c=0;c<t.length-2;c++)s.push(1);else for(let c=0;c<t.length-2;c++)s.push(ln.adjustPadAndReturnShape(t[c+2],o[c],a[c],n[c],i,c,c+t.length-2,l))}static adjustPadAndReturnShape(r,t,s,o,a,n,i,l){let c=s*(o-1)+1;if(l&&l!=="NOTSET")switch(l){case"VALID":return a[n]=0,a[i]=0,Math.floor((r-c)/t+1);case"SAME_LOWER":case"SAME_UPPER":if(s!==1)throw new Error("Dilation not supported for SAME_UPPER or SAME_LOWER");{let _=((r+t-1)/t-1)*t+o-r;return a[n]=Math.floor(l==="SAME_LOWER"?(_+1)/2:_/2),a[i]=_-a[n],Math.floor((r+_-o)/t+1)}default:throw new Error("Unsupported AutoPad type")}else return Math.floor((r+a[n]+a[i]-c)/t+1)}},yv=class{static getShapeOfGemmResult(e,r,t,s,o){if(e.length!==2||t.length!==2)throw new Error("shape need to be of size 2");let a,n,i;r?(a=e[1],n=e[0]):(a=e[0],n=e[1]);let l=-1;if(s?(i=t[0],l=1):(i=t[1],l=0),t[l]!==n)throw new Error("dimension mismatch");if(a<=0||i<=0||n<=0)throw new Error("invalid shape specified");if(o&&!pa.isValidBroadcast(o,[a,i]))throw new Error("gemm: invalid bias shape for broadcast");return[a,i,n]}},Tv=-34028234663852886e22,Pv=34028234663852886e22}),au,Ev=Ve(()=>{"use strict";Mt(),au=(e,r)=>new(eu(r))(e)}),$d,Gc,Og,Kc,Lg,Hc,qc,Qc,Bg,kv,wP=Ve(()=>{"use strict";Js(),$d=(e,r=!0)=>{if(e.byteLength%8!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 8 (BigInt).");let t=e.byteLength/8,s=new BigInt64Array(e.buffer,e.byteOffset,t),o=new Int32Array(t);for(let a=0;a<t;a++){let n=s[a];if(n>2147483647n||n<-2147483648n)throw new Error(`Overflow occurred when converting BigInt to Int32 at index ${a}: ${n}`);o[a]=Number(n)}return r?new Uint8Array(o.buffer):o},Gc=(e,r=!0)=>{if(e.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (Int32).");let t=e.byteLength/4,s=new Int32Array(e.buffer,e.byteOffset,t),o=BigInt64Array.from(s,BigInt);return r?new Uint8Array(o.buffer):o},Og=1,Kc=()=>Og++,Lg=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),Hc=(e,r)=>{let t=Lg.get(e);if(!t)throw new Error("Unsupported data type.");return r.length>0?Math.ceil(r.reduce((s,o)=>s*o)*t/8):0},qc=class{constructor(e){this.shouldConvertInt64toInt32=!1,this.isInt64ToInt32Converted=!1;let{sessionId:r,context:t,tensor:s,dataType:o,shape:a,shouldConvertInt64toInt32:n=!1}=e;this.sessionId=r,this.mlContext=t,this.mlTensor=s,this.dataType=o,this.tensorShape=a,this.shouldConvertInt64toInt32=n}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return Hc(this.dataType,this.tensorShape)}destroy(){Ot("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(e){this.mlContext.writeTensor(this.mlTensor,e)}async read(e,r){if(e){let t=await this.mlContext.readTensor(this.mlTensor),s=Gc(new Uint8Array(t));if(r){(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength)).set(s);return}else return s.buffer}else return r?this.mlContext.readTensor(this.mlTensor,r):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(e,r,t){return this.mlContext===e&&this.dataType===r&&this.tensorShape.length===t.length&&this.tensorShape.every((s,o)=>s===t[o])}setIsInt64ToInt32Converted(e){this.isInt64ToInt32Converted=e}},Qc=class{constructor(e,r){this.tensorManager=e,this.wrapper=r}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(e,r,t,s){let o=r,a=this.tensorManager.getMLContext(e),n=o==="int64"&&!a.opSupportLimits().input.dataTypes.includes("int64");if(n&&(o="int32",Ot("verbose",()=>"[WebNN] TensorIdTracker.ensureTensor: convert dataType from int64 to int32")),this.wrapper){if(this.wrapper.canReuseTensor(a,o,t))return this.wrapper.tensor;if(s){if(this.wrapper.byteLength!==Hc(o,t))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 i=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(e,o,t,i,!0,!0,n),s&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(e){let r=e;if(this.wrapper)if(this.wrapper.shouldConvertInt64toInt32&&(r=$d(e,!0),this.wrapper.setIsInt64ToInt32Converted(!0)),r.byteLength===this.wrapper.byteLength){this.wrapper.write(r);return}else Ot("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor();this.activeUpload?this.activeUpload.set(r):this.activeUpload=new Uint8Array(r)}async download(e){if(this.activeUpload){let r=this.wrapper?.isInt64ToInt32Converted?Gc(this.activeUpload):this.activeUpload;if(e){e instanceof ArrayBuffer?new Uint8Array(e).set(r):new Uint8Array(e.buffer,e.byteOffset,e.byteLength).set(r);return}else return r.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return e?this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32,e):this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32)}},Bg=class{constructor(e){this.backend=e,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(e){let r=this.backend.getMLContext(e);if(!r)throw new Error("MLContext not found for session.");return r}reserveTensorId(){let e=Kc();return this.tensorTrackersById.set(e,new Qc(this)),e}releaseTensorId(e){let r=this.tensorTrackersById.get(e);r&&(this.tensorTrackersById.delete(e),r.tensorWrapper&&this.releaseTensor(r.tensorWrapper))}async ensureTensor(e,r,t,s,o){Ot("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${r}, dataType: ${t}, shape: ${s}, copyOld: ${o}}`);let a=this.tensorTrackersById.get(r);if(!a)throw new Error("Tensor not found.");return a.ensureTensor(e,t,s,o)}upload(e,r){let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");t.upload(r)}async download(e,r){Ot("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${e}, dstBuffer: ${r?.byteLength}}`);let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");return t.download(r)}releaseTensorsForSession(e){for(let r of this.freeTensors)r.sessionId===e&&r.destroy();this.freeTensors=this.freeTensors.filter(r=>r.sessionId!==e)}registerTensor(e,r,t,s){let o=this.getMLContext(e),a=Kc(),n=new qc({sessionId:e,context:o,tensor:r,dataType:t,shape:s});return this.tensorTrackersById.set(a,new Qc(this,n)),this.externalTensors.add(n),a}async getCachedTensor(e,r,t,s,o,a,n=!1){let i=this.getMLContext(e);for(let[c,_]of this.freeTensors.entries())if(_.canReuseTensor(i,r,t)){Ot("verbose",()=>`[WebNN] Reusing tensor {dataType: ${r}, shape: ${t}}`);let u=this.freeTensors.splice(c,1)[0];return u.sessionId=e,u}Ot("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${r}, shape: ${t}}`);let l=await i.createTensor({dataType:r,shape:t,dimensions:t,usage:s,writable:o,readable:a});return new qc({sessionId:e,context:i,tensor:l,dataType:r,shape:t,shouldConvertInt64toInt32:n})}releaseTensor(e){this.externalTensors.has(e)&&this.externalTensors.delete(e),this.freeTensors.push(e)}},kv=(...e)=>new Bg(...e)}),Ai,zg,Cv,bP=Ve(()=>{"use strict";Mt(),jo(),Ev(),wP(),Js(),Ai=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),zg=(e,r)=>{if(e===r)return!0;if(e===void 0||r===void 0)return!1;let t=Object.keys(e).sort(),s=Object.keys(r).sort();return t.length===s.length&&t.every((o,a)=>o===s[a]&&e[o]===r[o])},Cv=class{constructor(e){this.tensorManager=kv(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.temporaryGraphInputs=[],this.temporarySessionTensorIds=new Map,ou(e.logLevel,!!e.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(e){Ot("verbose",()=>`[WebNN] onRunStart {sessionId: ${e}}`),this.activeSessionId=e}onRunEnd(e){Ot("verbose",()=>`[WebNN] onRunEnd {sessionId: ${e}}`);let r=this.temporarySessionTensorIds.get(e);if(r){for(let t of r)Ot("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${t}}`),this.tensorManager.releaseTensorId(t);this.temporarySessionTensorIds.delete(e),this.activeSessionId=void 0}}async createMLContext(e){if(e instanceof GPUDevice){let t=this.mlContextCache.findIndex(s=>s.gpuDevice===e);if(t!==-1)return this.mlContextCache[t].mlContext;{let s=await navigator.ml.createContext(e);return this.mlContextCache.push({gpuDevice:e,mlContext:s}),s}}else if(e===void 0){let t=this.mlContextCache.findIndex(s=>s.options===void 0&&s.gpuDevice===void 0);if(t!==-1)return this.mlContextCache[t].mlContext;{let s=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:s}),s}}let r=this.mlContextCache.findIndex(t=>zg(t.options,e));if(r!==-1)return this.mlContextCache[r].mlContext;{let t=await navigator.ml.createContext(e);return this.mlContextCache.push({options:e,mlContext:t}),t}}registerMLContext(e,r){this.mlContextBySessionId.set(e,r);let t=this.sessionIdsByMLContext.get(r);t||(t=new Set,this.sessionIdsByMLContext.set(r,t)),t.add(e),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(e,this.temporaryGraphInputs),this.temporaryGraphInputs=[])}onReleaseSession(e){this.sessionGraphInputs.delete(e);let r=this.mlContextBySessionId.get(e);if(!r)return;this.tensorManager.releaseTensorsForSession(e),this.mlContextBySessionId.delete(e);let t=this.sessionIdsByMLContext.get(r);if(t.delete(e),t.size===0){this.sessionIdsByMLContext.delete(r);let s=this.mlContextCache.findIndex(o=>o.mlContext===r);s!==-1&&this.mlContextCache.splice(s,1)}}getMLContext(e){return this.mlContextBySessionId.get(e)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(e){Ot("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${e}}`),this.tensorManager.releaseTensorId(e)}async ensureTensor(e,r,t,s,o){let a=Ai.get(t);if(!a)throw new Error(`Unsupported ONNX data type: ${t}`);return this.tensorManager.ensureTensor(e??this.currentSessionId,r,a,s,o)}async createTemporaryTensor(e,r,t){Ot("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${r}, shape: ${t}}`);let s=Ai.get(r);if(!s)throw new Error(`Unsupported ONNX data type: ${r}`);let o=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(e,o,s,t,!1);let a=this.temporarySessionTensorIds.get(e);return a?a.push(o):this.temporarySessionTensorIds.set(e,[o]),o}uploadTensor(e,r){if(!Jt().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Ot("verbose",()=>`[WebNN] uploadTensor {tensorId: ${e}, data: ${r.byteLength}}`),this.tensorManager.upload(e,r)}async downloadTensor(e,r){return this.tensorManager.download(e,r)}createMLTensorDownloader(e,r){return async()=>{let t=await this.tensorManager.download(e);return au(t,r)}}registerMLTensor(e,r,t,s){let o=Ai.get(t);if(!o)throw new Error(`Unsupported ONNX data type: ${t}`);let a=this.tensorManager.registerTensor(e,r,o,s);return Ot("verbose",()=>`[WebNN] registerMLTensor {tensor: ${r}, dataType: ${o}, dimensions: ${s}} -> {tensorId: ${a}}`),a}registerMLConstant(e,r,t,s,o,a,n=!1){if(!a)throw new Error("External mounted files are not available.");let i=e;e.startsWith("./")&&(i=e.substring(2));let l=a.get(i);if(!l)throw new Error(`File with name ${i} not found in preloaded files.`);if(r+t>l.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let c=l.slice(r,r+t).buffer,_;switch(o.dataType){case"float32":_=new Float32Array(c);break;case"float16":_=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":_=new Int32Array(c);break;case"uint32":_=new Uint32Array(c);break;case"int64":n?(_=$d(new Uint8Array(c),!1),o.dataType="int32"):_=new BigInt64Array(c);break;case"uint64":_=new BigUint64Array(c);break;case"int8":_=new Int8Array(c);break;case"int4":case"uint4":case"uint8":_=new Uint8Array(c);break;default:throw new Error(`Unsupported data type: ${o.dataType} in creating WebNN Constant from external data.`)}return Ot("verbose",()=>`[WebNN] registerMLConstant {dataType: ${o.dataType}, shape: ${o.shape}}} ${n?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),s.constant(o,_)}registerGraphInput(e){this.temporaryGraphInputs.push(e)}isGraphInput(e,r){let t=this.sessionGraphInputs.get(e);return t?t.includes(r):!1}isInt64Supported(e){return!!this.mlContextBySessionId.get(e)?.opSupportLimits().input.dataTypes.includes("int64")}flush(){}}}),nu=Ve(()=>{"use strict"}),Xc,$i,Di,Rg,Ng,Jc,Dd,jg,Sv,vP=Ve(()=>{"use strict";Js(),nu(),Xc=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]]),$i=[],Di=e=>Math.ceil(Number(e)/16)*16,Rg=e=>{for(let r=0;r<$i.length;r++){let t=$i[r];if(e<=t)return t}return Math.ceil(e/16)*16},Ng=1,Jc=()=>Ng++,Dd=async(e,r,t,s)=>{let o=Di(t),a=e.device.createBuffer({size:o,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let n=e.getCommandEncoder();e.endComputePass(),n.copyBufferToBuffer(r,0,a,0,o),e.flush(),await a.mapAsync(GPUMapMode.READ);let i=a.getMappedRange();if(s){let l=s();return l.set(new Uint8Array(i,0,t)),l}else return new Uint8Array(i.slice(0,t))}finally{a.destroy()}},jg=class{constructor(e){this.backend=e,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[r]of Xc)$i.push(r),this.freeBuffers.set(r,[]),this.freeUniformBuffers.set(r,[]);this.sessionCount=0}upload(e,r){let t=r.buffer,s=r.byteOffset,o=r.byteLength,a=Di(o),n=this.storageCache.get(e);if(!n)throw new Error("gpu data for uploading does not exist");if(Number(n.originalSize)!==o)throw new Error(`inconsistent data size. gpu data size=${n.originalSize}, data size=${o}`);let i=this.backend.device.createBuffer({mappedAtCreation:!0,size:a,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),l=i.getMappedRange();new Uint8Array(l).set(new Uint8Array(t,s,o)),i.unmap();let c=this.backend.device.createCommandEncoder();c.copyBufferToBuffer(i,0,n.gpuData.buffer,0,a),this.backend.device.queue.submit([c.finish()]),i.destroy(),Ot("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${e})`)}memcpy(e,r){let t=this.storageCache.get(e);if(!t)throw new Error("source gpu data for memcpy does not exist");let s=this.storageCache.get(r);if(!s)throw new Error("destination gpu data for memcpy does not exist");if(t.originalSize!==s.originalSize)throw new Error("inconsistent source and destination gpu data size");let o=Di(t.originalSize),a=this.backend.getCommandEncoder();this.backend.endComputePass(),a.copyBufferToBuffer(t.gpuData.buffer,0,s.gpuData.buffer,0,o)}registerExternalBuffer(e,r,t){let s;if(t){if(s=t[0],e===t[1])return Ot("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, buffer is the same, skip.`),s;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet.
|
|
16
|
-
Please use the previous external buffer!`)}else s=Jc();return this.storageCache.set(s,{gpuData:{id:s,type:0,buffer:e},originalSize:r}),Ot("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, registered.`),s}unregisterExternalBuffer(e){e!==void 0&&(this.storageCache.delete(e),Ot("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${e}`))}create(e,r=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let t=
|
|
13
|
+
`),m=(function(Tt){var Dt=Function;if(!(Dt instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof Dt} which is not a function`);var Wt=ga(Dt.name||"unknownFunctionName",function(){});return Wt.prototype=Dt.prototype,Wt=new Wt,(Tt=Dt.apply(Wt,Tt))instanceof Object?Tt:Wt})(Be)(...Je),$=`methodCaller<(${T.map(Tt=>Tt.name).join(", ")}) => ${B.name}>`,fn(ga($,m))}function wn(m){return m=er(m>>>0),_r(s[m])}function eo(m,T){return T>>>=0,m=ar(m>>>0),T=ar(T),_r(m[T])}function bn(m){9<(m>>>=0)&&(Nr[m+1]+=1)}function vn(){return _r([])}function xn(m){m=ar(m>>>0);for(var T=Array(m.length),$=0;$<m.length;$++)T[$]=m[$];return _r(T)}function yn(m){return _r(er(m>>>0))}function Tn(){return _r({})}function to(m){for(var T=ar(m>>>=0);T.length;){var $=T.pop();T.pop()($)}Gr(m)}function Pn(m,T,$){T>>>=0,$>>>=0,m=ar(m>>>0),T=ar(T),$=ar($),m[T]=$}function En(m,T){return T>>>=0,m=(m=Xt(m>>>0,"_emval_take_value")).readValueFromPointer(T),_r(m)}function kn(m,T){m=-9007199254740992>m||9007199254740992<m?NaN:Number(m),T>>>=0,m=new Date(1e3*m),L()[T>>>2>>>0]=m.getUTCSeconds(),L()[T+4>>>2>>>0]=m.getUTCMinutes(),L()[T+8>>>2>>>0]=m.getUTCHours(),L()[T+12>>>2>>>0]=m.getUTCDate(),L()[T+16>>>2>>>0]=m.getUTCMonth(),L()[T+20>>>2>>>0]=m.getUTCFullYear()-1900,L()[T+24>>>2>>>0]=m.getUTCDay(),m=(m.getTime()-Date.UTC(m.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,L()[T+28>>>2>>>0]=m}var Ma=m=>m%4==0&&(m%100!=0||m%400==0),wa=[0,31,60,91,121,152,182,213,244,274,305,335],Go=[0,31,59,90,120,151,181,212,243,273,304,334];function Cn(m,T){m=-9007199254740992>m||9007199254740992<m?NaN:Number(m),T>>>=0,m=new Date(1e3*m),L()[T>>>2>>>0]=m.getSeconds(),L()[T+4>>>2>>>0]=m.getMinutes(),L()[T+8>>>2>>>0]=m.getHours(),L()[T+12>>>2>>>0]=m.getDate(),L()[T+16>>>2>>>0]=m.getMonth(),L()[T+20>>>2>>>0]=m.getFullYear()-1900,L()[T+24>>>2>>>0]=m.getDay();var $=(Ma(m.getFullYear())?wa:Go)[m.getMonth()]+m.getDate()-1|0;L()[T+28>>>2>>>0]=$,L()[T+36>>>2>>>0]=-60*m.getTimezoneOffset(),$=new Date(m.getFullYear(),6,1).getTimezoneOffset();var B=new Date(m.getFullYear(),0,1).getTimezoneOffset();m=0|($!=B&&m.getTimezoneOffset()==Math.min(B,$)),L()[T+32>>>2>>>0]=m}function Sn(m){m>>>=0;var T=new Date(L()[m+20>>>2>>>0]+1900,L()[m+16>>>2>>>0],L()[m+12>>>2>>>0],L()[m+8>>>2>>>0],L()[m+4>>>2>>>0],L()[m>>>2>>>0],0),$=L()[m+32>>>2>>>0],B=T.getTimezoneOffset(),V=new Date(T.getFullYear(),6,1).getTimezoneOffset(),ie=new Date(T.getFullYear(),0,1).getTimezoneOffset(),Ee=Math.min(ie,V);return 0>$?L()[m+32>>>2>>>0]=+(V!=ie&&Ee==B):0<$!=(Ee==B)&&(V=Math.max(ie,V),T.setTime(T.getTime()+6e4*((0<$?Ee:V)-B))),L()[m+24>>>2>>>0]=T.getDay(),$=(Ma(T.getFullYear())?wa:Go)[T.getMonth()]+T.getDate()-1|0,L()[m+28>>>2>>>0]=$,L()[m>>>2>>>0]=T.getSeconds(),L()[m+4>>>2>>>0]=T.getMinutes(),L()[m+8>>>2>>>0]=T.getHours(),L()[m+12>>>2>>>0]=T.getDate(),L()[m+16>>>2>>>0]=T.getMonth(),L()[m+20>>>2>>>0]=T.getYear(),m=T.getTime(),BigInt(isNaN(m)?-1:m/1e3)}function Ko(m,T,$,B,V,ie,Ee){return i?De(16,1,m,T,$,B,V,ie,Ee):-52}function ba(m,T,$,B,V,ie){if(i)return De(17,1,m,T,$,B,V,ie)}var Us={},Fn=()=>performance.timeOrigin+performance.now();function Ho(m,T){if(i)return De(18,1,m,T);if(Us[m]&&(clearTimeout(Us[m].id),delete Us[m]),!T)return 0;var $=setTimeout(()=>{delete Us[m],se(()=>La(m,performance.timeOrigin+performance.now()))},T);return Us[m]={id:$,qc:T},0}function Yi(m,T,$,B){m>>>=0,T>>>=0,$>>>=0,B>>>=0;var V=new Date().getFullYear(),ie=new Date(V,0,1).getTimezoneOffset();V=new Date(V,6,1).getTimezoneOffset();var Ee=Math.max(ie,V);ee()[m>>>2>>>0]=60*Ee,L()[T>>>2>>>0]=+(ie!=V),m=(T=Be=>{var Je=Math.abs(Be);return`UTC${0<=Be?"-":"+"}${String(Math.floor(Je/60)).padStart(2,"0")}${String(Je%60).padStart(2,"0")}`})(ie),T=T(V),V<ie?(Xr(m,$,17),Xr(T,B,17)):(Xr(m,B,17),Xr(T,$,17))}var In=()=>Date.now(),va=1;function xa(m,T,$){if(!(0<=m&&3>=m))return 28;if(m===0)m=Date.now();else{if(!va)return 52;m=performance.timeOrigin+performance.now()}return X[$>>>0>>>3]=BigInt(Math.round(1e6*m)),0}var ro=[],ya=(m,T)=>{ro.length=0;for(var $;$=Y()[m++>>>0];){var B=$!=105;T+=(B&=$!=112)&&T%8?4:0,ro.push($==112?ee()[T>>>2>>>0]:$==106?X[T>>>3]:$==105?L()[T>>>2>>>0]:ke()[T>>>3>>>0]),T+=B?8:4}return ro};function An(m,T,$){return m>>>=0,T=ya(T>>>0,$>>>0),Pe[m](...T)}function $n(m,T,$){return m>>>=0,T=ya(T>>>0,$>>>0),Pe[m](...T)}var Dn=()=>{};function On(m,T){return C(qt(m>>>0,T>>>0))}var Ln=()=>{throw ot+=1,"unwind"};function Ta(){return 4294901760}var Bn=()=>navigator.hardwareConcurrency;function zn(){return ve("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function Pa(m){m>>>=0;var T=Y().length;if(m<=T||4294901760<m)return!1;for(var $=1;4>=$;$*=2){var B=T*(1+.2/$);B=Math.min(B,m+100663296);e:{B=(Math.min(4294901760,65536*Math.ceil(Math.max(m,B)/65536))-y.buffer.byteLength+65535)/65536|0;try{y.grow(B),we();var V=1;break e}catch{}V=void 0}if(V)return!0}return!1}var mo=()=>(ve("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),hs={},qo=m=>{m.forEach(T=>{var $=mo();$&&(hs[$]=T)})};function Rn(){var m=Error().stack.toString().split(`
|
|
14
|
+
`);return m[0]=="Error"&&m.shift(),qo(m),hs.Lb=mo(),hs.cc=m,hs.Lb}function Ea(m,T,$){if(m>>>=0,T>>>=0,hs.Lb==m)var B=hs.cc;else(B=Error().stack.toString().split(`
|
|
15
|
+
`))[0]=="Error"&&B.shift(),qo(B);for(var V=3;B[V]&&mo()!=m;)++V;for(m=0;m<$&&B[m+V];++m)L()[T+4*m>>>2>>>0]=mo();return m}var fs,Qo={},Nn=()=>{if(!fs){var m,T={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(m in Qo)Qo[m]===void 0?delete T[m]:T[m]=Qo[m];var $=[];for(m in T)$.push(`${m}=${T[m]}`);fs=$}return fs};function ka(m,T){if(i)return De(19,1,m,T);m>>>=0,T>>>=0;var $=0;return Nn().forEach((B,V)=>{var ie=T+$;for(V=ee()[m+4*V>>>2>>>0]=ie,ie=0;ie<B.length;++ie)ye()[V++>>>0]=B.charCodeAt(ie);ye()[V>>>0]=0,$+=B.length+1}),0}function jn(m,T){if(i)return De(20,1,m,T);m>>>=0,T>>>=0;var $=Nn();ee()[m>>>2>>>0]=$.length;var B=0;return $.forEach(V=>B+=V.length+1),ee()[T>>>2>>>0]=B,0}function Ca(m){return i?De(21,1,m):52}function Xo(m,T,$,B){return i?De(22,1,m,T,$,B):52}function Sa(m,T,$,B){return i?De(23,1,m,T,$,B):70}var Vn=[null,[],[]];function Fa(m,T,$,B){if(i)return De(24,1,m,T,$,B);T>>>=0,$>>>=0,B>>>=0;for(var V=0,ie=0;ie<$;ie++){var Ee=ee()[T>>>2>>>0],Be=ee()[T+4>>>2>>>0];T+=8;for(var Je=0;Je<Be;Je++){var nt=Y()[Ee+Je>>>0],Tt=Vn[m];nt===0||nt===10?((m===1?b:C)(Cs(Tt)),Tt.length=0):Tt.push(nt)}V+=Be}return ee()[B>>>2>>>0]=V,0}i||(function(){for(var m=s.numThreads-1;m--;)zs();Re.unshift(()=>{ge++,(function(T){i?T():Promise.all(Ke.map(yr)).then(T)})(()=>Ae())})})();for(var Ia=Array(256),ho=0;256>ho;++ho)Ia[ho]=String.fromCharCode(ho);tt=Ia,gt=s.BindingError=class extends Error{constructor(m){super(m),this.name="BindingError"}},s.InternalError=class extends Error{constructor(m){super(m),this.name="InternalError"}},Nr.push(0,1,void 0,1,null,1,!0,1,!1,1),s.count_emval_handles=()=>Nr.length/2-5-as.length;var ct,Wn=[Qe,je,Yr,Ss,Qr,k,Q,N,K,Z,ce,xe,et,ut,qe,wt,Ko,ba,Ho,ka,jn,Ca,Xo,Sa,Fa];(async function(){function m(B,V){return ct=B.exports,ct=(function(){var ie=ct,Ee={};for(let[Be,Je]of Object.entries(ie))Ee[Be]=typeof Je=="function"?(...nt)=>{Zr.push(Be);try{return Je(...nt)}finally{oe||(Zr.pop(),zr&&Tr===1&&Zr.length===0&&(Tr=0,ot+=1,ir(Ra),typeof Fibers<"u"&&Fibers.rc()))}}:Je;return Ee})(),ct=(function(){var ie=ct,Ee=Je=>nt=>Je(nt)>>>0,Be=Je=>()=>Je()>>>0;return(ie=Object.assign({},ie)).Da=Ee(ie.Da),ie.fb=Be(ie.fb),ie.hb=Ee(ie.hb),ie.tb=Ee(ie.tb),ie.ub=Be(ie.ub),ie.__cxa_get_exception_ptr=Ee(ie.__cxa_get_exception_ptr),ie})(),At.push(ct.ib),P=V,Ae(),ct}ge++;var T=pe();if(s.instantiateWasm)return new Promise(B=>{s.instantiateWasm(T,(V,ie)=>{m(V,ie),B(V.exports)})});if(i)return new Promise(B=>{Le=V=>{var ie=new WebAssembly.Instance(V,pe());B(m(ie,V))}});le??=s.locateFile?s.locateFile?s.locateFile("ort-wasm-simd-threaded.jsep.wasm",x):x+"ort-wasm-simd-threaded.jsep.wasm":new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href;try{var $=await(async function(B){var V=le;if(!re&&typeof WebAssembly.instantiateStreaming=="function"&&!ne(V))try{var ie=fetch(V,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(ie,B)}catch(Ee){C(`wasm streaming compile failed: ${Ee}`),C("falling back to ArrayBuffer instantiation")}return(async function(Ee,Be){try{var Je=await(async function(nt){if(!re)try{var Tt=await u(nt);return new Uint8Array(Tt)}catch{}if(nt==le&&re)nt=new Uint8Array(re);else{if(!d)throw"both async and sync fetching of the wasm failed";nt=d(nt)}return nt})(Ee);return await WebAssembly.instantiate(Je,Be)}catch(nt){C(`failed to asynchronously prepare wasm: ${nt}`),ve(nt)}})(V,B)})(T);return m($.instance,$.module)}catch(B){return t(B),Promise.reject(B)}})();var Aa=m=>(Aa=ct.Da)(m),$a=()=>($a=ct.Ea)();s._OrtInit=(m,T)=>(s._OrtInit=ct.Fa)(m,T),s._OrtGetLastError=(m,T)=>(s._OrtGetLastError=ct.Ga)(m,T),s._OrtCreateSessionOptions=(m,T,$,B,V,ie,Ee,Be,Je,nt)=>(s._OrtCreateSessionOptions=ct.Ha)(m,T,$,B,V,ie,Ee,Be,Je,nt),s._OrtAppendExecutionProvider=(m,T,$,B,V)=>(s._OrtAppendExecutionProvider=ct.Ia)(m,T,$,B,V),s._OrtAddFreeDimensionOverride=(m,T,$)=>(s._OrtAddFreeDimensionOverride=ct.Ja)(m,T,$),s._OrtAddSessionConfigEntry=(m,T,$)=>(s._OrtAddSessionConfigEntry=ct.Ka)(m,T,$),s._OrtReleaseSessionOptions=m=>(s._OrtReleaseSessionOptions=ct.La)(m),s._OrtCreateSession=(m,T,$)=>(s._OrtCreateSession=ct.Ma)(m,T,$),s._OrtReleaseSession=m=>(s._OrtReleaseSession=ct.Na)(m),s._OrtGetInputOutputCount=(m,T,$)=>(s._OrtGetInputOutputCount=ct.Oa)(m,T,$),s._OrtGetInputOutputMetadata=(m,T,$,B)=>(s._OrtGetInputOutputMetadata=ct.Pa)(m,T,$,B),s._OrtFree=m=>(s._OrtFree=ct.Qa)(m),s._OrtCreateTensor=(m,T,$,B,V,ie)=>(s._OrtCreateTensor=ct.Ra)(m,T,$,B,V,ie),s._OrtGetTensorData=(m,T,$,B,V)=>(s._OrtGetTensorData=ct.Sa)(m,T,$,B,V),s._OrtReleaseTensor=m=>(s._OrtReleaseTensor=ct.Ta)(m),s._OrtCreateRunOptions=(m,T,$,B)=>(s._OrtCreateRunOptions=ct.Ua)(m,T,$,B),s._OrtAddRunConfigEntry=(m,T,$)=>(s._OrtAddRunConfigEntry=ct.Va)(m,T,$),s._OrtReleaseRunOptions=m=>(s._OrtReleaseRunOptions=ct.Wa)(m),s._OrtCreateBinding=m=>(s._OrtCreateBinding=ct.Xa)(m),s._OrtBindInput=(m,T,$)=>(s._OrtBindInput=ct.Ya)(m,T,$),s._OrtBindOutput=(m,T,$,B)=>(s._OrtBindOutput=ct.Za)(m,T,$,B),s._OrtClearBoundOutputs=m=>(s._OrtClearBoundOutputs=ct._a)(m),s._OrtReleaseBinding=m=>(s._OrtReleaseBinding=ct.$a)(m),s._OrtRunWithBinding=(m,T,$,B,V)=>(s._OrtRunWithBinding=ct.ab)(m,T,$,B,V),s._OrtRun=(m,T,$,B,V,ie,Ee,Be)=>(s._OrtRun=ct.bb)(m,T,$,B,V,ie,Ee,Be),s._OrtEndProfiling=m=>(s._OrtEndProfiling=ct.cb)(m),s._JsepOutput=(m,T,$)=>(s._JsepOutput=ct.db)(m,T,$),s._JsepGetNodeName=m=>(s._JsepGetNodeName=ct.eb)(m);var so=()=>(so=ct.fb)(),es=s._free=m=>(es=s._free=ct.gb)(m),fo=s._malloc=m=>(fo=s._malloc=ct.hb)(m),go=(m,T,$,B,V,ie)=>(go=ct.kb)(m,T,$,B,V,ie),Da=()=>(Da=ct.lb)(),Oa=(m,T,$,B,V)=>(Oa=ct.mb)(m,T,$,B,V),Jo=m=>(Jo=ct.nb)(m),Yo=m=>(Yo=ct.ob)(m),La=(m,T)=>(La=ct.pb)(m,T),Zo=()=>(Zo=ct.qb)(),Ba=(m,T)=>(Ba=ct.rb)(m,T),Mo=m=>(Mo=ct.sb)(m),wo=m=>(wo=ct.tb)(m),ea=()=>(ea=ct.ub)(),za=s.dynCall_ii=(m,T)=>(za=s.dynCall_ii=ct.vb)(m,T),ta=m=>(ta=ct.wb)(m),Ra=()=>(Ra=ct.xb)(),Na=m=>(Na=ct.yb)(m),ra=()=>(ra=ct.zb)();return s.stackSave=()=>ea(),s.stackRestore=m=>Mo(m),s.stackAlloc=m=>wo(m),s.setValue=function(m,T,$="i8"){switch($.endsWith("*")&&($="*"),$){case"i1":case"i8":ye()[m>>>0]=T;break;case"i16":H()[m>>>1>>>0]=T;break;case"i32":L()[m>>>2>>>0]=T;break;case"i64":X[m>>>3]=BigInt(T);break;case"float":ue()[m>>>2>>>0]=T;break;case"double":ke()[m>>>3>>>0]=T;break;case"*":ee()[m>>>2>>>0]=T;break;default:ve(`invalid type for setValue: ${$}`)}},s.getValue=function(m,T="i8"){switch(T.endsWith("*")&&(T="*"),T){case"i1":case"i8":return ye()[m>>>0];case"i16":return H()[m>>>1>>>0];case"i32":return L()[m>>>2>>>0];case"i64":return X[m>>>3];case"float":return ue()[m>>>2>>>0];case"double":return ke()[m>>>3>>>0];case"*":return ee()[m>>>2>>>0];default:ve(`invalid type for getValue: ${T}`)}},s.UTF8ToString=qt,s.stringToUTF8=Xr,s.lengthBytesUTF8=St,(function m(){if(0<ge)be=m;else if(i)r(s),A();else{for(;0<Re.length;)Re.shift()(s);0<ge?be=m:(s.calledRun=!0,oe||(A(),r(s)))}})(),s.PTR_SIZE=4,o}),gv=zc,Mg=globalThis.self?.name?.startsWith("em-pthread"),Mg&&zc()}),Rc,Id,wg,rs,Mv,Fi,bg,vg,Nc,xg,jc,wv,Vc,bv,Jd=Ve(()=>{"use strict";Xd(),Rc=typeof location>"u"?void 0:location.origin,Id=import.meta.url>"file:"&&import.meta.url<"file;",wg=()=>{if(Id){let e=URL;return new URL(new e("ort.bundle.min.mjs",import.meta.url).href,Rc).href}return import.meta.url},rs=wg(),Mv=()=>{if(rs&&!rs.startsWith("blob:"))return rs.substring(0,rs.lastIndexOf("/")+1)},Fi=(e,r)=>{try{let t=r??rs;return(t?new URL(e,t):new URL(e)).origin===Rc}catch{return!1}},bg=(e,r)=>{let t=r??rs;try{return(t?new URL(e,t):new URL(e)).href}catch{return}},vg=(e,r)=>`${r??"./"}${e}`,Nc=async e=>{let r=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(r)},xg=async e=>(await import(e)).default,jc=(fP(),pn(mv)).default,wv=async()=>{if(!rs)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Fi(rs))return[void 0,jc()];let e=await Nc(rs);return[e,jc(e)]},Vc=(gP(),pn(fv)).default,bv=async(e,r,t)=>{if(!e&&!r&&Vc&&rs&&Fi(rs))return[void 0,Vc];{let s="ort-wasm-simd-threaded.jsep.mjs",o=e??bg(s,r),a=t&&o&&!Fi(o,r),n=a?await Nc(o):o??vg(s,r);return[a?n:void 0,await xg(n)]}}}),Wc,Ii,Ya,Uc,yg,Tg,Pg,Yd,Jt,Vo=Ve(()=>{"use strict";Jd(),Ii=!1,Ya=!1,Uc=!1,yg=()=>{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}},Tg=()=>{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}},Pg=()=>{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}},Yd=async e=>{if(Ii)return Promise.resolve();if(Ya)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Uc)throw new Error("previous call to 'initializeWebAssembly()' failed.");Ya=!0;let r=e.initTimeout,t=e.numThreads;if(e.simd!==!1){if(e.simd==="relaxed"){if(!Pg())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!Tg())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let s=yg();t>1&&!s&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+t+", 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=t=1);let o=e.wasmPaths,a=typeof o=="string"?o:void 0,n=o?.mjs,i=n?.href??n,l=o?.wasm,c=l?.href??l,_=e.wasmBinary,[u,d]=await bv(i,a,t>1),g=!1,h=[];if(r>0&&h.push(new Promise(x=>{setTimeout(()=>{g=!0,x()},r)})),h.push(new Promise((x,F)=>{let v={numThreads:t};if(_)v.wasmBinary=_;else if(c||a)v.locateFile=b=>c??a+b;else if(i&&i.indexOf("blob:")!==0)v.locateFile=b=>new URL(b,i).href;else if(u){let b=Mv();b&&(v.locateFile=C=>b+C)}d(v).then(b=>{Ya=!1,Ii=!0,Wc=b,x(),u&&URL.revokeObjectURL(u)},b=>{Ya=!1,Uc=!0,F(b)})})),await Promise.race(h),g)throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`)},Jt=()=>{if(Ii&&Wc)return Wc;throw new Error("WebAssembly is not initialized yet.")}}),Ts,Gi,Kt,Zd=Ve(()=>{"use strict";Vo(),Ts=(e,r)=>{let t=Jt(),s=t.lengthBytesUTF8(e)+1,o=t._malloc(s);return t.stringToUTF8(e,o,s),r.push(o),o},Gi=(e,r,t,s)=>{if(typeof e=="object"&&e!==null){if(t.has(e))throw new Error("Circular reference in options");t.add(e)}Object.entries(e).forEach(([o,a])=>{let n=r?r+o:o;if(typeof a=="object")Gi(a,n+".",t,s);else if(typeof a=="string"||typeof a=="number")s(n,a.toString());else if(typeof a=="boolean")s(n,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},Kt=e=>{let r=Jt(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetLastError(o,o+s);let a=Number(r.getValue(o,s===4?"i32":"i64")),n=r.getValue(o+s,"*"),i=n?r.UTF8ToString(n):"";throw new Error(`${e} ERROR_CODE: ${a}, ERROR_MESSAGE: ${i}`)}finally{r.stackRestore(t)}}}),vv,MP=Ve(()=>{"use strict";Vo(),Zd(),vv=e=>{let r=Jt(),t=0,s=[],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 serverity 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 a=0;return e?.tag!==void 0&&(a=Ts(e.tag,s)),t=r._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,a),t===0&&Kt("Can't create run options."),e?.extra!==void 0&&Gi(e.extra,"",new WeakSet,(n,i)=>{let l=Ts(n,s),c=Ts(i,s);r._OrtAddRunConfigEntry(t,l,c)!==0&&Kt(`Can't set a run config entry: ${n} - ${i}.`)}),[t,s]}catch(a){throw t!==0&&r._OrtReleaseRunOptions(t),s.forEach(n=>r._free(n)),a}}}),Eg,kg,Cg,Za,Sg,xv,wP=Ve(()=>{"use strict";Vo(),Zd(),Eg=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},kg=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},Cg=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let r=e.extra.session;r.use_ort_model_bytes_directly||(r.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some(t=>(typeof t=="string"?t:t.name)==="webgpu")&&(e.enableMemPattern=!1)},Za=(e,r,t,s)=>{let o=Ts(r,s),a=Ts(t,s);Jt()._OrtAddSessionConfigEntry(e,o,a)!==0&&Kt(`Can't set a session config entry: ${r} - ${t}.`)},Sg=async(e,r,t)=>{for(let s of r){let o=typeof s=="string"?s:s.name,a=[];switch(o){case"webnn":if(o="WEBNN",typeof s!="string"){let _=s?.deviceType;_&&Za(e,"deviceType",_,t)}break;case"webgpu":if(o="JS",typeof s!="string"){let _=s;if(_?.preferredLayout){if(_.preferredLayout!=="NCHW"&&_.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${_.preferredLayout}`);Za(e,"preferredLayout",_.preferredLayout,t)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${o}`)}let n=Ts(o,t),i=a.length,l=0,c=0;if(i>0){l=Jt()._malloc(i*Jt().PTR_SIZE),t.push(l),c=Jt()._malloc(i*Jt().PTR_SIZE),t.push(c);for(let _=0;_<i;_++)Jt().setValue(l+_*Jt().PTR_SIZE,a[_][0],"*"),Jt().setValue(c+_*Jt().PTR_SIZE,a[_][1],"*")}await Jt()._OrtAppendExecutionProvider(e,n,l,c,i)!==0&&Kt(`Can't append execution provider: ${o}.`)}},xv=async e=>{let r=Jt(),t=0,s=[],o=e||{};Cg(o);try{let a=Eg(o.graphOptimizationLevel??"all"),n=kg(o.executionMode??"sequential"),i=typeof o.logId=="string"?Ts(o.logId,s):0,l=o.logSeverityLevel??2;if(!Number.isInteger(l)||l<0||l>4)throw new Error(`log serverity level is not valid: ${l}`);let c=o.logVerbosityLevel??0;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log verbosity level is not valid: ${c}`);let _=typeof o.optimizedModelFilePath=="string"?Ts(o.optimizedModelFilePath,s):0;if(t=r._OrtCreateSessionOptions(a,!!o.enableCpuMemArena,!!o.enableMemPattern,n,!!o.enableProfiling,0,i,l,c,_),t===0&&Kt("Can't create session options."),o.executionProviders&&await Sg(t,o.executionProviders,s),o.enableGraphCapture!==void 0){if(typeof o.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);Za(t,"enableGraphCapture",o.enableGraphCapture.toString(),s)}if(o.freeDimensionOverrides)for(let[u,d]of Object.entries(o.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof d!="number"||!Number.isInteger(d)||d<0)throw new Error(`free dimension override value must be a non-negative integer: ${d}`);let g=Ts(u,s);r._OrtAddFreeDimensionOverride(t,g,d)!==0&&Kt(`Can't set a free dimension override: ${u} - ${d}.`)}return o.extra!==void 0&&Gi(o.extra,"",new WeakSet,(u,d)=>{Za(t,u,d,s)}),[t,s]}catch(a){throw t!==0&&r._OrtReleaseSessionOptions(t)!==0&&Kt("Can't release session options."),s.forEach(n=>r._free(n)),a}}}),_a,Xs,Bo,eu,Ki,tu,ru,Ad,Mt=Ve(()=>{"use strict";_a=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}`)}},Xs=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}`)}},Bo=(e,r)=>{let t=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],s=typeof r=="number"?r:r.reduce((o,a)=>o*a,1);return t>0?Math.ceil(s*t):void 0},eu=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}`)}},Ki=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}`)}},tu=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",ru=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",Ad=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}`)}}}),su,yv=Ve(()=>{"use strict";Xd(),su=async e=>{if(typeof e=="string"){let r=await fetch(e);if(!r.ok)throw new Error(`failed to load external data file: ${e}`);let t=r.headers.get("Content-Length"),s=t?parseInt(t,10):0;if(s<1073741824)return new Uint8Array(await r.arrayBuffer());{if(!r.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let o=r.body.getReader(),a;try{a=new ArrayBuffer(s)}catch(i){if(i instanceof RangeError){let l=Math.ceil(s/65536);a=new WebAssembly.Memory({initial:l,maximum:l}).buffer}else throw i}let n=0;for(;;){let{done:i,value:l}=await o.read();if(i)break;let c=l.byteLength;new Uint8Array(a,n,c).set(l),n+=c}return new Uint8Array(a,0,s)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}}),Fg,Ig,Ag,$g,ou,Dg,Ot,Js=Ve(()=>{"use strict";Mt(),Fg=["V","I","W","E","F"],Ig=(e,r)=>{console.log(`[${Fg[e]},${new Date().toISOString()}]${r}`)},ou=(e,r)=>{Ag=e,$g=r},Dg=(e,r)=>{let t=Ki(e),s=Ki(Ag);t>=s&&Ig(t,typeof r=="function"?r():r)},Ot=(...e)=>{$g&&Dg(...e)}}),Og,ma,Me,Hi,Tv,Pv,Ev,kt=Ve(()=>{"use strict";Og=class{static calcMatMulShape(e,r){return e[1]!==r[0]?void 0:[e[0],r[1]]}},ma=class{static calcShape(e,r,t=!1){let s=e.length,o=r.length;if(s===0)return r;if(o===0)return e;let a=Math.max(e.length,r.length),n=new Array(a);if(t){if(s<2||o<2)return;let i=Og.calcMatMulShape([e[s-2],e[s-1]],[r[o-2],r[o-1]]);if(i===void 0)return;[n[a-2],n[a-1]]=i}for(let i=t?3:1;i<=a;i++){let l=s-i<0?1:e[s-i],c=o-i<0?1:r[o-i];if(l!==c&&l>1&&c>1)return;let _=Math.max(l,c);if(l&&c)n[a-i]=Math.max(l,c);else{if(_>1)return;n[a-i]=0}}return n}static isValidBroadcast(e,r){let t=e.length,s=r.length;if(t>s)return!1;for(let o=1;o<=t;o++)if(e[t-o]!==1&&e[t-o]!==r[s-o])return!1;return!0}},Me=class Wi{static size(r){return Wi.getSizeFromDimensionRange(r,0,r.length)}static convertShape(r,t=4){let s=r.length;if(s===0)return[];let o=new Array(s),a=s-1;for(;a>=0;){if(r[a]%t===0){o[a]=r[a]/t;break}if(t%r[a]!==0)throw new Error("cannot convert shape");o[a]=1,t/=r[a],a--}for(a--;a>=0;a--)o[a]=r[a];return o}static sizeFromDimension(r,t){if(t<0||t>r.length)throw new Error(`invalid dimension of ${t} for sizeFromDimension as Tensor has ${r.length} dimensions.`);return Wi.getSizeFromDimensionRange(r,t,r.length)}static sizeToDimension(r,t){if(t<0||t>r.length)throw new Error(`invalid dimension of ${t} for sizeToDimension as Tensor has ${r.length} dimensions.`);return Wi.getSizeFromDimensionRange(r,0,t)}static getSizeFromDimensionRange(r,t,s){let o=1;for(let a=t;a<s;a++){if(r[a]<0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains negative values in them.");o*=Number(r[a])}return o}static computeStrides(r){let t=r.length;if(t===0)return[];if(t===1)return[1];let s=new Array(t);s[t-1]=1,s[t-2]=r[t-1];for(let o=t-3;o>=0;--o)s[o]=s[o+1]*r[o+1];return s}static normalizeAxis(r,t){if(r<-t&&r>=t)throw new Error("unsupported axis for this operation.");return r<0?r+t:r}static normalizeAxes(r,t){return r.map(s=>this.normalizeAxis(s,t??r.length))}static sortBasedOnPerm(r,t){return t?t.map(s=>r[s]):r.slice().reverse()}static padShape(r,t){let s=r.length;return r.map((o,a)=>o+t[a]+t[a+s])}static areEqual(r,t){return r.length!==t.length?!1:r.every((s,o)=>s===t[o])}},Hi=class cn{static adjustPoolAttributes(r,t,s,o,a,n){if(!r&&s.length!==t.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(r)for(let i=0;i<t.length-2;i++)i>=s.length?s.push(t[i+2]):s[i]=t[i+2];for(let i=0;i<s.length;i++)if(i<o.length){if(o[i]<0)throw new Error("strides should be greater than or equal to 1")}else o.push(1);for(let i=0;i<s.length;i++)if(i<a.length){if(a[i]<0)throw new Error("dilations should be greater than or equal to 1")}else a.push(1);for(let i=0;i<s.length*2;i++)if(i<n.length){if(n[i]<0)throw new Error("pad should be greater than or equal to 1")}else n.push(0);for(let i=0;i<s.length;i++){if(s[i]<=0)throw new Error("kernel shapes need to be greater than 0");if(n[i]>=s[i]||n[i+s.length]>=s[i])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(r,t,s,o,a,n,i){if(i){if(a.length!==2*(r.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(t.length!==r.length-2)throw new Error("length of strides should be the length of data dimensions");if(o.length!==r.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let l=0;l<r.length-2;l++)cn.adjustPadAndReturnShape(r[l+(n?1:2)],t[l],s[l],o[l],a,l,l+r.length-2,i)}}static computePoolOutputShape(r,t,s,o,a,n,i){if(t.length<=0)throw new Error("input shape must be of size greater than 0");let l=[t[0],t[1]];return cn.computeShapeHelper(r,t,l,s,o,a,n,i),l}static computeConvOutputShape(r,t,s,o,a,n,i){if(r.length<=0||t.length<=0)throw new Error("invalid input tensor dims or invalid filter tensor dims");let l=[r[0],t[0]];return cn.computeShapeHelper(!1,r,l,s,o,a,n,i),l}static computeShapeHelper(r,t,s,o,a,n,i,l){if(r)for(let c=0;c<t.length-2;c++)s.push(1);else for(let c=0;c<t.length-2;c++)s.push(cn.adjustPadAndReturnShape(t[c+2],o[c],a[c],n[c],i,c,c+t.length-2,l))}static adjustPadAndReturnShape(r,t,s,o,a,n,i,l){let c=s*(o-1)+1;if(l&&l!=="NOTSET")switch(l){case"VALID":return a[n]=0,a[i]=0,Math.floor((r-c)/t+1);case"SAME_LOWER":case"SAME_UPPER":if(s!==1)throw new Error("Dilation not supported for SAME_UPPER or SAME_LOWER");{let _=((r+t-1)/t-1)*t+o-r;return a[n]=Math.floor(l==="SAME_LOWER"?(_+1)/2:_/2),a[i]=_-a[n],Math.floor((r+_-o)/t+1)}default:throw new Error("Unsupported AutoPad type")}else return Math.floor((r+a[n]+a[i]-c)/t+1)}},Tv=class{static getShapeOfGemmResult(e,r,t,s,o){if(e.length!==2||t.length!==2)throw new Error("shape need to be of size 2");let a,n,i;r?(a=e[1],n=e[0]):(a=e[0],n=e[1]);let l=-1;if(s?(i=t[0],l=1):(i=t[1],l=0),t[l]!==n)throw new Error("dimension mismatch");if(a<=0||i<=0||n<=0)throw new Error("invalid shape specified");if(o&&!ma.isValidBroadcast(o,[a,i]))throw new Error("gemm: invalid bias shape for broadcast");return[a,i,n]}},Pv=-34028234663852886e22,Ev=34028234663852886e22}),au,kv=Ve(()=>{"use strict";Mt(),au=(e,r)=>new(eu(r))(e)}),$d,Gc,Lg,Kc,Bg,Hc,qc,Qc,zg,Cv,bP=Ve(()=>{"use strict";Js(),$d=(e,r=!0)=>{if(e.byteLength%8!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 8 (BigInt).");let t=e.byteLength/8,s=new BigInt64Array(e.buffer,e.byteOffset,t),o=new Int32Array(t);for(let a=0;a<t;a++){let n=s[a];if(n>2147483647n||n<-2147483648n)throw new Error(`Overflow occurred when converting BigInt to Int32 at index ${a}: ${n}`);o[a]=Number(n)}return r?new Uint8Array(o.buffer):o},Gc=(e,r=!0)=>{if(e.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (Int32).");let t=e.byteLength/4,s=new Int32Array(e.buffer,e.byteOffset,t),o=BigInt64Array.from(s,BigInt);return r?new Uint8Array(o.buffer):o},Lg=1,Kc=()=>Lg++,Bg=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),Hc=(e,r)=>{let t=Bg.get(e);if(!t)throw new Error("Unsupported data type.");return r.length>0?Math.ceil(r.reduce((s,o)=>s*o)*t/8):0},qc=class{constructor(e){this.shouldConvertInt64toInt32=!1,this.isInt64ToInt32Converted=!1;let{sessionId:r,context:t,tensor:s,dataType:o,shape:a,shouldConvertInt64toInt32:n=!1}=e;this.sessionId=r,this.mlContext=t,this.mlTensor=s,this.dataType=o,this.tensorShape=a,this.shouldConvertInt64toInt32=n}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return Hc(this.dataType,this.tensorShape)}destroy(){Ot("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(e){this.mlContext.writeTensor(this.mlTensor,e)}async read(e,r){if(e){let t=await this.mlContext.readTensor(this.mlTensor),s=Gc(new Uint8Array(t));if(r){(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength)).set(s);return}else return s.buffer}else return r?this.mlContext.readTensor(this.mlTensor,r):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(e,r,t){return this.mlContext===e&&this.dataType===r&&this.tensorShape.length===t.length&&this.tensorShape.every((s,o)=>s===t[o])}setIsInt64ToInt32Converted(e){this.isInt64ToInt32Converted=e}},Qc=class{constructor(e,r){this.tensorManager=e,this.wrapper=r}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(e,r,t,s){let o=r,a=this.tensorManager.getMLContext(e),n=o==="int64"&&!a.opSupportLimits().input.dataTypes.includes("int64");if(n&&(o="int32",Ot("verbose",()=>"[WebNN] TensorIdTracker.ensureTensor: convert dataType from int64 to int32")),this.wrapper){if(this.wrapper.canReuseTensor(a,o,t))return this.wrapper.tensor;if(s){if(this.wrapper.byteLength!==Hc(o,t))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 i=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(e,o,t,i,!0,!0,n),s&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(e){let r=e;if(this.wrapper)if(this.wrapper.shouldConvertInt64toInt32&&(r=$d(e,!0),this.wrapper.setIsInt64ToInt32Converted(!0)),r.byteLength===this.wrapper.byteLength){this.wrapper.write(r);return}else Ot("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor();this.activeUpload?this.activeUpload.set(r):this.activeUpload=new Uint8Array(r)}async download(e){if(this.activeUpload){let r=this.wrapper?.isInt64ToInt32Converted?Gc(this.activeUpload):this.activeUpload;if(e){e instanceof ArrayBuffer?new Uint8Array(e).set(r):new Uint8Array(e.buffer,e.byteOffset,e.byteLength).set(r);return}else return r.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return e?this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32,e):this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32)}},zg=class{constructor(e){this.backend=e,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(e){let r=this.backend.getMLContext(e);if(!r)throw new Error("MLContext not found for session.");return r}reserveTensorId(){let e=Kc();return this.tensorTrackersById.set(e,new Qc(this)),e}releaseTensorId(e){let r=this.tensorTrackersById.get(e);r&&(this.tensorTrackersById.delete(e),r.tensorWrapper&&this.releaseTensor(r.tensorWrapper))}async ensureTensor(e,r,t,s,o){Ot("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${r}, dataType: ${t}, shape: ${s}, copyOld: ${o}}`);let a=this.tensorTrackersById.get(r);if(!a)throw new Error("Tensor not found.");return a.ensureTensor(e,t,s,o)}upload(e,r){let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");t.upload(r)}async download(e,r){Ot("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${e}, dstBuffer: ${r?.byteLength}}`);let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");return t.download(r)}releaseTensorsForSession(e){for(let r of this.freeTensors)r.sessionId===e&&r.destroy();this.freeTensors=this.freeTensors.filter(r=>r.sessionId!==e)}registerTensor(e,r,t,s){let o=this.getMLContext(e),a=Kc(),n=new qc({sessionId:e,context:o,tensor:r,dataType:t,shape:s});return this.tensorTrackersById.set(a,new Qc(this,n)),this.externalTensors.add(n),a}async getCachedTensor(e,r,t,s,o,a,n=!1){let i=this.getMLContext(e);for(let[c,_]of this.freeTensors.entries())if(_.canReuseTensor(i,r,t)){Ot("verbose",()=>`[WebNN] Reusing tensor {dataType: ${r}, shape: ${t}}`);let u=this.freeTensors.splice(c,1)[0];return u.sessionId=e,u}Ot("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${r}, shape: ${t}}`);let l=await i.createTensor({dataType:r,shape:t,dimensions:t,usage:s,writable:o,readable:a});return new qc({sessionId:e,context:i,tensor:l,dataType:r,shape:t,shouldConvertInt64toInt32:n})}releaseTensor(e){this.externalTensors.has(e)&&this.externalTensors.delete(e),this.freeTensors.push(e)}},Cv=(...e)=>new zg(...e)}),Ai,Rg,Sv,vP=Ve(()=>{"use strict";Mt(),Vo(),kv(),bP(),Js(),Ai=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),Rg=(e,r)=>{if(e===r)return!0;if(e===void 0||r===void 0)return!1;let t=Object.keys(e).sort(),s=Object.keys(r).sort();return t.length===s.length&&t.every((o,a)=>o===s[a]&&e[o]===r[o])},Sv=class{constructor(e){this.tensorManager=Cv(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.temporaryGraphInputs=[],this.temporarySessionTensorIds=new Map,ou(e.logLevel,!!e.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(e){Ot("verbose",()=>`[WebNN] onRunStart {sessionId: ${e}}`),this.activeSessionId=e}onRunEnd(e){Ot("verbose",()=>`[WebNN] onRunEnd {sessionId: ${e}}`);let r=this.temporarySessionTensorIds.get(e);if(r){for(let t of r)Ot("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${t}}`),this.tensorManager.releaseTensorId(t);this.temporarySessionTensorIds.delete(e),this.activeSessionId=void 0}}async createMLContext(e){if(e instanceof GPUDevice){let t=this.mlContextCache.findIndex(s=>s.gpuDevice===e);if(t!==-1)return this.mlContextCache[t].mlContext;{let s=await navigator.ml.createContext(e);return this.mlContextCache.push({gpuDevice:e,mlContext:s}),s}}else if(e===void 0){let t=this.mlContextCache.findIndex(s=>s.options===void 0&&s.gpuDevice===void 0);if(t!==-1)return this.mlContextCache[t].mlContext;{let s=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:s}),s}}let r=this.mlContextCache.findIndex(t=>Rg(t.options,e));if(r!==-1)return this.mlContextCache[r].mlContext;{let t=await navigator.ml.createContext(e);return this.mlContextCache.push({options:e,mlContext:t}),t}}registerMLContext(e,r){this.mlContextBySessionId.set(e,r);let t=this.sessionIdsByMLContext.get(r);t||(t=new Set,this.sessionIdsByMLContext.set(r,t)),t.add(e),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(e,this.temporaryGraphInputs),this.temporaryGraphInputs=[])}onReleaseSession(e){this.sessionGraphInputs.delete(e);let r=this.mlContextBySessionId.get(e);if(!r)return;this.tensorManager.releaseTensorsForSession(e),this.mlContextBySessionId.delete(e);let t=this.sessionIdsByMLContext.get(r);if(t.delete(e),t.size===0){this.sessionIdsByMLContext.delete(r);let s=this.mlContextCache.findIndex(o=>o.mlContext===r);s!==-1&&this.mlContextCache.splice(s,1)}}getMLContext(e){return this.mlContextBySessionId.get(e)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(e){Ot("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${e}}`),this.tensorManager.releaseTensorId(e)}async ensureTensor(e,r,t,s,o){let a=Ai.get(t);if(!a)throw new Error(`Unsupported ONNX data type: ${t}`);return this.tensorManager.ensureTensor(e??this.currentSessionId,r,a,s,o)}async createTemporaryTensor(e,r,t){Ot("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${r}, shape: ${t}}`);let s=Ai.get(r);if(!s)throw new Error(`Unsupported ONNX data type: ${r}`);let o=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(e,o,s,t,!1);let a=this.temporarySessionTensorIds.get(e);return a?a.push(o):this.temporarySessionTensorIds.set(e,[o]),o}uploadTensor(e,r){if(!Jt().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Ot("verbose",()=>`[WebNN] uploadTensor {tensorId: ${e}, data: ${r.byteLength}}`),this.tensorManager.upload(e,r)}async downloadTensor(e,r){return this.tensorManager.download(e,r)}createMLTensorDownloader(e,r){return async()=>{let t=await this.tensorManager.download(e);return au(t,r)}}registerMLTensor(e,r,t,s){let o=Ai.get(t);if(!o)throw new Error(`Unsupported ONNX data type: ${t}`);let a=this.tensorManager.registerTensor(e,r,o,s);return Ot("verbose",()=>`[WebNN] registerMLTensor {tensor: ${r}, dataType: ${o}, dimensions: ${s}} -> {tensorId: ${a}}`),a}registerMLConstant(e,r,t,s,o,a,n=!1){if(!a)throw new Error("External mounted files are not available.");let i=e;e.startsWith("./")&&(i=e.substring(2));let l=a.get(i);if(!l)throw new Error(`File with name ${i} not found in preloaded files.`);if(r+t>l.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let c=l.slice(r,r+t).buffer,_;switch(o.dataType){case"float32":_=new Float32Array(c);break;case"float16":_=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":_=new Int32Array(c);break;case"uint32":_=new Uint32Array(c);break;case"int64":n?(_=$d(new Uint8Array(c),!1),o.dataType="int32"):_=new BigInt64Array(c);break;case"uint64":_=new BigUint64Array(c);break;case"int8":_=new Int8Array(c);break;case"int4":case"uint4":case"uint8":_=new Uint8Array(c);break;default:throw new Error(`Unsupported data type: ${o.dataType} in creating WebNN Constant from external data.`)}return Ot("verbose",()=>`[WebNN] registerMLConstant {dataType: ${o.dataType}, shape: ${o.shape}}} ${n?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),s.constant(o,_)}registerGraphInput(e){this.temporaryGraphInputs.push(e)}isGraphInput(e,r){let t=this.sessionGraphInputs.get(e);return t?t.includes(r):!1}isInt64Supported(e){return!!this.mlContextBySessionId.get(e)?.opSupportLimits().input.dataTypes.includes("int64")}flush(){}}}),nu=Ve(()=>{"use strict"}),Xc,$i,Di,Ng,jg,Jc,Dd,Vg,Fv,xP=Ve(()=>{"use strict";Js(),nu(),Xc=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]]),$i=[],Di=e=>Math.ceil(Number(e)/16)*16,Ng=e=>{for(let r=0;r<$i.length;r++){let t=$i[r];if(e<=t)return t}return Math.ceil(e/16)*16},jg=1,Jc=()=>jg++,Dd=async(e,r,t,s)=>{let o=Di(t),a=e.device.createBuffer({size:o,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let n=e.getCommandEncoder();e.endComputePass(),n.copyBufferToBuffer(r,0,a,0,o),e.flush(),await a.mapAsync(GPUMapMode.READ);let i=a.getMappedRange();if(s){let l=s();return l.set(new Uint8Array(i,0,t)),l}else return new Uint8Array(i.slice(0,t))}finally{a.destroy()}},Vg=class{constructor(e){this.backend=e,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[r]of Xc)$i.push(r),this.freeBuffers.set(r,[]),this.freeUniformBuffers.set(r,[]);this.sessionCount=0}upload(e,r){let t=r.buffer,s=r.byteOffset,o=r.byteLength,a=Di(o),n=this.storageCache.get(e);if(!n)throw new Error("gpu data for uploading does not exist");if(Number(n.originalSize)!==o)throw new Error(`inconsistent data size. gpu data size=${n.originalSize}, data size=${o}`);let i=this.backend.device.createBuffer({mappedAtCreation:!0,size:a,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),l=i.getMappedRange();new Uint8Array(l).set(new Uint8Array(t,s,o)),i.unmap();let c=this.backend.device.createCommandEncoder();c.copyBufferToBuffer(i,0,n.gpuData.buffer,0,a),this.backend.device.queue.submit([c.finish()]),i.destroy(),Ot("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${e})`)}memcpy(e,r){let t=this.storageCache.get(e);if(!t)throw new Error("source gpu data for memcpy does not exist");let s=this.storageCache.get(r);if(!s)throw new Error("destination gpu data for memcpy does not exist");if(t.originalSize!==s.originalSize)throw new Error("inconsistent source and destination gpu data size");let o=Di(t.originalSize),a=this.backend.getCommandEncoder();this.backend.endComputePass(),a.copyBufferToBuffer(t.gpuData.buffer,0,s.gpuData.buffer,0,o)}registerExternalBuffer(e,r,t){let s;if(t){if(s=t[0],e===t[1])return Ot("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, buffer is the same, skip.`),s;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet.
|
|
16
|
+
Please use the previous external buffer!`)}else s=Jc();return this.storageCache.set(s,{gpuData:{id:s,type:0,buffer:e},originalSize:r}),Ot("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, registered.`),s}unregisterExternalBuffer(e){e!==void 0&&(this.storageCache.delete(e),Ot("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${e}`))}create(e,r=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let t=Ng(e),s,o=(r&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,a=(r&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(o||a){let i=(o?this.freeBuffers:this.freeUniformBuffers).get(t);i?i.length>0?s=i.pop():s=this.backend.device.createBuffer({size:t,usage:r}):s=this.backend.device.createBuffer({size:t,usage:r})}else s=this.backend.device.createBuffer({size:t,usage:r});let n={id:Jc(),type:0,buffer:s};return this.storageCache.set(n.id,{gpuData:n,originalSize:Number(e)}),Ot("verbose",()=>`[WebGPU] GpuDataManager.create(size=${e}) => id=${n.id}`),n}get(e){return this.storageCache.get(e)?.gpuData}release(e){let r=typeof e=="bigint"?Number(e):e,t=this.storageCache.get(r);if(!t){if(this.storageCache.size===0)return 0;throw new Error("releasing data does not exist")}return Ot("verbose",()=>`[WebGPU] GpuDataManager.release(id=${r}), gpuDataId=${t.gpuData.id}`),this.storageCache.delete(r),this.buffersPending.push(t.gpuData.buffer),t.originalSize}async download(e,r){let t=this.storageCache.get(Number(e));if(!t)throw new Error("data does not exist");await Dd(this.backend,t.gpuData.buffer,t.originalSize,r)}refreshPendingBuffers(){if(this.buffersPending.length!==0)if(this.backend.sessionStatus==="default"){for(let e of this.buffersPending){let r=Xc.get(e.size);if((e.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let t=this.freeBuffers.get(e.size)||[];r===void 0||t.length>=r?e.destroy():t.push(e)}else if((e.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let t=this.freeUniformBuffers.get(e.size)||[];r===void 0||t.length>=r?e.destroy():t.push(e)}else e.destroy()}this.buffersPending=[]}else{let e=this.capturedPendingBuffers.get(this.backend.currentSessionId);e||(e=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,e));for(let r of this.buffersPending)e.push(r);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(e=>{e.forEach(r=>{r.destroy()})}),this.freeUniformBuffers.forEach(e=>{e.forEach(r=>{r.destroy()})}),this.storageCache.forEach(e=>{e.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(e=>{e.forEach(r=>{r.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(e){let r=this.capturedPendingBuffers.get(e);r&&(r.forEach(t=>{t.destroy()}),this.capturedPendingBuffers.delete(e)),this.sessionCount-=1,this.sessionCount===0&&(Ot("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(t=>{t.gpuData.buffer.destroy()}),this.storageCache=new Map)}},Fv=(...e)=>new Vg(...e)}),Wg,jt,hr=Ve(()=>{"use strict";Wg=class{constructor(e){Object.assign(this,e)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(e=>`${this[e]}`).join(";")),this.key}},jt=e=>new Wg(e)}),ha,Oi,$r,Ur,dt,dr,Od,pa,_o,lt,en,Fe,it,Iv,iu,Ug,Av,Ct=Ve(()=>{"use strict";Mt(),kt(),ha=64,Oi=(e,r)=>{if(r===3)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(Number(e)){case 10:return r>1?`vec${r}<f16>`:"f16";case 1:return r>1?`vec${r}<f32>`:"f32";case 6:return r>1?`vec${r}<i32>`:"i32";case 12:return r>1?`vec${r}<u32>`:"u32";case 7:if(r>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","i32"];case 13:if(r>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","u32"];case 9:if(r!==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}`)}},$r=(e,r=1)=>{let t=Oi(e,r);return typeof t=="string"?t:t[0]},Ur=(e,r=1)=>{let t=Oi(e,r);return typeof t=="string"?t:t[1]},dt=(...e)=>{let r=[];return e.forEach(t=>{t.length!==0&&r.push({type:12,data:t},{type:12,data:Me.computeStrides(t)})}),r},dr=e=>e%4===0?4:e%2===0?2:1,Od=(e="f32",r,t="0")=>!r||r===1?`${e}(${t})`:`vec${r}<${e}>(${t})`,pa=(e,r,t)=>e==="f32"?t:r===1?`f32(${t})`:`vec${r}<f32>(${t})`,_o=(e,r)=>r===4?`(${e}.x + ${e}.y + ${e}.z + ${e}.w)`:r===2?`(${e}.x + ${e}.y)`:r===3?`(${e}.x + ${e}.y + ${e}.z)`:e,lt=(e,r,t,s)=>e.startsWith("uniforms.")&&t>4?typeof r=="string"?s==="f16"?`${e}[(${r}) / 8][(${r}) % 8 / 4][(${r}) % 8 % 4]`:`${e}[(${r}) / 4][(${r}) % 4]`:s==="f16"?`${e}[${Math.floor(r/8)}][${Math.floor(r%8/4)}][${r%8%4}]`:`${e}[${Math.floor(r/4)}][${r%4}]`:t>1?`${e}[${r}]`:e,en=(e,r,t,s,o)=>{let a=typeof t=="number",n=a?t:t.length,i=[...new Array(n).keys()],l=n<2?"u32":n<=4?`vec${n}<u32>`:`array<u32, ${n}>`,c=Oi(r,o),_=typeof c=="string"?c:c[1],u=typeof c=="string"?c:c[0],d={indices:l,value:_,storage:u,tensor:r},g=Y=>typeof Y=="string"?Y:`${Y}u`,h={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},x=a?"uniforms.":"",F=`${x}${e}_shape`,v=`${x}${e}_strides`,b="";for(let Y=0;Y<n-1;Y++)b+=`
|
|
17
17
|
let dim${Y} = current / ${lt(v,Y,n)};
|
|
18
18
|
let rest${Y} = current % ${lt(v,Y,n)};
|
|
19
19
|
indices[${Y}] = dim${Y};
|
|
@@ -42,7 +42,7 @@ var DT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
|
|
|
42
42
|
fn set_${e}(${Y}, value: ${_}) {
|
|
43
43
|
set_${e}ByIndices(${E(H)}, value);
|
|
44
44
|
}`})();return{impl:()=>{let Y=[],H=!1;return h.offsetToIndices&&(Y.push(C),H=!0),h.indicesToOffset&&(Y.push(I),H=!0),h.broadcastedIndicesToOffset&&(Object.values(U).forEach(R=>Y.push(R)),H=!0),h.set&&(Y.push(ye),H=!0),h.setByIndices&&(Y.push(ne),H=!0),h.get&&(Y.push(q),H=!0),h.getByIndices&&(Y.push(J),H=!0),!a&&H&&Y.unshift(`const ${F} = ${d.indices}(${t.join(",")});`,`const ${v} = ${d.indices}(${Me.computeStrides(t).join(",")});`),Y.join(`
|
|
45
|
-
`)},type:d,offsetToIndices:y,indicesToOffset:f,broadcastedIndicesToOffset:W,indices:E,indicesGet:D,indicesSet:O,set:(...Y)=>{if(Y.length!==n+1)throw new Error(`indices length must be ${n}`);let H=Y[n];if(typeof H!="string")throw new Error("value must be string");let R=Y.slice(0,n).map(g).join(",");return n===0?z("0u",H):n===1?z(R[0],H):(h.set=!0,h.setByIndices=!0,h.indicesToOffset=!0,`set_${e}(${R}, ${H})`)},setByOffset:z,setByIndices:(Y,H)=>n<2?z(Y,H):(h.setByIndices=!0,h.indicesToOffset=!0,`set_${e}ByIndices(${Y}, ${H});`),get:re,getByOffset:X,getByIndices:oe,usage:s,name:e,strides:v,shape:F,rank:n}},Fe=(e,r,t,s=1)=>
|
|
45
|
+
`)},type:d,offsetToIndices:y,indicesToOffset:f,broadcastedIndicesToOffset:W,indices:E,indicesGet:D,indicesSet:O,set:(...Y)=>{if(Y.length!==n+1)throw new Error(`indices length must be ${n}`);let H=Y[n];if(typeof H!="string")throw new Error("value must be string");let R=Y.slice(0,n).map(g).join(",");return n===0?z("0u",H):n===1?z(R[0],H):(h.set=!0,h.setByIndices=!0,h.indicesToOffset=!0,`set_${e}(${R}, ${H})`)},setByOffset:z,setByIndices:(Y,H)=>n<2?z(Y,H):(h.setByIndices=!0,h.indicesToOffset=!0,`set_${e}ByIndices(${Y}, ${H});`),get:re,getByOffset:X,getByIndices:oe,usage:s,name:e,strides:v,shape:F,rank:n}},Fe=(e,r,t,s=1)=>en(e,r,t,"input",s),it=(e,r,t,s=1)=>en(e,r,t,"output",s),Iv=(e,r,t)=>en(e,r,t,"atomicOutput",1),iu=(e,r,t,s=1)=>en(e,r,t,"internal",s),Ug=class{constructor(e,r){this.normalizedDispatchGroup=e,this.limits=r,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(e){return`if (global_idx >= ${typeof e=="number"?`${e}u`:e}) { return; }`}mainStart(e=ha){let r=typeof e=="number"?e:e[0],t=typeof e=="number"?1:e[1],s=typeof e=="number"?1:e[2];if(r>this.limits.maxComputeWorkgroupSizeX||t>this.limits.maxComputeWorkgroupSizeY||s>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${r}, ${t}, ${s}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(r*t*s>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${r}, ${t}, ${s}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let o=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1,a=o?`@builtin(global_invocation_id) global_id : vec3<u32>,
|
|
46
46
|
@builtin(workgroup_id) workgroup_id : vec3<u32>,
|
|
47
47
|
@builtin(local_invocation_index) local_idx : u32,
|
|
48
48
|
@builtin(local_invocation_id) local_id : vec3<u32>`:`@builtin(global_invocation_id) global_id : vec3<u32>,
|
|
@@ -60,13 +60,13 @@ var DT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
|
|
|
60
60
|
struct Uniforms { ${e.join(", ")} };
|
|
61
61
|
@group(0) @binding(${this.variableIndex}) var<uniform> uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map(e=>e.impl()).join(`
|
|
62
62
|
`)+this.internalVariables.map(e=>e.impl()).join(`
|
|
63
|
-
`)}get variablesInfo(){if(this.uniforms.length===0)return;let e=r=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(r)];return this.uniforms.map(r=>[e(r.type),r.length??1])}},
|
|
64
|
-
var a: ${t.type.indices};`;for(let a=0;a<r;++a)o+=`a[${e[a]}]=i[${a}];`;return o+="return a;}"},
|
|
63
|
+
`)}get variablesInfo(){if(this.uniforms.length===0)return;let e=r=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(r)];return this.uniforms.map(r=>[e(r.type),r.length??1])}},Av=(e,r)=>new Ug(e,r)}),Gg,Yc,Kg,Hg,qg,Qg,os,$v,Dv,po=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Gg=(e,r)=>{if(!e||e.length!==1)throw new Error("Transpose requires 1 input.");if(r.length!==0&&r.length!==e[0].dims.length)throw new Error(`perm size ${r.length} does not match input rank ${e[0].dims.length}`)},Yc=(e,r)=>r.length!==0?r:[...new Array(e).keys()].reverse(),Kg=(e,r)=>Me.sortBasedOnPerm(e,Yc(e.length,r)),Hg=(e,r,t,s)=>{let o=`fn perm(i: ${s.type.indices}) -> ${t.type.indices} {
|
|
64
|
+
var a: ${t.type.indices};`;for(let a=0;a<r;++a)o+=`a[${e[a]}]=i[${a}];`;return o+="return a;}"},qg=(e,r)=>{let t=[],s=[];for(let o=0;o<e.length;++o)e[o]!==1&&t.push(e[o]),e[r[o]]!==1&&s.push(r[o]);return{newShape:t,newPerm:s}},Qg=(e,r)=>{let t=0;for(let s=0;s<e.length;++s)if(r[e[s]]!==1){if(e[s]<t)return!1;t=e[s]}return!0},os=(e,r)=>{let t=e.dataType,s=e.dims.length,o=Yc(s,r),a=Kg(e.dims,o),n=e.dims,i=a,l=s<2||Qg(o,e.dims),c;if(l)return c=h=>{let x=Fe("input",t,n,4),F=it("output",t,i,4);return`
|
|
65
65
|
${h.registerUniform("output_size","u32").declareVariables(x,F)}
|
|
66
66
|
${h.mainStart()}
|
|
67
67
|
${h.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
68
68
|
output[global_idx] = input[global_idx];
|
|
69
|
-
}`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let h=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64/4)},programUniforms:[{type:12,data:Math.ceil(h/4)}]}},getShaderSource:c};let{newShape:_,newPerm:u}=
|
|
69
|
+
}`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let h=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64/4)},programUniforms:[{type:12,data:Math.ceil(h/4)}]}},getShaderSource:c};let{newShape:_,newPerm:u}=qg(e.dims,o),d=Me.areEqual(u,[2,3,1]),g=Me.areEqual(u,[3,1,2]);if(_.length===2||d||g){n=d?[_[0],_[1]*_[2]]:g?[_[0]*_[1],_[2]]:_,i=[n[1],n[0]];let h=16;return c=x=>{let F=Fe("a",t,n.length),v=it("output",t,i.length);return`
|
|
70
70
|
${x.registerUniform("output_size","u32").declareVariables(F,v)}
|
|
71
71
|
var<workgroup> tile : array<array<${v.type.value}, ${h+1}>, ${h}>;
|
|
72
72
|
${x.mainStart([h,h,1])}
|
|
@@ -88,7 +88,7 @@ var DT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
|
|
|
88
88
|
}`},{name:"TransposeShared",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let x=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(i[1]/h),y:Math.ceil(i[0]/h)},programUniforms:[{type:12,data:x},...dt(n,i)]}},getShaderSource:c}}return c=h=>{let x=Fe("a",t,n.length),F=it("output",t,i.length);return`
|
|
89
89
|
${h.registerUniform("output_size","u32").declareVariables(x,F)}
|
|
90
90
|
|
|
91
|
-
${
|
|
91
|
+
${Hg(o,s,x,F)}
|
|
92
92
|
|
|
93
93
|
${h.mainStart()}
|
|
94
94
|
${h.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
@@ -97,7 +97,7 @@ var DT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
|
|
|
97
97
|
let aIndices = perm(indices);
|
|
98
98
|
|
|
99
99
|
${F.setByOffset("global_idx",x.getByIndices("aIndices"))}
|
|
100
|
-
}`},{name:"Transpose",shaderCache:{hint:`${r}`,inputDependencies:["rank"]},getRunData:()=>{let h=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...dt(n,i)]}},getShaderSource:c}}
|
|
100
|
+
}`},{name:"Transpose",shaderCache:{hint:`${r}`,inputDependencies:["rank"]},getRunData:()=>{let h=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...dt(n,i)]}},getShaderSource:c}},$v=(e,r)=>{Gg(e.inputs,r.perm),e.compute(os(e.inputs[0],r.perm))},Dv=e=>jt({perm:e.perm})}),Xg,Jg,Yg,Zg,eM,tM,rM,sM,oM,aM,ws,Ov,Lv,Bv,zv,Rv,Nv,jv,Vv,Wv,Uv,yP=Ve(()=>{"use strict";Mt(),kt(),Ct(),lu(),po(),Xg={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"},Jg={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"},Yg={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},Zg={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},eM=(e,r)=>{let t=[];for(let s=r-e;s<r;++s)t.push(s);return t},tM=(e,r)=>{let t=[],s=e.length;for(let a=0;a<s;a++)r.indexOf(a)===-1&&t.push(e[a]);let o=r.map(a=>e[a]);return[t,o]},rM=(e,r)=>{let t=e.length+r.length,s=[],o=0;for(let a=0;a<t;a++)r.indexOf(a)===-1?s.push(e[o++]):s.push(1);return s},sM=(e,r)=>{for(let t=0;t<e.length;++t)if(e[e.length-t-1]!==r-1-t)return!1;return!0},oM=(e,r)=>{let t=[];if(!sM(e,r)){for(let s=0;s<r;++s)e.indexOf(s)===-1&&t.push(s);e.forEach(s=>t.push(s))}return t},aM=(e,r,t,s,o,a,n)=>{let i=t[0].dims,l=Me.size(a),c=Me.size(n),_=Fe("_A",t[0].dataType,i),u=it("output",o,a),d=64;l===1&&(d=256);let g=`
|
|
101
101
|
var<workgroup> aBestValues : array<f32, ${d}>;
|
|
102
102
|
`,h=x=>`
|
|
103
103
|
${x.registerUniform("reduceSize","u32").declareVariables(_,u)}
|
|
@@ -110,11 +110,11 @@ var DT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
|
|
|
110
110
|
let outputIndex = global_idx / ${d};
|
|
111
111
|
let offset = outputIndex * uniforms.reduceSize;
|
|
112
112
|
|
|
113
|
-
var bestValue = f32(${
|
|
113
|
+
var bestValue = f32(${Yg[s]});
|
|
114
114
|
let Length = uniforms.reduceSize;
|
|
115
115
|
for (var k = local_idx; k < Length; k = k + ${d}) {
|
|
116
116
|
let candidate = f32(${_.getByOffset("offset + k")});
|
|
117
|
-
bestValue = ${
|
|
117
|
+
bestValue = ${Xg[s]};
|
|
118
118
|
}
|
|
119
119
|
aBestValues[local_idx] = bestValue;
|
|
120
120
|
workgroupBarrier();
|
|
@@ -125,7 +125,7 @@ var DT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
|
|
|
125
125
|
let interval = DIV_CEIL(reduceSize, 2u);
|
|
126
126
|
if (local_idx < currentSize) {
|
|
127
127
|
let candidate = aBestValues[local_idx + interval];
|
|
128
|
-
bestValue = ${
|
|
128
|
+
bestValue = ${Jg[s]};
|
|
129
129
|
aBestValues[local_idx] = bestValue;
|
|
130
130
|
}
|
|
131
131
|
reduceSize = interval;
|
|
@@ -133,9 +133,9 @@ var DT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
if (local_idx == 0u) {
|
|
136
|
-
${u.setByOffset("outputIndex",`${s==="mean"?`${u.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${u.type.storage}(${
|
|
136
|
+
${u.setByOffset("outputIndex",`${s==="mean"?`${u.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${u.type.storage}(${Zg[s]})`}`)};
|
|
137
137
|
}
|
|
138
|
-
}`;return{name:e,shaderCache:{hint:`${r};${d}`,inputDependencies:["type"]},getShaderSource:h,getRunData:()=>({outputs:[{dims:a,dataType:o}],dispatchGroup:{x:l},programUniforms:[{type:12,data:c}]})}},ws=(e,r,t,s)=>{let o=e.inputs.length===1?t:Ld(e.inputs,t),a=o.axes;a.length===0&&!o.noopWithEmptyAxes&&(a=e.inputs[0].dims.map((g,h)=>h));let n=Me.normalizeAxes(a,e.inputs[0].dims.length),i=n,l=e.inputs[0],c=
|
|
138
|
+
}`;return{name:e,shaderCache:{hint:`${r};${d}`,inputDependencies:["type"]},getShaderSource:h,getRunData:()=>({outputs:[{dims:a,dataType:o}],dispatchGroup:{x:l},programUniforms:[{type:12,data:c}]})}},ws=(e,r,t,s)=>{let o=e.inputs.length===1?t:Ld(e.inputs,t),a=o.axes;a.length===0&&!o.noopWithEmptyAxes&&(a=e.inputs[0].dims.map((g,h)=>h));let n=Me.normalizeAxes(a,e.inputs[0].dims.length),i=n,l=e.inputs[0],c=oM(i,e.inputs[0].dims.length);c.length>0&&(l=e.compute(os(e.inputs[0],c),{inputs:[0],outputs:[-1]})[0],i=eM(i.length,l.dims.length));let[_,u]=tM(l.dims,i),d=_;o.keepDims&&(d=rM(_,n)),e.compute(aM(r,o.cacheKey,[l],s,e.inputs[0].dataType,d,u),{inputs:[l]})},Ov=(e,r)=>{ws(e,"ReduceMeanShared",r,"mean")},Lv=(e,r)=>{ws(e,"ReduceL1Shared",r,"l1")},Bv=(e,r)=>{ws(e,"ReduceL2Shared",r,"l2")},zv=(e,r)=>{ws(e,"ReduceLogSumExpShared",r,"logSumExp")},Rv=(e,r)=>{ws(e,"ReduceMaxShared",r,"max")},Nv=(e,r)=>{ws(e,"ReduceMinShared",r,"min")},jv=(e,r)=>{ws(e,"ReduceProdShared",r,"prod")},Vv=(e,r)=>{ws(e,"ReduceSumShared",r,"sum")},Wv=(e,r)=>{ws(e,"ReduceSumSquareShared",r,"sumSquare")},Uv=(e,r)=>{ws(e,"ReduceLogSumShared",r,"logSum")}}),bs,nM,qi,Ld,vs,iM,lM,cM,dM,uM,_M,pM,mM,hM,fM,xs,Gv,Kv,Hv,qv,Qv,Xv,Jv,Yv,Zv,ex,lu=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),yP(),bs=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.")},nM=e=>["","",`var value = ${e.getByIndices("input_indices")};`,""],qi=(e,r,t,s,o,a,n=!1,i=!1)=>{let l=[],c=t[0].dims,_=c.length,u=Me.normalizeAxes(o,_),d=!i&&u.length===0;c.forEach((x,F)=>{d||u.indexOf(F)>=0?n&&l.push(1):l.push(x)});let g=l.length,h=Me.size(l);return{name:e,shaderCache:r,getShaderSource:x=>{let F=[],v=Fe("_A",t[0].dataType,_),b=it("output",a,g),C=s(v,b,u),y=C[2];for(let P=0,I=0;P<_;P++)d||u.indexOf(P)>=0?(n&&I++,y=`for(var j${P}: u32 = 0; j${P} < ${c[P]}; j${P}++) {
|
|
139
139
|
${C[2].includes("last_index")?`let last_index = j${P};`:""}
|
|
140
140
|
${v.indicesSet("input_indices",P,`j${P}`)}
|
|
141
141
|
${y}
|
|
@@ -156,19 +156,19 @@ var DT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
|
|
|
156
156
|
${C[3]}
|
|
157
157
|
${C.length===4?b.setByOffset("global_idx","value"):C.slice(4).join(`
|
|
158
158
|
`)}
|
|
159
|
-
}`},getRunData:()=>({outputs:[{dims:l,dataType:a}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...dt(c,l)]})}},Ld=(e,r)=>{let t=[];return e[1].dims[0]>0&&e[1].getBigInt64Array().forEach(s=>t.push(Number(s))),jt({axes:t,keepDims:r.keepDims,noopWithEmptyAxes:r.noopWithEmptyAxes})},vs=(e,r,t,s)=>{let o=e.inputs,a=o.length===1?t:Ld(o,t);e.compute(qi(r,{hint:a.cacheKey,inputDependencies:["rank"]},[o[0]],a.noopWithEmptyAxes&&a.axes.length===0?
|
|
160
|
-
`)}`,`var value = ${t.getByIndices("input_indices")};`,`value = max(value, ${t.getByIndices("input_indices")});`,""]})},
|
|
161
|
-
`)}`,`var value = ${t.getByIndices("input_indices")};`,`value = min(value, ${t.getByIndices("input_indices")});`,""]})},
|
|
159
|
+
}`},getRunData:()=>({outputs:[{dims:l,dataType:a}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...dt(c,l)]})}},Ld=(e,r)=>{let t=[];return e[1].dims[0]>0&&e[1].getBigInt64Array().forEach(s=>t.push(Number(s))),jt({axes:t,keepDims:r.keepDims,noopWithEmptyAxes:r.noopWithEmptyAxes})},vs=(e,r,t,s)=>{let o=e.inputs,a=o.length===1?t:Ld(o,t);e.compute(qi(r,{hint:a.cacheKey,inputDependencies:["rank"]},[o[0]],a.noopWithEmptyAxes&&a.axes.length===0?nM:s,a.axes,o[0].dataType,a.keepDims,a.noopWithEmptyAxes),{inputs:[0]})},iM=(e,r)=>{bs(e.inputs),vs(e,"ReduceLogSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,"value = log(value);"])},lM=(e,r)=>{bs(e.inputs),vs(e,"ReduceL1",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += abs(${t.getByIndices("input_indices")});`,""])},cM=(e,r)=>{bs(e.inputs),vs(e,"ReduceL2",r,(t,s)=>[`var t = ${s.type.value}(0); var value = ${s.type.value}(0);`,"",`t = ${t.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"])},dM=(e,r)=>{bs(e.inputs),vs(e,"ReduceLogSumExp",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += exp(${t.getByIndices("input_indices")});`,"value = log(value);"])},uM=(e,r)=>{bs(e.inputs),vs(e,"ReduceMax",r,(t,s,o)=>{let a=[];for(let n=0;n<t.rank;n++)(o.indexOf(n)>=0||o.length===0)&&a.push(t.indicesSet("input_indices",n,0));return[`${a.join(`
|
|
160
|
+
`)}`,`var value = ${t.getByIndices("input_indices")};`,`value = max(value, ${t.getByIndices("input_indices")});`,""]})},_M=(e,r)=>{bs(e.inputs),vs(e,"ReduceMean",r,(t,s,o)=>{let a=1;for(let n=0;n<t.rank;n++)(o.indexOf(n)>=0||o.length===0)&&(a*=e.inputs[0].dims[n]);return["var sum = f32(0);","",`sum += f32(${t.getByIndices("input_indices")});`,`let value = ${s.type.value}(sum / ${a});`]})},pM=(e,r)=>{bs(e.inputs),vs(e,"ReduceMin",r,(t,s,o)=>{let a=[];for(let n=0;n<t.rank;n++)(o.indexOf(n)>=0||o.length===0)&&a.push(`input_indices[${n}] = 0;`);return[`${a.join(`
|
|
161
|
+
`)}`,`var value = ${t.getByIndices("input_indices")};`,`value = min(value, ${t.getByIndices("input_indices")});`,""]})},mM=(e,r)=>{bs(e.inputs),vs(e,"ReduceProd",r,(t,s)=>[`var value = ${s.type.storage}(1);`,"",`value *= ${t.getByIndices("input_indices")};`,""])},hM=(e,r)=>{bs(e.inputs),vs(e,"ReduceSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,""])},fM=(e,r)=>{bs(e.inputs),vs(e,"ReduceSumSquare",r,(t,s)=>[`var t = ${s.type.value}(0); var value = ${s.type.value}(0);`,"",`t = ${t.getByIndices("input_indices")}; value += t * t;`,""])},xs=(e,r,t)=>{if(r.length===0)return t;let s=1,o=1;for(let a=0;a<r.length;a++)r.indexOf(a)===-1?s*=e[a]:o*=e[a];return o<32&&s>1024},Gv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?_M(e,r):Ov(e,r)},Kv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?lM(e,r):Lv(e,r)},Hv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?cM(e,r):Bv(e,r)},qv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?dM(e,r):zv(e,r)},Qv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?uM(e,r):Rv(e,r)},Xv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?pM(e,r):Nv(e,r)},Jv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?mM(e,r):jv(e,r)},Yv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?hM(e,r):Vv(e,r)},Zv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?fM(e,r):Wv(e,r)},ex=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?iM(e,r):Uv(e,r)}}),Zc,tx,rx,Bd,TP=Ve(()=>{"use strict";Mt(),hr(),lu(),Zc=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.")},tx=(e,r)=>{Zc(e.inputs);let t=(s,o,a)=>{let n=[];for(let i=0;i<s.rank;i++)(a.indexOf(i)>=0||a.length===0)&&n.push(`input_indices[${i}] = 0;`);return[`${n.join(`
|
|
162
162
|
`)}`,`var value = ${s.getByIndices("input_indices")};
|
|
163
163
|
var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLastIndex>0?"<=":"<"} value) {
|
|
164
164
|
value = ${s.getByIndices("input_indices")};
|
|
165
165
|
best_index = i32(last_index);
|
|
166
|
-
}`,"",o.setByOffset("global_idx","best_index")]};e.compute(qi("ArgMin",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},
|
|
166
|
+
}`,"",o.setByOffset("global_idx","best_index")]};e.compute(qi("ArgMin",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},rx=(e,r)=>{Zc(e.inputs);let t=(s,o,a)=>{let n=[];for(let i=0;i<s.rank;i++)(a.indexOf(i)>=0||a.length===0)&&n.push(`input_indices[${i}] = 0;`);return[`${n.join(`
|
|
167
167
|
`)}`,`var value = ${s.getByIndices("input_indices")};
|
|
168
168
|
var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLastIndex>0?">=":">"} value) {
|
|
169
169
|
value = ${s.getByIndices("input_indices")};
|
|
170
170
|
best_index = i32(last_index);
|
|
171
|
-
}`,"",o.setByOffset("global_idx","best_index")]};e.compute(qi("argMax",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},Bd=e=>jt(e)}),
|
|
171
|
+
}`,"",o.setByOffset("global_idx","best_index")]};e.compute(qi("argMax",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},Bd=e=>jt(e)}),gM,Li,MM,wM,bM,hn,vM,sx,cu=Ve(()=>{"use strict";Mt(),kt(),nu(),Ct(),gM=(e,r)=>{let t=e[0],s=e[1],o=e[2],a=e[3],n=e[4],i=e[5];if(n&&i)throw new Error("Attention cannot have both past and attention_bias");if(t.dims.length!==3)throw new Error('Input "input" must have 3 dimensions');let l=t.dims[0],c=t.dims[1],_=t.dims[2];if(o.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimensions');if(s.dims.length!==2)throw new Error('Input "weights" is expected to have 2 dimensions');if(s.dims[0]!==_)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(o.dims[0]!==s.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let u=o.dims[0]/3,d=u,g=d;if(r.qkvHiddenSizes.length>0){if(r.qkvHiddenSizes.length!==3)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let C of r.qkvHiddenSizes)if(C%r.numHeads!==0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");u=r.qkvHiddenSizes[0],d=r.qkvHiddenSizes[1],g=r.qkvHiddenSizes[2]}let h=c;if(u!==d)throw new Error("qkv_hidden_sizes first element should be same as the second");if(o.dims[0]!==u+d+g)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let x=0;if(n){if(d!==g)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(n.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(n.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(n.dims[1]!==l)throw new Error('Input "past" second dimension must be batch_size');if(n.dims[2]!==r.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(n.dims[4]!==d/r.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');r.pastPresentShareBuffer||(x=n.dims[3])}let F=h+x,v=-1,b=0;if(a)throw new Error("Mask not supported");if(n)throw new Error("past is not supported");if(i){if(i.dims.length!==4)throw new Error('Input "attention_bias" must have 4 dimensions');if(i.dims[0]!==l||i.dims[1]!==r.numHeads||i.dims[2]!==c||i.dims[3]!==F)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:l,sequenceLength:c,pastSequenceLength:x,kvSequenceLength:h,totalSequenceLength:F,maxSequenceLength:v,inputHiddenSize:_,hiddenSize:u,vHiddenSize:g,headSize:Math.floor(u/r.numHeads),vHeadSize:Math.floor(g/r.numHeads),numHeads:r.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:r.maskFilterValue,maskType:b,scale:r.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},Li=(e,r,t)=>r&&e?`
|
|
172
172
|
let total_sequence_length_input = u32(${r.getByOffset("0")});
|
|
173
173
|
let present_sequence_length = max(total_sequence_length_input, uniforms.past_sequence_length);
|
|
174
174
|
let is_subsequent_prompt: bool = sequence_length > 1 && sequence_length != total_sequence_length_input;
|
|
@@ -181,7 +181,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
|
|
|
181
181
|
`:`
|
|
182
182
|
${t?"let past_sequence_length = uniforms.past_sequence_length":""};
|
|
183
183
|
let present_sequence_length = total_sequence_length;
|
|
184
|
-
`,
|
|
184
|
+
`,MM=(e,r,t,s,o,a,n,i)=>{let l=dr(n?1:a),c=64,_=a/l;_<c&&(c=32);let u=Math.ceil(a/l/c),d=[{type:12,data:r},{type:12,data:t},{type:12,data:s},{type:12,data:o},{type:12,data:_},{type:12,data:u}],g=$r(e.dataType,l),h=Ur(1,l),x=["type"];n&&x.push("type"),i&&x.push("type");let F=v=>{let b=it("x",e.dataType,e.dims,l),C=[b],y=n?Fe("seq_lens",n.dataType,n.dims):void 0;y&&C.push(y);let P=i?Fe("total_sequence_length_input",i.dataType,i.dims):void 0;P&&C.push(P);let I=Ur(e.dataType),f=[{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`
|
|
185
185
|
var<workgroup> thread_max: array<f32, ${c}>;
|
|
186
186
|
var<workgroup> thread_sum: array<f32, ${c}>;
|
|
187
187
|
${v.registerUniforms(f).declareVariables(...C)}
|
|
@@ -232,7 +232,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
|
|
|
232
232
|
for (var total_seq_id: u32 = seq_causal_length; total_seq_id + local_offset < uniforms.total_sequence_length; total_seq_id++) {
|
|
233
233
|
x[offset + total_seq_id] = ${b.type.value}(${I}(0));
|
|
234
234
|
}`:""};
|
|
235
|
-
}`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${c};${g};${l}`,inputDependencies:x},getShaderSource:F,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:o,z:r*t},programUniforms:d})}},
|
|
235
|
+
}`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${c};${g};${l}`,inputDependencies:x},getShaderSource:F,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:o,z:r*t},programUniforms:d})}},wM=(e,r,t,s,o,a,n,i,l)=>{let c=n+a.kvSequenceLength,_=[a.batchSize,a.numHeads,a.sequenceLength,c],u=e>1&&s,d=a.kvNumHeads?a.kvNumHeads:a.numHeads,g=u?[a.batchSize,d,c,a.headSize]:void 0,h=a.nReps?a.nReps:1,x=a.scale===0?1/Math.sqrt(a.headSize):a.scale,F=dr(a.headSize),v=a.headSize/F,b=12,C={x:Math.ceil(c/b),y:Math.ceil(a.sequenceLength/b),z:a.batchSize*a.numHeads},y=[{type:12,data:a.sequenceLength},{type:12,data:v},{type:12,data:c},{type:12,data:a.numHeads},{type:12,data:a.headSize},{type:1,data:x},{type:12,data:n},{type:12,data:a.kvSequenceLength},{type:12,data:h}],P=u&&s&&Me.size(s.dims)>0,I=["type","type"];P&&I.push("type"),o&&I.push("type"),i&&I.push("type"),l&&I.push("type");let f=[{dims:_,dataType:r.dataType,gpuDataType:0}];u&&f.push({dims:g,dataType:r.dataType,gpuDataType:0});let E=D=>{let O=Fe("q",r.dataType,r.dims,F),U=Fe("key",t.dataType,t.dims,F),W=[O,U];if(P){let ne=Fe("past_key",s.dataType,s.dims,F);W.push(ne)}o&&W.push(Fe("attention_bias",o.dataType,o.dims));let z=i?Fe("seq_lens",i.dataType,i.dims):void 0;z&&W.push(z);let X=l?Fe("total_sequence_length_input",l.dataType,l.dims):void 0;X&&W.push(X);let J=it("output",r.dataType,_),q=[J];u&&q.push(it("present_key",r.dataType,g,F));let re=Ur(1,F),oe=[{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`
|
|
236
236
|
const TILE_SIZE = ${b}u;
|
|
237
237
|
|
|
238
238
|
var<workgroup> tileQ: array<${O.type.storage}, ${b*b}>;
|
|
@@ -289,7 +289,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
|
|
|
289
289
|
var sum: f32 = ${(()=>{switch(F){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: ${F}`)}})()};
|
|
290
290
|
output[outputIdx] = ${J.type.value} (sum * uniforms.alpha) + ${o?"attention_bias[outputIdx]":"0.0"};
|
|
291
291
|
}
|
|
292
|
-
}`};return{name:"AttentionProbs",shaderCache:{hint:`${F};${o!==void 0};${s!==void 0};${e}`,inputDependencies:I},getRunData:()=>({outputs:f,dispatchGroup:C,programUniforms:y}),getShaderSource:E}},
|
|
292
|
+
}`};return{name:"AttentionProbs",shaderCache:{hint:`${F};${o!==void 0};${s!==void 0};${e}`,inputDependencies:I},getRunData:()=>({outputs:f,dispatchGroup:C,programUniforms:y}),getShaderSource:E}},bM=(e,r,t,s,o,a,n=void 0,i=void 0)=>{let l=a+o.kvSequenceLength,c=o.nReps?o.nReps:1,_=o.vHiddenSize*c,u=e>1&&s,d=o.kvNumHeads?o.kvNumHeads:o.numHeads,g=u?[o.batchSize,d,l,o.headSize]:void 0,h=[o.batchSize,o.sequenceLength,_],x=12,F={x:Math.ceil(o.vHeadSize/x),y:Math.ceil(o.sequenceLength/x),z:o.batchSize*o.numHeads},v=[{type:12,data:o.sequenceLength},{type:12,data:l},{type:12,data:o.vHeadSize},{type:12,data:o.numHeads},{type:12,data:o.headSize},{type:12,data:_},{type:12,data:a},{type:12,data:o.kvSequenceLength},{type:12,data:c}],b=u&&s&&Me.size(s.dims)>0,C=["type","type"];b&&C.push("type"),n&&C.push("type"),i&&C.push("type");let y=[{dims:h,dataType:r.dataType,gpuDataType:0}];u&&y.push({dims:g,dataType:r.dataType,gpuDataType:0});let P=I=>{let f=Fe("probs",r.dataType,r.dims),E=Fe("v",t.dataType,t.dims),D=[f,E];b&&D.push(Fe("past_value",s.dataType,s.dims));let O=n?Fe("seq_lens",n.dataType,n.dims):void 0;n&&D.push(O);let U=i?Fe("total_sequence_length_input",i.dataType,i.dims):void 0;i&&D.push(U);let W=[it("output",r.dataType,h)];u&&W.push(it("present_value",r.dataType,g));let z=[{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`
|
|
293
293
|
const TILE_SIZE = ${x}u;
|
|
294
294
|
var<workgroup> tileQ: array<${f.type.value}, ${x*x}>;
|
|
295
295
|
var<workgroup> tileV: array<${f.type.value}, ${x*x}>;
|
|
@@ -344,7 +344,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
|
|
|
344
344
|
+ headIdx * uniforms.N + n;
|
|
345
345
|
output[outputIdx] = value;
|
|
346
346
|
}
|
|
347
|
-
}`};return{name:"AttentionScore",shaderCache:{hint:`${s!==void 0};${e}`,inputDependencies:C},getRunData:()=>({outputs:y,dispatchGroup:F,programUniforms:v}),getShaderSource:P}},
|
|
347
|
+
}`};return{name:"AttentionScore",shaderCache:{hint:`${s!==void 0};${e}`,inputDependencies:C},getRunData:()=>({outputs:y,dispatchGroup:F,programUniforms:v}),getShaderSource:P}},hn=(e,r,t,s,o,a,n,i,l,c,_=void 0,u=void 0)=>{let d=Math.min(e.outputCount,1+(n?1:0)+(i?1:0)),g=d>1?c.pastSequenceLength:0,h=g+c.kvSequenceLength,x=l&&Me.size(l.dims)>0?l:void 0,F=[r,t];d>1&&n&&Me.size(n.dims)>0&&F.push(n),x&&F.push(x),_&&F.push(_),u&&F.push(u);let v=e.compute(wM(d,r,t,n,x,c,g,_,u),{inputs:F,outputs:d>1?[-1,1]:[-1]})[0];e.compute(MM(v,c.batchSize,c.numHeads,g,c.sequenceLength,h,_,u),{inputs:_&&u?[v,_,u]:[v],outputs:[]});let b=[v,s];d>1&&i&&Me.size(i.dims)>0&&b.push(i),_&&b.push(_),u&&b.push(u),e.compute(bM(d,v,s,i,c,g,_,u),{inputs:b,outputs:d>1?[0,2]:[0]})},vM=(e,r)=>{let t=[r.batchSize,r.numHeads,r.sequenceLength,r.headSize],s=r.sequenceLength,o=r.inputHiddenSize,a=r.headSize,n=12,i={x:Math.ceil(r.headSize/n),y:Math.ceil(r.sequenceLength/n),z:r.batchSize*r.numHeads},l=[e.inputs[0],e.inputs[1],e.inputs[2]],c=[{type:12,data:s},{type:12,data:o},{type:12,data:a},{type:12,data:r.numHeads},{type:12,data:r.headSize},{type:12,data:r.hiddenSize},{type:12,data:r.hiddenSize+r.hiddenSize+r.vHiddenSize}],_=u=>{let d=it("output_q",l[0].dataType,t),g=it("output_k",l[0].dataType,t),h=it("output_v",l[0].dataType,t),x=Fe("input",l[0].dataType,l[0].dims),F=Fe("weight",l[1].dataType,l[1].dims),v=Fe("bias",l[2].dataType,l[2].dims),b=x.type.storage,C=[{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`
|
|
348
348
|
const TILE_SIZE = ${n}u;
|
|
349
349
|
var<workgroup> tileInput: array<${b}, ${n*n}>;
|
|
350
350
|
var<workgroup> tileWeightQ: array<${b}, ${n*n}>;
|
|
@@ -399,7 +399,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
|
|
|
399
399
|
output_k[outputIdx] = valueK;
|
|
400
400
|
output_v[outputIdx] = valueV;
|
|
401
401
|
}
|
|
402
|
-
}`};return e.compute({name:"AttentionPrepare",shaderCache:{inputDependencies:["type","type","type"]},getRunData:()=>({outputs:[{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0}],dispatchGroup:i,programUniforms:c}),getShaderSource:_},{inputs:l,outputs:[-1,-1,-1]})},
|
|
402
|
+
}`};return e.compute({name:"AttentionPrepare",shaderCache:{inputDependencies:["type","type","type"]},getRunData:()=>({outputs:[{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0}],dispatchGroup:i,programUniforms:c}),getShaderSource:_},{inputs:l,outputs:[-1,-1,-1]})},sx=(e,r)=>{let t=gM(e.inputs,r),[s,o,a]=vM(e,t);return hn(e,s,o,a,e.inputs[4],void 0,void 0,void 0,e.inputs[5],t)}}),xM,yM,TM,ox,PP=Ve(()=>{"use strict";ks(),Mt(),kt(),hr(),Ct(),xM=(e,r)=>{if(!e||e.length!==5)throw new Error("BatchNormalization requires 5 inputs");let t=(s,o,a)=>{let n=o.length;if(n!==s.length)throw new Error(`${a}: num dimensions != ${n}`);o.forEach((i,l)=>{if(i!==s[l])throw new Error(`${a}: dim[${l}] do not match`)})};if(e[0].dims.length>1){let s=r.format==="NHWC"?r.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,r.spatial?2:void 0);t(e[1].dims,s,"Invalid input scale"),t(e[2].dims,s,"Invalid input B"),t(e[3].dims,s,"Invalid input mean"),t(e[4].dims,s,"Invalid input var")}else t(e[1].dims,[1],"Invalid input scale"),t(e[2].dims,[1],"Invalid input B"),t(e[3].dims,[1],"Invalid input mean"),t(e[4].dims,[1],"Invalid input var")},yM=(e,r)=>{let{epsilon:t,spatial:s,format:o}=r,a=e[0].dims,n=s?dr(a[a.length-1]):1,i=o==="NHWC"&&a.length>1?n:1,l=Me.size(a)/n,c=s,_=c?a.length:a,u=Fe("x",e[0].dataType,e[0].dims,n),d=Fe("scale",e[1].dataType,e[1].dims,i),g=Fe("bias",e[2].dataType,e[2].dims,i),h=Fe("inputMean",e[3].dataType,e[3].dims,i),x=Fe("inputVar",e[4].dataType,e[4].dims,i),F=it("y",e[0].dataType,_,n),v=()=>{let C="";if(s)C=`let cOffset = ${a.length===1?"0u":o==="NHWC"?`outputIndices[${a.length-1}] / ${n}`:"outputIndices[1]"};`;else if(o==="NCHW")C=`
|
|
403
403
|
${F.indicesSet("outputIndices","0","0")}
|
|
404
404
|
let cOffset = ${F.indicesToOffset("outputIndices")};`;else{C=`var cIndices = ${d.type.indices}(0);
|
|
405
405
|
cIndices[0] = outputIndices[${a.length-1}];`;for(let y=1;y<d.rank;y++)C+=`cIndices[${y}] = outputIndices[${y}];`;C+=`let cOffset = ${d.indicesToOffset("cIndices")};`}return C},b=C=>`
|
|
@@ -416,7 +416,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
|
|
|
416
416
|
let x = ${u.getByOffset("global_idx")};
|
|
417
417
|
let value = (x - inputMean) * inverseSqrt(inputVar + epsilon) * scale + bias;
|
|
418
418
|
${F.setByOffset("global_idx","value")}
|
|
419
|
-
}`;return{name:"BatchNormalization",shaderCache:{hint:`${r.epsilon}_${r.format}_${s}_${n}`,inputDependencies:c?["rank","type","type","type","type"]:void 0},getShaderSource:b,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c?[{type:12,data:l},...dt(a)]:[{type:12,data:l}]})}},
|
|
419
|
+
}`;return{name:"BatchNormalization",shaderCache:{hint:`${r.epsilon}_${r.format}_${s}_${n}`,inputDependencies:c?["rank","type","type","type","type"]:void 0},getShaderSource:b,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c?[{type:12,data:l},...dt(a)]:[{type:12,data:l}]})}},TM=e=>jt(e),ox=(e,r)=>{let{inputs:t,outputCount:s}=e,o=TM({...r,outputCount:s});if(Zt.webgpu.validateInputContent&&xM(t,o),r.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");e.compute(yM(t,o))}}),PM,EM,ax,EP=Ve(()=>{"use strict";kt(),Ct(),PM=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")},EM=e=>{let r=e[0].dims,t=e[0].dims[2],s=Me.size(r)/4,o=e[0].dataType,a=Fe("input",o,r,4),n=Fe("bias",o,[t],4),i=Fe("residual",o,r,4),l=it("output",o,r,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(s/64)}}),getShaderSource:c=>`
|
|
420
420
|
const channels = ${t}u / 4;
|
|
421
421
|
${c.declareVariables(a,n,i,l)}
|
|
422
422
|
|
|
@@ -425,7 +425,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
|
|
|
425
425
|
let value = ${a.getByOffset("global_idx")}
|
|
426
426
|
+ ${n.getByOffset("global_idx % channels")} + ${i.getByOffset("global_idx")};
|
|
427
427
|
${l.setByOffset("global_idx","value")}
|
|
428
|
-
}`}},
|
|
428
|
+
}`}},ax=e=>{PM(e.inputs),e.compute(EM(e.inputs))}}),kM,Rt,nx,ix,lx,cx,dx,ux,_x,px,mx,CM,hx,fx,gx,Mx,dn,wx,Ui,bx,vx,xx,yx,Tx,Px,Ex,kx,Cx,Sx,Fx,Ix,Ax,$x,Dx,Ox,ed,Lx,zd,Rd,Bx,zx,Rx,SM,FM,Nx,du=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),kM=(e,r,t,s,o,a,n)=>{let i=Math.ceil(r/4),l="";typeof o=="string"?l=`${o}(a)`:l=o("a");let c=Fe("inputData",t,[i],4),_=it("outputData",s,[i],4),u=[{name:"vec_size",type:"u32"}];return n&&u.push(...n),`
|
|
429
429
|
${e.registerUniforms(u).declareVariables(c,_)}
|
|
430
430
|
|
|
431
431
|
${a??""}
|
|
@@ -435,7 +435,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
|
|
|
435
435
|
|
|
436
436
|
let a = ${c.getByOffset("global_idx")};
|
|
437
437
|
${_.setByOffset("global_idx",l)}
|
|
438
|
-
}`},Rt=(e,r,t,s,o,a=e.dataType,n,i)=>{let l=[{type:12,data:Math.ceil(Me.size(e.dims)/4)}];return n&&l.push(...n),{name:r,shaderCache:{hint:o,inputDependencies:["type"]},getShaderSource:c=>
|
|
438
|
+
}`},Rt=(e,r,t,s,o,a=e.dataType,n,i)=>{let l=[{type:12,data:Math.ceil(Me.size(e.dims)/4)}];return n&&l.push(...n),{name:r,shaderCache:{hint:o,inputDependencies:["type"]},getShaderSource:c=>kM(c,Me.size(e.dims),e.dataType,a,t,s,i),getRunData:c=>({outputs:[{dims:e.dims,dataType:a}],dispatchGroup:{x:Math.ceil(Me.size(c[0].dims)/64/4)},programUniforms:l})}},nx=e=>{e.compute(Rt(e.inputs[0],"Abs","abs"))},ix=e=>{e.compute(Rt(e.inputs[0],"Acos","acos"))},lx=e=>{e.compute(Rt(e.inputs[0],"Acosh","acosh"))},cx=e=>{e.compute(Rt(e.inputs[0],"Asin","asin"))},dx=e=>{e.compute(Rt(e.inputs[0],"Asinh","asinh"))},ux=e=>{e.compute(Rt(e.inputs[0],"Atan","atan"))},_x=e=>{e.compute(Rt(e.inputs[0],"Atanh","atanh"))},px=e=>jt(e),mx=(e,r)=>{let t;switch(r.to){case 10:t="vec4<f16>";break;case 1:t="vec4<f32>";break;case 12:t="vec4<u32>";break;case 6:t="vec4<i32>";break;case 9:t="vec4<bool>";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${r.to}`)}e.compute(Rt(e.inputs[0],"Cast",t,void 0,r.cacheKey,r.to))},CM=e=>{let r,t,s=e.length>=2&&e[1].data!==0,o=e.length>=3&&e[2].data!==0;switch(e[0].dataType){case 1:r=s?e[1].getFloat32Array()[0]:-34028234663852886e22,t=o?e[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:r=s?e[1].getUint16Array()[0]:64511,t=o?e[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return jt({min:r,max:t})},hx=(e,r)=>{let t=r||CM(e.inputs),s=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Clip",o=>`clamp(${o}, vec4<${s}>(uniforms.min), vec4<${s}>(uniforms.max))`,void 0,t.cacheKey,void 0,[{type:e.inputs[0].dataType,data:t.min},{type:e.inputs[0].dataType,data:t.max}],[{name:"min",type:s},{name:"max",type:s}]),{inputs:[0]})},fx=e=>{e.compute(Rt(e.inputs[0],"Ceil","ceil"))},gx=e=>{e.compute(Rt(e.inputs[0],"Cos","cos"))},Mx=e=>{e.compute(Rt(e.inputs[0],"Cosh","cosh"))},dn=e=>jt(e),wx=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Elu",s=>`elu_vf32(${s})`,`
|
|
439
439
|
const elu_alpha_ = ${t}(${r.alpha});
|
|
440
440
|
|
|
441
441
|
fn elu_f32(a: ${t}) -> ${t} {
|
|
@@ -456,7 +456,7 @@ fn erf_vf32(v: vec4<${e}>) -> vec4<${e}> {
|
|
|
456
456
|
let absv = abs(v);
|
|
457
457
|
let x = 1.0 / (1.0 + r0 * absv);
|
|
458
458
|
return sign(v) * (1.0 - ((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x * exp(-absv * absv));
|
|
459
|
-
}`,
|
|
459
|
+
}`,bx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Erf",t=>`erf_vf32(${t})`,Ui(r)))},vx=e=>{e.compute(Rt(e.inputs[0],"Exp","exp"))},xx=e=>{e.compute(Rt(e.inputs[0],"Floor","floor"))},yx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Gelu",t=>`0.5 * ${t} * (1.0 + erf_vf32(${t} * 0.7071067811865475))`,Ui(r)))},Tx=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"LeakyRelu",s=>`select(leaky_relu_alpha_ * ${s}, ${s}, ${s} >= vec4<${t}>(0.0))`,`const leaky_relu_alpha_ = ${t}(${r.alpha});`,r.cacheKey))},Px=e=>{e.compute(Rt(e.inputs[0],"Not",r=>`!${r}`))},Ex=e=>{e.compute(Rt(e.inputs[0],"Neg",r=>`-${r}`))},kx=e=>{e.compute(Rt(e.inputs[0],"Reciprocal",r=>`1.0/${r}`))},Cx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Relu",t=>`select(vec4<${r}>(0.0), ${t}, ${t} > vec4<${r}>(0.0))`))},Sx=e=>{e.compute(Rt(e.inputs[0],"Sigmoid",r=>`(1.0 / (1.0 + exp(-${r})))`))},Fx=e=>jt(e),Ix=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"HardSigmoid",s=>`max(vec4<${t}>(0.0), min(vec4<${t}>(1.0), ${r.alpha} * ${s} + vec4<${t}>(${r.beta})))`,void 0,r.cacheKey))},Ax=e=>{e.compute(Rt(e.inputs[0],"Sin","sin"))},$x=e=>{e.compute(Rt(e.inputs[0],"Sinh","sinh"))},Dx=e=>{e.compute(Rt(e.inputs[0],"Sqrt","sqrt"))},Ox=e=>{e.compute(Rt(e.inputs[0],"Tan","tan"))},ed=e=>`sign(${e}) * (1 - exp(-2 * abs(${e}))) / (1 + exp(-2 * abs(${e})))`,Lx=e=>{e.compute(Rt(e.inputs[0],"Tanh",ed))},zd=(e="f32")=>`
|
|
460
460
|
const fast_gelu_a: ${e} = 0.5;
|
|
461
461
|
const fast_gelu_b: ${e} = 0.7978845608028654;
|
|
462
462
|
const fast_gelu_c: ${e} = 0.035677408136300125;
|
|
@@ -464,7 +464,7 @@ const fast_gelu_c: ${e} = 0.035677408136300125;
|
|
|
464
464
|
fn tanh_v(v: vec4<${e}>) -> vec4<${e}> {
|
|
465
465
|
return ${ed("v")};
|
|
466
466
|
}
|
|
467
|
-
`,Rd=e=>`(fast_gelu_a + fast_gelu_a * tanh_v(${e} * (fast_gelu_c * ${e} * ${e} + fast_gelu_b))) * ${e}`,
|
|
467
|
+
`,Rd=e=>`(fast_gelu_a + fast_gelu_a * tanh_v(${e} * (fast_gelu_c * ${e} * ${e} + fast_gelu_b))) * ${e}`,Bx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"FastGelu",Rd,zd(r),void 0,e.inputs[0].dataType))},zx=(e,r)=>{let t=Ur(e.inputs[0].dataType);return e.compute(Rt(e.inputs[0],"ThresholdedRelu",s=>`select(vec4<${t}>(0.0), ${s}, ${s} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${t}>(${r.alpha});`,r.cacheKey)),0},Rx=e=>{e.compute(Rt(e.inputs[0],"Log","log"))},SM=(e,r)=>`
|
|
468
468
|
const alpha = vec4<${e}>(${r});
|
|
469
469
|
const one = ${e}(1.0);
|
|
470
470
|
const zero = ${e}(0.0);
|
|
@@ -481,7 +481,7 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
|
|
|
481
481
|
}
|
|
482
482
|
return x * x1;
|
|
483
483
|
}
|
|
484
|
-
`,
|
|
484
|
+
`,FM=e=>`quick_gelu_impl(${e})`,Nx=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"QuickGelu",FM,SM(t,r.alpha),r.cacheKey,e.inputs[0].dataType))}}),IM,AM,jx,kP=Ve(()=>{"use strict";kt(),Ct(),du(),IM=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")},AM=e=>{let r=e[0].dims.slice();r[2]=r[2]/2;let t=Fe("input",e[0].dataType,e[0].dims,4),s=Fe("bias",e[0].dataType,[e[0].dims[2]],4),o=it("output",e[0].dataType,r,4),a=Me.size(r)/4,n=$r(e[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)}}),getShaderSource:i=>`
|
|
485
485
|
const M_SQRT2 = sqrt(2.0);
|
|
486
486
|
const halfChannels = ${e[0].dims[2]/4/2}u;
|
|
487
487
|
|
|
@@ -499,7 +499,7 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
|
|
|
499
499
|
let geluRight = valueRight * 0.5 * (erf_vf32(valueRight / M_SQRT2) + 1);
|
|
500
500
|
|
|
501
501
|
${o.setByOffset("global_idx","valueLeft * geluRight")}
|
|
502
|
-
}`}},
|
|
502
|
+
}`}},jx=e=>{IM(e.inputs),e.compute(AM(e.inputs))}}),$M,DM,ys,Vx,Wx,Ux,Gx,Kx,Hx,qx,Qx,Xx,Jx,CP=Ve(()=>{"use strict";Mt(),kt(),Ct(),$M=(e,r,t,s,o,a,n,i,l,c,_,u)=>{let d,g;typeof i=="string"?d=g=(b,C)=>`${i}((${b}),(${C}))`:typeof i=="function"?d=g=i:(d=i.scalar,g=i.vector);let h=it("outputData",_,s.length,4),x=Fe("aData",l,r.length,4),F=Fe("bData",c,t.length,4),v;if(o)if(a){let b=Me.size(r)===1,C=Me.size(t)===1,y=r.length>0&&r[r.length-1]%4===0,P=t.length>0&&t[t.length-1]%4===0;b||C?v=h.setByOffset("global_idx",g(b?`${x.type.value}(${x.getByOffset("0")}.x)`:x.getByOffset("global_idx"),C?`${F.type.value}(${F.getByOffset("0")}.x)`:F.getByOffset("global_idx"))):v=`
|
|
503
503
|
let outputIndices = ${h.offsetToIndices("global_idx * 4u")};
|
|
504
504
|
let offsetA = ${x.broadcastedIndicesToOffset("outputIndices",h)};
|
|
505
505
|
let offsetB = ${F.broadcastedIndicesToOffset("outputIndices",h)};
|
|
@@ -532,7 +532,7 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
|
|
|
532
532
|
${e.mainStart()}
|
|
533
533
|
${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}
|
|
534
534
|
${v}
|
|
535
|
-
}`}
|
|
535
|
+
}`},DM=(e,r,t,s,o,a,n=t.dataType)=>{let i=t.dims.map(x=>Number(x)??1),l=s.dims.map(x=>Number(x)??1),c=!Me.areEqual(i,l),_=i,u=Me.size(i),d=!1,g=!1,h=[c];if(c){let x=ma.calcShape(i,l,!1);if(!x)throw new Error("Can't perform binary op on the given tensors");_=x.slice(),u=Me.size(_);let F=Me.size(i)===1,v=Me.size(l)===1,b=i.length>0&&i[i.length-1]%4===0,C=l.length>0&&l[l.length-1]%4===0;h.push(F),h.push(v),h.push(b),h.push(C);let y=1;for(let P=1;P<_.length;P++){let I=i[i.length-P],f=l[l.length-P];if(I===f)y*=I;else break}y%4===0?(g=!0,d=!0):(F||v||b||C)&&(d=!0)}else d=!0;return h.push(d),{name:e,shaderCache:{hint:r+h.map(x=>x.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:x=>$M(x,i,l,_,d,c,g,o,t.dataType,s.dataType,n,a),getRunData:()=>({outputs:[{dims:_,dataType:n}],dispatchGroup:{x:Math.ceil(u/64/4)},programUniforms:[{type:12,data:Math.ceil(Me.size(_)/4)},...dt(i,l,_)]})}},ys=(e,r,t,s,o,a)=>{e.compute(DM(r,o??"",e.inputs[0],e.inputs[1],t,s,a))},Vx=e=>{ys(e,"Add",(r,t)=>`${r}+${t}`)},Wx=e=>{ys(e,"Div",(r,t)=>`${r}/${t}`)},Ux=e=>{ys(e,"Equal",{scalar:(r,t)=>`u32(${r}==${t})`,vector:(r,t)=>`vec4<u32>(${r}==${t})`},void 0,void 0,9)},Gx=e=>{ys(e,"Mul",(r,t)=>`${r}*${t}`)},Kx=e=>{let r=Fe("input",e.inputs[0].dataType,e.inputs[0].dims).type.value;ys(e,"Pow",{scalar:(t,s)=>`pow_custom(${t},${s})`,vector:(t,s)=>`pow_vector_custom(${t},${s})`},`
|
|
536
536
|
fn pow_custom(a : ${r}, b : ${r}) -> ${r} {
|
|
537
537
|
if (b == ${r}(0.0)) {
|
|
538
538
|
return ${r}(1.0);
|
|
@@ -545,7 +545,7 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
|
|
|
545
545
|
// TODO: implement vectorized pow
|
|
546
546
|
return vec4<${r}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w));
|
|
547
547
|
}
|
|
548
|
-
`)},
|
|
548
|
+
`)},Hx=e=>{ys(e,"Sub",(r,t)=>`${r}-${t}`)},qx=e=>{ys(e,"Greater",{scalar:(r,t)=>`u32(${r}>${t})`,vector:(r,t)=>`vec4<u32>(${r}>${t})`},void 0,void 0,9)},Qx=e=>{ys(e,"Less",{scalar:(r,t)=>`u32(${r}<${t})`,vector:(r,t)=>`vec4<u32>(${r}<${t})`},void 0,void 0,9)},Xx=e=>{ys(e,"GreaterOrEqual",{scalar:(r,t)=>`u32(${r}>=${t})`,vector:(r,t)=>`vec4<u32>(${r}>=${t})`},void 0,void 0,9)},Jx=e=>{ys(e,"LessOrEqual",{scalar:(r,t)=>`u32(${r}<=${t})`,vector:(r,t)=>`vec4<u32>(${r}<=${t})`},void 0,void 0,9)}}),OM,LM,BM,zM,Yx,Zx,SP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),OM=(e,r)=>{if(!e||e.length<1)throw new Error("too few inputs");let t=0,s=e[t],o=s.dataType,a=s.dims.length;e.forEach((n,i)=>{if(i!==t){if(n.dataType!==o)throw new Error("input tensors should be one type");if(n.dims.length!==a)throw new Error("input tensors should have the same shape");n.dims.forEach((l,c)=>{if(c!==r&&l!==s.dims[c])throw new Error("non concat dimensions must match")})}})},LM=(e,r)=>`
|
|
549
549
|
fn calculateInputIndex(index: u32) -> u32 {
|
|
550
550
|
let sizeInConcatAxis = array<u32, ${e}u>(${r});
|
|
551
551
|
for (var i: u32 = 0u; i < ${e}; i += 1u ) {
|
|
@@ -554,12 +554,12 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
|
|
|
554
554
|
}
|
|
555
555
|
}
|
|
556
556
|
return ${e}u;
|
|
557
|
-
}`,
|
|
558
|
-
`)},
|
|
557
|
+
}`,BM=(e,r)=>{let t=e.length,s=[];for(let o=0;o<t;++o){let a=r.setByOffset("global_idx",e[o].getByIndices("indices"));t===1?s.push(a):o===0?s.push(`if (inputIndex == ${o}u) { ${a} }`):o===t-1?s.push(`else { ${a} }`):s.push(`else if (inputIndex == ${o}) { ${a} }`)}return s.join(`
|
|
558
|
+
`)},zM=(e,r,t,s)=>{let o=Me.size(t),a=new Array(e.length),n=new Array(e.length),i=0,l=[],c=[],_=[{type:12,data:o}];for(let x=0;x<e.length;++x)i+=e[x].dims[r],a[x]=i,c.push(e[x].dims.length),n[x]=Fe(`input${x}`,s,c[x]),l.push("rank"),_.push({type:12,data:a[x]});for(let x=0;x<e.length;++x)_.push(...dt(e[x].dims));_.push(...dt(t));let u=it("output",s,t.length),d=u.indicesGet("indices",r),g=Array.from(Array(a.length).keys()).map(x=>`uniforms.sizeInConcatAxis${x}`).join(","),h=x=>`
|
|
559
559
|
|
|
560
560
|
${(()=>{x.registerUniform("outputSize","u32");for(let F=0;F<e.length;F++)x.registerUniform(`sizeInConcatAxis${F}`,"u32");return x.declareVariables(...n,u)})()}
|
|
561
561
|
|
|
562
|
-
${
|
|
562
|
+
${LM(a.length,g)}
|
|
563
563
|
|
|
564
564
|
${x.mainStart()}
|
|
565
565
|
${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
|
|
@@ -572,12 +572,12 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
|
|
|
572
572
|
${d} -= sizeInConcatAxis[inputIndex - 1u];
|
|
573
573
|
}
|
|
574
574
|
|
|
575
|
-
${
|
|
576
|
-
}`;return{name:"Concat",shaderCache:{hint:`${r}`,inputDependencies:l},getRunData:()=>({outputs:[{dims:t,dataType:s}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:_}),getShaderSource:h}},
|
|
575
|
+
${BM(n,u)}
|
|
576
|
+
}`;return{name:"Concat",shaderCache:{hint:`${r}`,inputDependencies:l},getRunData:()=>({outputs:[{dims:t,dataType:s}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:_}),getShaderSource:h}},Yx=(e,r)=>{let t=e.inputs,s=t[0].dims,o=Me.normalizeAxis(r.axis,s.length);OM(t,o);let a=s.slice();a[o]=t.reduce((i,l)=>i+(l.dims.length>o?l.dims[o]:0),0);let n=t.filter(i=>Me.size(i.dims)>0);e.compute(zM(n,o,a,t[0].dataType),{inputs:n})},Zx=e=>jt({axis:e.axis})}),Ro,No,jo,uu,Wo=Ve(()=>{"use strict";Mt(),kt(),Ro=(e,r,t="f32")=>{switch(e.activation){case"Relu":return`value = max(value, ${r}(0.0));`;case"Sigmoid":return`value = (${r}(1.0) / (${r}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${r}(${t}(uniforms.clip_min)), ${r}(${t}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${r}(0.0), min(${r}(1.0), ${t}(uniforms.alpha) * value + ${t}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${t}(uniforms.alpha) * value, value, value >= ${r}(0.0));`;case"Tanh":return`let e2x = exp(-2.0 * abs(value));
|
|
577
577
|
value = sign(value) * (1.0 - e2x) / (1.0 + e2x);
|
|
578
|
-
`;case"":return"";default:throw new Error(`Unsupported activation ${e.activation}`)}},
|
|
578
|
+
`;case"":return"";default:throw new Error(`Unsupported activation ${e.activation}`)}},No=(e,r)=>{e.activation==="Clip"?r.push({type:1,data:e.clipMax},{type:1,data:e.clipMin}):e.activation==="HardSigmoid"?r.push({type:1,data:e.alpha},{type:1,data:e.beta}):e.activation==="LeakyRelu"&&r.push({type:1,data:e.alpha})},jo=(e,r)=>{e.activation==="Clip"?r.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):e.activation==="HardSigmoid"?r.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):e.activation==="LeakyRelu"&&r.push({name:"alpha",type:"f32"})},uu=e=>{let r=e?.activation||"";if(r==="HardSigmoid"){let[t,s]=e?.activation_params||[.2,.5];return{activation:r,alpha:t,beta:s}}else if(r==="Clip"){let[t,s]=e?.activation_params||[Pv,Ev];return{activation:r,clipMax:s,clipMin:t}}else if(r==="LeakyRelu"){let[t]=e?.activation_params||[.01];return{activation:r,alpha:t}}return{activation:r}}}),Rr,ey,_u=Ve(()=>{"use strict";Rr=(e,r)=>{switch(e){case 1:return r;case 2:return`vec2<${r}>`;case 3:return`vec3<${r}>`;case 4:return`vec4<${r}>`;default:throw new Error(`${e}-component is not supported.`)}},ey=e=>`
|
|
579
579
|
${e?"value = value + getBiasByOutputCoords(coords);":""}
|
|
580
|
-
`}),
|
|
580
|
+
`}),ty,FP=Ve(()=>{"use strict";ty=e=>`
|
|
581
581
|
fn getIndexFromCoords4D(coords : vec4<i32>, shape : vec4<i32>) -> i32 {
|
|
582
582
|
return dot(coords, vec4<i32>(
|
|
583
583
|
shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1));
|
|
@@ -586,14 +586,14 @@ fn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {
|
|
|
586
586
|
return dot(coords, vec4<i32>(
|
|
587
587
|
i32(${e}.x), i32(${e}.y), i32(${e}.z), 1));
|
|
588
588
|
}
|
|
589
|
-
`}),
|
|
589
|
+
`}),_n,pu,mu=Ve(()=>{"use strict";Mt(),kt(),Ct(),Wo(),_n=(e,r,t,s,o)=>{let a=s-t;return`
|
|
590
590
|
${Array.from({length:t}).map((n,i)=>`
|
|
591
591
|
if (${lt(r.shape,i,r.rank)} != 1) {
|
|
592
592
|
${r.indicesSet(e,i,lt(o,i+a,s))}
|
|
593
593
|
} else {
|
|
594
594
|
${r.indicesSet(e,i,0)}
|
|
595
595
|
}`).join("")}
|
|
596
|
-
`},pu=(e,r,t,s,o=!1,a)=>{let n=e[0].dims,i=e[1].dims,l=n[n.length-2],c=i[i.length-1],_=n[n.length-1],u=dr(c),d=dr(_),g=dr(l),h=Me.size(t)/u/g,x=e.length>2,F=s?s.slice(0,-2):t.slice(0,-2),v=[Me.size(F),l,c],b=[{type:12,data:h},{type:12,data:l},{type:12,data:c},{type:12,data:_}];
|
|
596
|
+
`},pu=(e,r,t,s,o=!1,a)=>{let n=e[0].dims,i=e[1].dims,l=n[n.length-2],c=i[i.length-1],_=n[n.length-1],u=dr(c),d=dr(_),g=dr(l),h=Me.size(t)/u/g,x=e.length>2,F=s?s.slice(0,-2):t.slice(0,-2),v=[Me.size(F),l,c],b=[{type:12,data:h},{type:12,data:l},{type:12,data:c},{type:12,data:_}];No(r,b),b.push(...dt(F,n,i)),x&&b.push(...dt(e[2].dims)),b.push(...dt(v));let C=y=>{let P=iu("batch_dims",e[0].dataType,F.length),I=Fe("a",e[0].dataType,n.length,d),f=Fe("b",e[1].dataType,i.length,u),E=it("output",e[0].dataType,v.length,u),D=$r(E.type.tensor),O=Ro(r,E.type.value,D),U=[I,f],W="";if(x){let J=o?u:1;U.push(Fe("bias",e[2].dataType,e[2].dims.length,J)),W=`${o?`value += bias[col / ${J}];`:`value += ${E.type.value}(bias[row + i]);`}`}let z=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];jo(r,z);let X=()=>{let J=`var a_data: ${I.type.value};`;for(let q=0;q<d;q++)J+=`
|
|
597
597
|
let b_data${q} = b[(b_offset + (k + ${q}) * uniforms.N + col) / ${u}];`;for(let q=0;q<g;q++){J+=`a_data = a[(a_offset + (row + ${q}) * uniforms.K + k) / ${d}];`;for(let re=0;re<d;re++)J+=`
|
|
598
598
|
values[${q}] = fma(${f.type.value}(a_data${d===1?"":`[${re}]`}), b_data${re}, values[${q}]);
|
|
599
599
|
`}return J};return`
|
|
@@ -609,13 +609,13 @@ fn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {
|
|
|
609
609
|
${t.length===2?"":`let batch_indices = ${P.offsetToIndices("batch")};`}
|
|
610
610
|
|
|
611
611
|
var a_indices: ${I.type.indices};
|
|
612
|
-
${
|
|
612
|
+
${_n("a_indices",I,I.rank-2,P.rank,"batch_indices")}
|
|
613
613
|
${I.indicesSet("a_indices",I.rank-2,0)}
|
|
614
614
|
${I.indicesSet("a_indices",I.rank-1,0)}
|
|
615
615
|
let a_offset = ${I.indicesToOffset("a_indices")};
|
|
616
616
|
|
|
617
617
|
var b_indices: ${f.type.indices};
|
|
618
|
-
${
|
|
618
|
+
${_n("b_indices",f,f.rank-2,P.rank,"batch_indices")}
|
|
619
619
|
${f.indicesSet("b_indices",f.rank-2,0)}
|
|
620
620
|
${f.indicesSet("b_indices",f.rank-1,0)}
|
|
621
621
|
let b_offset = ${f.indicesToOffset("b_indices")};
|
|
@@ -632,7 +632,7 @@ fn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {
|
|
|
632
632
|
${E.setByOffset(`offset / ${u}`,"value")};
|
|
633
633
|
}
|
|
634
634
|
}
|
|
635
|
-
`};return{name:"MatMulNaive",shaderCache:{hint:`${r.activation};${u};${d};${g};${o}`,inputDependencies:x?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:b}),getShaderSource:C}}}),
|
|
635
|
+
`};return{name:"MatMulNaive",shaderCache:{hint:`${r.activation};${u};${d};${g};${o}`,inputDependencies:x?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:b}),getShaderSource:C}}}),RM,NM,Nd,td,jM,jd,VM,Qi,hu=Ve(()=>{"use strict";Mt(),kt(),Ct(),Wo(),mu(),_u(),RM=(e,r)=>e?`
|
|
636
636
|
mm_Asub[inputRow][inputCol] = mm_readA(batch,
|
|
637
637
|
kStart + inputRow,
|
|
638
638
|
globalRowStart / innerElementSize + inputCol${r?", batchIndices":""});
|
|
@@ -640,7 +640,7 @@ fn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {
|
|
|
640
640
|
mm_Asub[inputRow][inputCol] = mm_readA(batch,
|
|
641
641
|
globalRow + innerRow,
|
|
642
642
|
kStart / innerElementSize + inputCol${r?", batchIndices":""});
|
|
643
|
-
`,
|
|
643
|
+
`,NM=(e,r)=>e?`
|
|
644
644
|
let ACached0 = mm_Asub[k * innerElementSize][localRow];
|
|
645
645
|
let ACached1 = mm_Asub[k * innerElementSize + 1][localRow];
|
|
646
646
|
let ACached2 = mm_Asub[k * innerElementSize + 2][localRow];
|
|
@@ -694,7 +694,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
694
694
|
for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {
|
|
695
695
|
let inputRow = tileRow + innerRow;
|
|
696
696
|
let inputCol = tileCol;
|
|
697
|
-
${
|
|
697
|
+
${RM(o,s)}
|
|
698
698
|
}
|
|
699
699
|
|
|
700
700
|
// Load one tile of B into local memory.
|
|
@@ -713,7 +713,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
713
713
|
let BCached2 = mm_Bsub[k * innerElementSize + 2][tileCol];
|
|
714
714
|
${d===3?"":"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];"}
|
|
715
715
|
|
|
716
|
-
${
|
|
716
|
+
${NM(o,d)}
|
|
717
717
|
}
|
|
718
718
|
|
|
719
719
|
workgroupBarrier();
|
|
@@ -730,7 +730,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
730
730
|
mm_Asub[inputRow][inputCol] = mm_readA(batch,
|
|
731
731
|
globalRowStart + inputRow,
|
|
732
732
|
kStart + inputCol${r?", batchIndices":""});
|
|
733
|
-
`,
|
|
733
|
+
`,jM=e=>e?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",jd=(e,r,t="f32",s,o=!1,a=32,n=!1,i=32,l=!1)=>{let c=e[1]*r[1],_=e[0]*r[0],u=o?c:a,d=o?a:c;if(!(d%r[1]===0&&u%r[0]===0&&a%r[1]===0))throw new Error(`tileAHight ${d} must be divisible by workgroupSize[1]${r[1]}, tileAWidth ${u} must be divisible by workgroupSize[0]${r[0]}, tileInner ${a} must be divisible by workgroupSize[1]${r[1]}`);let g=d/r[1],h=u/r[0],x=a/r[1],F=l?`
|
|
734
734
|
let localRow = i32(localId.y);
|
|
735
735
|
let localCol = i32(localId.x);
|
|
736
736
|
let globalRowStart = i32(workgroupId.y) * ${c};
|
|
@@ -821,7 +821,7 @@ for (var t = 0; t < num_tiles; t = t + 1) {
|
|
|
821
821
|
}
|
|
822
822
|
|
|
823
823
|
for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {
|
|
824
|
-
${
|
|
824
|
+
${jM(o)}
|
|
825
825
|
for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {
|
|
826
826
|
acc[innerRow][innerCol] = acc[innerRow][innerCol] + ACached * BCached[innerCol];
|
|
827
827
|
}
|
|
@@ -856,14 +856,14 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
856
856
|
var acc : array<array<${t}, colPerThread>, rowPerThread>;
|
|
857
857
|
${F}
|
|
858
858
|
}
|
|
859
|
-
`},
|
|
859
|
+
`},VM=(e,r,t,s,o=!1)=>{let[a,n,i,l]=s,c=$r(s[0].type.tensor);return`
|
|
860
860
|
fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${a.type.indices}) -> ${Rr(e,c)} {
|
|
861
861
|
var value = ${Rr(e,c)}(0.0);
|
|
862
862
|
let col = colIn * ${e};
|
|
863
863
|
if(row < uniforms.dim_a_outer && col < uniforms.dim_inner)
|
|
864
864
|
{
|
|
865
865
|
var aIndices: ${n.type.indices};
|
|
866
|
-
${
|
|
866
|
+
${_n("aIndices",n,n.rank-2,a.rank,"batchIndices")}
|
|
867
867
|
${n.indicesSet("aIndices",n.rank-2,"u32(row)")}
|
|
868
868
|
${n.indicesSet("aIndices",n.rank-1,"u32(colIn)")}
|
|
869
869
|
value = ${n.getByIndices("aIndices")};
|
|
@@ -877,7 +877,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
877
877
|
if(row < uniforms.dim_inner && col < uniforms.dim_b_outer)
|
|
878
878
|
{
|
|
879
879
|
var bIndices: ${i.type.indices};
|
|
880
|
-
${
|
|
880
|
+
${_n("bIndices",i,i.rank-2,a.rank,"batchIndices")}
|
|
881
881
|
${i.indicesSet("bIndices",i.rank-2,"u32(row)")}
|
|
882
882
|
${i.indicesSet("bIndices",i.rank-1,"u32(colIn)")}
|
|
883
883
|
value = ${i.getByIndices("bIndices")};
|
|
@@ -895,11 +895,11 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
895
895
|
${l.setByIndices("vec3<u32>(coords)","value")}
|
|
896
896
|
}
|
|
897
897
|
}
|
|
898
|
-
`},Qi=(e,r,t,s,o=!1,a)=>{let n=e[0].dims,i=e[1].dims,l=n.slice(0,-2),c=i.slice(0,-2),_=s?s.slice(0,-2):t.slice(0,-2),u=Me.size(_),d=n[n.length-2],g=n[n.length-1],h=i[i.length-1],x=g%4===0&&h%4===0,F=d<=8?[4,1,1]:[4,4,1],v=[8,8,1],b=[Math.ceil(h/v[0]/F[0]),Math.ceil(d/v[1]/F[1]),Math.ceil(u/v[2]/F[2])],C=x?4:1,y=[...l,d,g/C],P=y.length,I=[...c,g,h/C],f=I.length,E=[u,d,h/C],D=[{type:6,data:d},{type:6,data:h},{type:6,data:g}];
|
|
898
|
+
`},Qi=(e,r,t,s,o=!1,a)=>{let n=e[0].dims,i=e[1].dims,l=n.slice(0,-2),c=i.slice(0,-2),_=s?s.slice(0,-2):t.slice(0,-2),u=Me.size(_),d=n[n.length-2],g=n[n.length-1],h=i[i.length-1],x=g%4===0&&h%4===0,F=d<=8?[4,1,1]:[4,4,1],v=[8,8,1],b=[Math.ceil(h/v[0]/F[0]),Math.ceil(d/v[1]/F[1]),Math.ceil(u/v[2]/F[2])],C=x?4:1,y=[...l,d,g/C],P=y.length,I=[...c,g,h/C],f=I.length,E=[u,d,h/C],D=[{type:6,data:d},{type:6,data:h},{type:6,data:g}];No(r,D),D.push(...dt(_,y,I));let O=["rank","rank"],U=e.length>2;U&&(D.push(...dt(e[2].dims)),O.push("rank")),D.push(...dt(E));let W=z=>{let X=_.length,J=iu("batchDims",e[0].dataType,X,1),q=$r(e[0].dataType),re=Fe("a",e[0].dataType,P,C),oe=Fe("b",e[1].dataType,f,C),ne=it("result",e[0].dataType,E.length,C),ye=[re,oe];if(U){let ee=o?C:1;ye.push(Fe("bias",e[2].dataType,e[2].dims.length,ee))}let Y=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];jo(r,Y);let H=$r(ne.type.tensor),R=Ro(r,ne.type.value,H),L=VM(C,U,R,[J,re,oe,ne],o);return`
|
|
899
899
|
${z.registerUniforms(Y).registerInternalVariables(J).declareVariables(...ye,ne)}
|
|
900
900
|
${L}
|
|
901
901
|
${x?Nd(F,v,q,J):jd(F,v,q,J)}
|
|
902
|
-
`};return{name:"MatMul",shaderCache:{hint:`${F};${r.activation};${x};${o}`,inputDependencies:O},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:b[0],y:b[1],z:b[2]},programUniforms:D}),getShaderSource:W}}}),
|
|
902
|
+
`};return{name:"MatMul",shaderCache:{hint:`${F};${r.activation};${x};${o}`,inputDependencies:O},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:b[0],y:b[1],z:b[2]},programUniforms:D}),getShaderSource:W}}}),WM,ry,IP=Ve(()=>{"use strict";Mt(),Js(),Ct(),Wo(),_u(),FP(),hu(),WM=(e,r,t,s,o=!1,a,n=4,i=4,l=4,c="f32")=>{let _=D=>{switch(D){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${c}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${D} is not supported.`)}},u=D=>{switch(D){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 ${D} is not supported.`)}},d=e?`
|
|
903
903
|
let coord = vec4<i32>(batch, xRow, xCol, xCh);
|
|
904
904
|
`:`
|
|
905
905
|
let coord = vec4<i32>(batch, xCh, xRow, xCol);
|
|
@@ -958,7 +958,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
958
958
|
if (row < uniforms.dim_inner && col < uniforms.dim_a_outer) {
|
|
959
959
|
${u(i)}
|
|
960
960
|
}
|
|
961
|
-
return ${Rr(i,c)}(0.0);`,P=Rr(l,c),I=Rr(e?n:i,c),f=Rr(e?i:n,c),E=
|
|
961
|
+
return ${Rr(i,c)}(0.0);`,P=Rr(l,c),I=Rr(e?n:i,c),f=Rr(e?i:n,c),E=Ro(a,P,c);return`
|
|
962
962
|
fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${I} {
|
|
963
963
|
${e?C:y}
|
|
964
964
|
}
|
|
@@ -974,11 +974,11 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
974
974
|
var value = valueIn;
|
|
975
975
|
let outWidth = ${e?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"};
|
|
976
976
|
${g}
|
|
977
|
-
${
|
|
977
|
+
${ey(o)}
|
|
978
978
|
${E}
|
|
979
979
|
setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);
|
|
980
980
|
}
|
|
981
|
-
}`},
|
|
981
|
+
}`},ry=(e,r,t,s,o,a,n,i,l)=>{let c=r.format==="NHWC",_=c?e[0].dims[3]:e[0].dims[1],u=t[0],d=c?t[2]:t[3],g=c?t[1]:t[2],h=c?t[3]:t[1],x=c&&(_%4===0||_%3===0)&&h%4===0,F=c?h:d*g,v=c?d*g:h,b=[8,8,1],C=s<=8?[4,1,1]:[4,4,1],y=[Math.ceil(F/b[0]/C[0]),Math.ceil(v/b[1]/C[1]),Math.ceil(u/b[2]/C[2])];Ot("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${y}`);let P=x?c&&_%4!==0?3:4:1,I=b[1]*C[1],f=b[0]*C[0],E=Math.max(b[0]*P,b[1]),D=s%I===0,O=o%f===0,U=a%E===0,W=x?[P,4,4]:[1,1,1],z=[{type:6,data:s},{type:6,data:o},{type:6,data:a},{type:6,data:[r.pads[0],r.pads[1]]},{type:6,data:r.strides},{type:6,data:r.dilations}];No(r,z),z.push(...dt(e[0].dims,e[1].dims));let X=["rank","rank"];n&&(z.push(...dt(e[2].dims)),X.push("rank")),z.push(...dt(t));let J=q=>{let re=[{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}];jo(r,re);let oe=x?4:1,ne=$r(e[0].dataType),ye=`
|
|
982
982
|
fn setOutputAtIndex(flatIndex : i32, value : ${x?`vec4<${ne}>`:ne}) {
|
|
983
983
|
result[flatIndex] = ${x?`vec4<${ne}>`:ne}(value);
|
|
984
984
|
}
|
|
@@ -989,17 +989,17 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
989
989
|
fn getBiasByOutputCoords(coords : vec4<i32>) -> ${x?`vec4<${ne}>`:ne} {
|
|
990
990
|
return bias[coords.${c?"w":"y"}${x?"/ 4":""}];
|
|
991
991
|
}`}return`
|
|
992
|
-
${
|
|
992
|
+
${ty("uniforms.result_strides")}
|
|
993
993
|
//struct Uniforms { xShape : vec4<i32>, wShape : vec4<i32>, outShape : vec4<i32>,
|
|
994
994
|
// outShapeStrides: vec3<i32>, filterDims : vec2<i32>, pad : vec2<i32>, stride : vec2<i32>,
|
|
995
995
|
// dilation : vec2<i32>, dimAOuter : i32, dimBOuter : i32, dimInner : i32 };
|
|
996
996
|
${q.registerUniforms(re).declareVariables(...R,L)}
|
|
997
997
|
${ye}
|
|
998
|
-
${
|
|
999
|
-
${x?Nd(C,b,ne,void 0,!c,E):jd(C,b,ne,void 0,!c,E,!1,void 0,i)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${r.cacheKey};${P};${x};${D};${O};${U};${I};${f};${E}`,inputDependencies:X},getRunData:()=>({outputs:[{dims:l?l(t):t,dataType:e[0].dataType}],dispatchGroup:{x:y[0],y:y[1],z:y[2]},programUniforms:z}),getShaderSource:J}}}),
|
|
998
|
+
${WM(c,D,O,U,n,r,W[0],W[1],W[2],ne)}
|
|
999
|
+
${x?Nd(C,b,ne,void 0,!c,E):jd(C,b,ne,void 0,!c,E,!1,void 0,i)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${r.cacheKey};${P};${x};${D};${O};${U};${I};${f};${E}`,inputDependencies:X},getRunData:()=>({outputs:[{dims:l?l(t):t,dataType:e[0].dataType}],dispatchGroup:{x:y[0],y:y[1],z:y[2]},programUniforms:z}),getShaderSource:J}}}),UM,rd,tn,GM,sd,KM,sy,oy,AP=Ve(()=>{"use strict";Mt(),Js(),kt(),Ct(),Wo(),_u(),UM=e=>{let r=1;for(let t=0;t<e.length;t++)r*=e[t];return r},rd=e=>typeof e=="number"?[e,e,e]:e,tn=(e,r)=>r<=1?e:e+(e-1)*(r-1),GM=(e,r,t,s=1)=>{let o=tn(r,s);return Math.floor((e[0]*(t-1)-t+o)/2)},sd=(e,r,t,s,o)=>{o==null&&(o=GM(e,r[0],s[0]));let a=[0,0,0,t];for(let n=0;n<3;n++)e[n]+2*o>=r[n]&&(a[n]=Math.trunc((e[n]-r[n]+2*o)/s[n]+1));return a},KM=(e,r,t,s,o,a,n,i,l,c)=>{let _,u,d,g;if(e==="VALID"&&(e=0),typeof e=="number"){_={top:e,bottom:e,left:e,right:e,front:e,back:e};let h=sd([r,t,s,1],[i,l,c],1,[o,a,n],e);u=h[0],d=h[1],g=h[2]}else if(Array.isArray(e)){if(!e.every((x,F,v)=>x===v[0]))throw Error(`Unsupported padding parameter: ${e}`);_={top:e[0],bottom:e[1],left:e[2],right:e[3],front:e[4],back:e[5]};let h=sd([r,t,s,1],[i,l,c],1,[o,a,n],e[0]);u=h[0],d=h[1],g=h[2]}else if(e==="SAME_UPPER"){u=Math.ceil(r/o),d=Math.ceil(t/a),g=Math.ceil(s/n);let h=(u-1)*o+i-r,x=(d-1)*a+l-t,F=(g-1)*n+c-s,v=Math.floor(h/2),b=h-v,C=Math.floor(x/2),y=x-C,P=Math.floor(F/2),I=F-P;_={top:C,bottom:y,left:P,right:I,front:v,back:b}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:_,outDepth:u,outHeight:d,outWidth:g}},sy=(e,r,t,s,o,a=!1,n="channelsLast")=>{let i,l,c,_,u;if(n==="channelsLast")[i,l,c,_,u]=e;else if(n==="channelsFirst")[i,u,l,c,_]=e;else throw new Error(`Unknown dataFormat ${n}`);let[d,,g,h,x]=r,[F,v,b]=rd(t),[C,y,P]=rd(s),I=tn(g,C),f=tn(h,y),E=tn(x,P),{padInfo:D,outDepth:O,outHeight:U,outWidth:W}=KM(o,l,c,_,F,v,b,I,f,E),z=a?d*u:d,X=[0,0,0,0,0];return n==="channelsFirst"?X=[i,z,O,U,W]:n==="channelsLast"&&(X=[i,O,U,W,z]),{batchSize:i,dataFormat:n,inDepth:l,inHeight:c,inWidth:_,inChannels:u,outDepth:O,outHeight:U,outWidth:W,outChannels:z,padInfo:D,strideDepth:F,strideHeight:v,strideWidth:b,filterDepth:g,filterHeight:h,filterWidth:x,effectiveFilterDepth:I,effectiveFilterHeight:f,effectiveFilterWidth:E,dilationDepth:C,dilationHeight:y,dilationWidth:P,inShape:e,outShape:X,filterShape:r}},oy=(e,r,t,s,o,a)=>{let n=a==="channelsLast",i=n?e[0].dims[3]:e[0].dims[1],l=!1,c=[64,1,1],_={x:t.map((b,C)=>C)},u=[Math.ceil(UM(_.x.map(b=>t[b]))/c[0]),1,1];Ot("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${u}`);let d=l?n&&i%4!==0?3:4:1,g=Me.size(t),h=[{type:12,data:g},{type:12,data:s},{type:12,data:o},{type:12,data:r.strides},{type:12,data:r.dilations}];No(r,h),h.push(...dt(e[0].dims,e[1].dims));let x=["rank","rank"],F=e.length===3;F&&(h.push(...dt(e[2].dims)),x.push("rank")),h.push(...dt(t));let v=b=>{let C=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:s.length},{name:"pads",type:"u32",length:o.length},{name:"strides",type:"u32",length:r.strides.length},{name:"dilations",type:"u32",length:r.dilations.length}];jo(r,C);let y=l?4:1,P=$r(e[0].dataType),I=Fe("x",e[0].dataType,e[0].dims.length,d===3?1:d),f=Fe("W",e[1].dataType,e[1].dims.length,y),E=[I,f],D=it("result",e[0].dataType,t.length,y),O="";if(F){let z=Fe("bias",e[2].dataType,e[2].dims.length,y);E.push(z),O+=`
|
|
1000
1000
|
fn getBiasByOutputCoords(coords : array<u32, 5>) -> ${l?`vec4<${P}>`:P} {
|
|
1001
1001
|
return bias[${n?lt("coords",4,5):lt("coords",1,5)}${l?"/ 4":""}];
|
|
1002
|
-
}`}let U=Rr(d,P),W=
|
|
1002
|
+
}`}let U=Rr(d,P),W=Ro(r,U,P);return`
|
|
1003
1003
|
${O}
|
|
1004
1004
|
fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 {
|
|
1005
1005
|
let aIndices = array<u32, 5>(d0, d1, d2, d3, d4);
|
|
@@ -1104,7 +1104,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1104
1104
|
${F?"value = value + getBiasByOutputCoords(coords)":""};
|
|
1105
1105
|
${W}
|
|
1106
1106
|
result[global_idx] = f32(value);
|
|
1107
|
-
}`};return{name:"Conv3DNaive",shaderCache:{hint:`${r.cacheKey};${n};${d};${F}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:u[0],y:u[1],z:u[2]},programUniforms:h}),getShaderSource:v}}}),
|
|
1107
|
+
}`};return{name:"Conv3DNaive",shaderCache:{hint:`${r.cacheKey};${n};${d};${F}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:u[0],y:u[1],z:u[2]},programUniforms:h}),getShaderSource:v}}}),ay,ny,$P=Ve(()=>{"use strict";Mt(),kt(),Ct(),Wo(),ay=(e,r,t,s)=>{let o=e.length>2,a=o?"value += b[output_channel];":"",n=e[0].dims,i=e[1].dims,l=r.format==="NHWC",c=l?t[3]:t[1],_=c/r.group,u=l&&_>=4?dr(c):1,d=Me.size(t)/u,g=[{type:12,data:d},{type:12,data:r.dilations},{type:12,data:[r.strides[0],r.strides[1]]},{type:12,data:[r.pads[0],r.pads[1]]},{type:12,data:_}];No(r,g),g.push(...dt(n,[i[0],i[1],i[2],i[3]/u]));let h=o?["rank","rank","rank"]:["rank","rank"];g.push(...dt([t[0],t[1],t[2],t[3]/u]));let x=F=>{let v=it("output",e[0].dataType,t.length,u),b=$r(v.type.tensor),C=Ro(r,v.type.value,b),y=Fe("x",e[0].dataType,n.length),P=Fe("w",e[1].dataType,i.length,u),I=[y,P];o&&I.push(Fe("b",e[2].dataType,e[2].dims,u));let f=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:r.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];jo(r,f);let E=l?`
|
|
1108
1108
|
for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[0]; wHeight++) {
|
|
1109
1109
|
let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0];
|
|
1110
1110
|
|
|
@@ -1166,7 +1166,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1166
1166
|
${a}
|
|
1167
1167
|
${C}
|
|
1168
1168
|
${v.setByOffset("global_idx","value")}
|
|
1169
|
-
}`};return{name:"GroupedConv",shaderCache:{hint:`${r.cacheKey}_${u}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:g}),getShaderSource:x}},
|
|
1169
|
+
}`};return{name:"GroupedConv",shaderCache:{hint:`${r.cacheKey}_${u}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:g}),getShaderSource:x}},ny=(e,r,t,s)=>{let o=e.length>2,a=dr(t[3]),n=dr(t[2]),i=Me.size(t)/a/n,l=[e[0].dims[0],e[0].dims[1],e[0].dims[2],e[0].dims[3]/a],c=[e[1].dims[0],e[1].dims[1],e[1].dims[2],e[1].dims[3]/a],_=[t[0],t[1],t[2],t[3]/a],u=[{type:12,data:i},{type:6,data:[r.strides[0],r.strides[1]]},{type:6,data:[r.pads[0],r.pads[1]]}];No(r,u),u.push(...dt(l,c,_));let d=(n-1)*r.strides[1]+c[1],g=h=>{let x=it("output",e[0].dataType,_.length,a),F=$r(x.type.tensor),v=Ro(r,x.type.value,F),b=Fe("x",e[0].dataType,l.length,a),C=Fe("w",e[1].dataType,c.length,a),y=[b,C];o&&y.push(Fe("b",e[2].dataType,e[2].dims,a));let P=o?"value += b[output_channel];":"",I=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return jo(r,I),`
|
|
1170
1170
|
${h.registerUniforms(I).declareVariables(...y,x)}
|
|
1171
1171
|
${h.mainStart()}
|
|
1172
1172
|
${h.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
@@ -1211,7 +1211,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1211
1211
|
${v}
|
|
1212
1212
|
${x.set("batch","row","col + i","output_channel","value")};
|
|
1213
1213
|
}
|
|
1214
|
-
}`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${r.cacheKey};${a};${n};${d};${c[0]};${c[1]}`,inputDependencies:o?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:u}),getShaderSource:g}}}),
|
|
1214
|
+
}`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${r.cacheKey};${a};${n};${d};${c[0]};${c[1]}`,inputDependencies:o?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:u}),getShaderSource:g}}}),HM,Bi,qM,zi,Vd,od,QM,XM,Wd,DP=Ve(()=>{"use strict";kt(),IP(),AP(),hu(),$P(),Wo(),mu(),po(),HM=(e,r,t,s,o,a)=>{let n=e[0],i=e.slice(a?1:2,a?3:4),l=i.length,c=r[0],_=r.slice(2).map((d,g)=>d+(d-1)*(t[g]-1)),u=i.map((d,g)=>d+s[g]+s[g+l]).map((d,g)=>Math.floor((d-_[g]+o[g])/o[g]));return u.splice(0,0,n),u.splice(a?3:1,0,c),u},Bi=[2,3,1,0],qM=(e,r)=>{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 t=e[0].dims[r.format==="NHWC"?e[0].dims.length-1:1],s=e[1].dims[1]*r.group;if(t!==s)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(r.dilations.length!==o)throw new Error(`dilations should be ${o}D`);if(r.strides.length!==o)throw new Error(`strides should be ${o}D`);if(r.pads.length!==o*2)throw new Error(`pads should be ${o*2}D`);if(r.kernelShape.length!==0&&r.kernelShape.length!==e[1].dims.length-2)throw new Error("invalid kernel shape")},zi=(e,r)=>{let t=e.kernelShape.slice();t.length<r[1].dims.length-2&&t.push(...Array(r[1].dims.length-2-t.length).fill(0));for(let a=2;a<r[1].dims.length;++a)t[a-2]===0&&(t[a-2]=r[1].dims[a]);let s=e.pads.slice();Hi.adjustPadsBasedOnAutoPad(r[0].dims,e.strides,e.dilations,t,s,e.format==="NHWC",e.autoPad);let o=Object.assign({},e);return Object.assign(o,{kernelShape:t,pads:s}),o},Vd=e=>{let r=uu(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][e.auto_pad],o=e.dilations,a=e.group,n=e.kernel_shape,i=e.pads,l=e.strides,c=e.w_is_const();return{autoPad:s,format:t,dilations:o,group:a,kernelShape:n,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},od=(e,r,t,s)=>{let o=t.format==="NHWC",a=HM(r[0].dims,r[1].dims,t.dilations,t.pads,t.strides,o);if(t.group!==1){let I=[r[0]];if(o){let f=e.kernelCustomData.wT??e.compute(os(r[1],Bi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=f),I.push(f)}else I.push(r[1]);r.length===3&&I.push(r[2]),!e.adapterInfo.isArchitecture("ampere")&&o&&r[1].dims[0]===t.group&&r[1].dims[1]===1&&t.dilations[0]===1&&t.dilations[1]===1?e.compute(ny(I,t,a,s),{inputs:I}):e.compute(ay(I,t,a,s),{inputs:I});return}let n=r.length===3,i=r[0].dims[o?1:2],l=r[0].dims[o?2:3],c=r[0].dims[o?3:1],_=r[1].dims[2],u=r[1].dims[3],d=a[o?1:2],g=a[o?2:3],h=a[o?3:1],x=o&&_===i&&u===l&&t.pads[0]===0&&t.pads[1]===0;if(x||_===1&&u===1&&t.dilations[0]===1&&t.dilations[1]===1&&t.strides[0]===1&&t.strides[1]===1&&t.pads[0]===0&&t.pads[1]===0){let I=a[0],f,E,D,O=[];if(o){let z=e.kernelCustomData.wT??e.compute(os(r[1],Bi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];if(t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=z),x){let X=i*l*c;f=r[0].reshape([1,I,X]),E=z.reshape([1,X,h]),D=[1,I,h]}else f=r[0].reshape([I,i*l,c]),E=z.reshape([1,c,h]),D=[I,d*g,h];O.push(f),O.push(E)}else f=r[0].reshape([I,c,i*l]),E=r[1].reshape([1,h,c]),D=[I,h,d*g],O.push(E),O.push(f);n&&O.push(r[2]);let U=D[2],W=O[0].dims[O[0].dims.length-1];U<8&&W<8?e.compute(pu(O,t,a,D,o,s),{inputs:O}):e.compute(Qi(O,t,a,D,o,s),{inputs:O});return}let F=!0,v=e.kernelCustomData.wT??e.compute(os(r[1],Bi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=v);let b=[r[0],v];n&&b.push(r[2]);let C=o?d*g:h,y=o?h:d*g,P=_*u*c;e.compute(ry(b,t,a,C,y,P,n,F,s),{inputs:b})},QM=(e,r)=>{let t=r.format==="NHWC",s=[e.inputs[0].reshape(t?[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&&s.push(e.inputs[2]);let o=[0,r.pads[0],0,r.pads[1]],a=[1].concat(r.strides),n=[1].concat(r.dilations),i=[1].concat(r.kernelShape),l=zi({...r,pads:o,strides:a,dilations:n,kernelShape:i},s);od(e,s,l,c=>t?[c[0],c[2],c[3]]:[c[0],c[1],c[3]])},XM=(e,r,t)=>{let s=t.format==="NHWC"?"channelsLast":"channelsFirst",o=zi(t,r),a=t.autoPad==="NOTSET"?t.pads:t.autoPad,n=sy(r[0].dims,r[1].dims,t.strides,t.dilations,a,!1,s);e.compute(oy(r,o,n.outShape,[n.filterDepth,n.filterHeight,n.filterWidth],[n.padInfo.front,n.padInfo.top,n.padInfo.left],s))},Wd=(e,r)=>{if(qM(e.inputs,r),e.inputs[0].dims.length===3)QM(e,r);else if(e.inputs[0].dims.length===5)XM(e,e.inputs,r);else{let t=zi(r,e.inputs);od(e,e.inputs,t)}}}),iy,OP=Ve(()=>{"use strict";Mt(),Js(),kt(),Ct(),iy=(e,r,t)=>{let s=e.length>2,o=r.outputShape,a=r.format==="NHWC",n=r.group,i=e[1].dims,l=i[2]/n,c=i[3],_=a?dr(l):1,u=a&&c===1&&l>=4,d=u?Math.floor(l/4)*4:Math.floor(l/_)*_,g=l-d,h=a?dr(c):1,x=a?c===1?_:h:1,F=Me.size(o)/h,v=[Math.ceil(F/64),1,1];Ot("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${v}`);let b=["rank","rank"],C=[r.strides[0],r.strides[1]],y=[r.kernelShape[a?1:2],r.kernelShape[a?2:3]],P=[r.dilations[0],r.dilations[1]],I=[y[0]+(r.dilations[0]<=1?0:(r.kernelShape[a?1:2]-1)*(r.dilations[0]-1)),y[1]+(r.dilations[1]<=1?0:(r.kernelShape[a?2:3]-1)*(r.dilations[1]-1))],f=[I[0]-1-Math.floor((r.pads[0]+r.pads[2])/2),I[1]-1-Math.floor((r.pads[1]+r.pads[3])/2)],E=[{type:12,data:F},{type:12,data:C},{type:12,data:y},{type:12,data:P},{type:12,data:I},{type:6,data:f},{type:12,data:d},{type:12,data:l},{type:12,data:c},...dt(e[0].dims,e[1].dims)];s&&(E.push(...dt(e[2].dims)),b.push("rank")),E.push(...dt(o));let D=O=>{let U=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:C.length},{name:"filter_dims",type:"u32",length:y.length},{name:"dilations",type:"u32",length:y.length},{name:"effective_filter_dims",type:"u32",length:I.length},{name:"pads",type:"i32",length:f.length},{name:"input_channels_per_group_int",type:"u32"},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],W=$r(e[0].dataType),z=a?1:2,X=a?2:3,J=a?3:1,q=Fe("W",e[1].dataType,e[1].dims.length,x),re=Fe("Dy",e[0].dataType,e[0].dims.length,_),oe=[re,q];s&&oe.push(Fe("bias",e[2].dataType,[o[J]].length,h));let ne=it("result",e[0].dataType,o.length,h),ye=()=>{let R="";if(u)_===4?R+=`
|
|
1215
1215
|
let xValue = ${re.getByOffset("x_offset")};
|
|
1216
1216
|
let wValue = ${q.getByOffset("w_offset")};
|
|
1217
1217
|
dotProd = dotProd + dot(xValue, wValue);
|
|
@@ -1299,7 +1299,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1299
1299
|
${O.registerUniforms(U).declareVariables(...oe,ne)}
|
|
1300
1300
|
${O.mainStart()}
|
|
1301
1301
|
${O.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")};
|
|
1302
|
-
${H}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${r.cacheKey};${_}${x}${h}${u}${g}`,inputDependencies:b},getRunData:()=>({dispatchGroup:{x:v[0],y:v[1],z:v[2]},outputs:[{dims:t?t(o):o,dataType:e[0].dataType}],programUniforms:E}),getShaderSource:D}}}),
|
|
1302
|
+
${H}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${r.cacheKey};${_}${x}${h}${u}${g}`,inputDependencies:b},getRunData:()=>({dispatchGroup:{x:v[0],y:v[1],z:v[2]},outputs:[{dims:t?t(o):o,dataType:e[0].dataType}],programUniforms:E}),getShaderSource:D}}}),JM,YM,ZM,ad,ly,ew,nd,tw,cy,LP=Ve(()=>{"use strict";OP(),Wo(),po(),JM=(e,r,t,s,o,a)=>(e-1)*r+t+(s-1)*o+1-a,YM=(e,r,t,s,o)=>{let a=Math.floor(e/2);r==="SAME_UPPER"?(t[s]=a,t[o]=e-a):r==="SAME_LOWER"&&(t[s]=e-a,t[o]=a)},ZM=(e,r,t,s,o,a,n,i,l,c)=>{let _=e.length-2,u=c.length===0;l.length<_&&l.push(...Array(_-l.length).fill(0));let d=e[0],g=r[i?3:1]*o;for(let h=0,x=e.length-_-(i?1:0);h<_;++h,++x){let F=e[x],v=u?F*n[h]:c[h],b=JM(F,n[h],a[h],r[x],t[h],v);YM(b,s,a,h,h+_),u&&c.push(n[h]*(F-1)+l[h]+(r[x]-1)*t[h]+1-a[h]-a[h+_])}c.splice(0,0,d),c.splice(i?3:1,0,g)},ad=(e,r)=>{let t=e.kernelShape.slice();if(e.kernelShape.length===0||e.kernelShape.reduce((u,d)=>u*d,1)===0){t.length=0;for(let u=2;u<r[1].dims.length;++u)t.push(r[1].dims[u])}let s=e.format==="NHWC";t.splice(0,0,r[1].dims[0]),t.splice(s?3:1,0,r[1].dims[1]);let o=e.pads.slice(),a=e.outputShape.slice(),n=e.outputPadding.slice(),i=r[0].dims,l=e.dilations.slice();if(l.reduce((u,d)=>u+d,0)===0){let u=r[0].dims.length-2;l=new Array(u).fill(1)}let c=e.strides.slice();if(c.reduce((u,d)=>u+d,0)===0){let u=r[0].dims.length-2;c=new Array(u).fill(1)}ZM(i,t,l,e.autoPad,e.group,o,c,s,n,a);let _=Object.assign({},e);return Object.assign(_,{kernelShape:t,pads:o,outputPadding:n,outputShape:a,dilations:l,strides:c}),_},ly=e=>{let r=uu(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof e.autoPad>"u"?0:e.autoPad],o=e.dilations,a=e.group,n=e.kernelShape,i=e.pads,l=e.strides,c=e.wIsConst(),_=e.outputPadding,u=e.outputShape;return{autoPad:s,format:t,dilations:o,group:a,kernelShape:n,outputPadding:_,outputShape:u,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},ew=(e,r)=>{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 t=e[0].dims[r.format==="NHWC"?e[0].dims.length-1:1],s=e[1].dims[0];if(t!==s)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let o=e[1].dims[1]*r.group;if(e.length===3&&(e[2].dims.length!==1||e[2].dims[0]!==o))throw new Error("invalid bias");let a=e[0].dims.length-2;if(r.dilations.reduce((n,i)=>n+i,0)>0&&r.dilations.length!==a)throw new Error(`dilations should be ${a}D`);if(r.strides.reduce((n,i)=>n+i,0)>0&&r.strides.length!==a)throw new Error(`strides should be ${a}D`);if(r.pads.reduce((n,i)=>n+i,0)>0&&r.pads.length!==a*2)throw new Error(`pads should be ${a*2}D`);if(r.outputPadding.length!==a&&r.outputPadding.length!==0)throw new Error(`output_padding should be ${a}D`);if(r.kernelShape.reduce((n,i)=>n+i,0)>0&&r.kernelShape.length!==0&&r.kernelShape.length!==e[1].dims.length-2)throw new Error("invalid kernel shape");if(r.outputShape.length!==0&&r.outputShape.length!==e[0].dims.length-2)throw new Error("invalid output shape")},nd=(e,r,t,s)=>{let o=e.kernelCustomData.wT??e.compute(os(r[1],[2,3,0,1]),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=o);let a=[r[0],o];r.length===3&&a.push(r[2]),e.compute(iy(a,t,s),{inputs:a})},tw=(e,r)=>{let t=r.format==="NHWC",s=[e.inputs[0].reshape(t?[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&&s.push(e.inputs[2]);let o=r.kernelShape;(o.length===0||o[0]===0)&&(o=[e.inputs[1].dims[2]]);let a=r.dilations;(a.length===0||a[0]===0)&&(a=[1]);let n=r.strides;(n.length===0||n[0]===0)&&(n=[1]);let i=r.pads;i.length===0&&(i=[0,0]),i=[0,i[0],0,i[1]],n=[1].concat(n),a=[1].concat(a),o=[1].concat(o);let l=r.outputPadding;l=[0].concat(l);let c=ad({...r,pads:i,strides:n,dilations:a,kernelShape:o,outputPadding:l},s);nd(e,s,c,_=>t?[_[0],_[2],_[3]]:[_[0],_[1],_[3]])},cy=(e,r)=>{if(ew(e.inputs,r),e.inputs[0].dims.length===3)tw(e,r);else{let t=ad(r,e.inputs);nd(e,e.inputs,t)}}}),rw,dy,uy,BP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),rw=(e,r,t,s)=>{let o=Me.size(r),a=r.length,n=Fe("input",e,a),i=it("output",e,a),l=t.dataType===6?t.getInt32Array()[0]:Number(t.getBigInt64Array()[0]),c=Me.normalizeAxis(l,a),_=u=>{let d=` i32(${n.indicesGet("inputIndices","uniforms.axis")}) `,g=lt("uniforms.input_shape","uniforms.axis",a),h=s.reverse?d+(s.exclusive?" + 1":""):"0",x=s.reverse?g:d+(s.exclusive?"":" + 1");return`
|
|
1303
1303
|
${u.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(n,i)}
|
|
1304
1304
|
${u.mainStart()}
|
|
1305
1305
|
${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
|
|
@@ -1312,12 +1312,12 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1312
1312
|
sum = sum + ${n.getByIndices("inputIndices")};
|
|
1313
1313
|
}
|
|
1314
1314
|
${i.setByOffset("global_idx","sum")};
|
|
1315
|
-
}`};return{name:"CumSum",shaderCache:{hint:s.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:r,dataType:e}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:[{type:12,data:o},{type:12,data:c},...dt(r,r)]}),getShaderSource:_}},
|
|
1315
|
+
}`};return{name:"CumSum",shaderCache:{hint:s.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:r,dataType:e}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:[{type:12,data:o},{type:12,data:c},...dt(r,r)]}),getShaderSource:_}},dy=(e,r)=>{let t=e.inputs[0].dims,s=e.inputs[0].dataType,o=e.inputs[1];e.compute(rw(s,t,o,r),{inputs:[0]})},uy=e=>{let r=e.exclusive===1,t=e.reverse===1;return jt({exclusive:r,reverse:t})}}),sw,ow,aw,_y,py,zP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),sw=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.")},ow=(e,r,t,s)=>{let o=[];o.push(`fn perm(i: ${s.type.indices}) -> ${t.type.indices} {
|
|
1316
1316
|
var a: ${t.type.indices};`);for(let a=0;a<r;++a)o.push(t.indicesSet("a",e[a],`i[${a}]`));return o.push("return a;}"),o.join(`
|
|
1317
|
-
`)},
|
|
1317
|
+
`)},aw=(e,r)=>{let t,s,o,a,n,i,l=r.format==="NHWC",c=r.blocksize,_=r.mode==="DCR";l?([t,s,o,a]=e.dims,n=_?[t,s,o,c,c,a/c**2]:[t,s,o,a/c**2,c,c],i=_?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([t,s,o,a]=[e.dims[0],e.dims[2],e.dims[3],e.dims[1]],n=_?[t,c,c,a/c**2,s,o]:[t,a/c**2,c,c,s,o],i=_?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let u=e.reshape(n),d=u.dims.length,g=e.dataType,h=Fe("a",g,d),x=it("output",g,d),F=v=>`
|
|
1318
1318
|
${v.registerUniform("output_size","u32").declareVariables(h,x)}
|
|
1319
1319
|
|
|
1320
|
-
${
|
|
1320
|
+
${ow(i,d,h,x)}
|
|
1321
1321
|
|
|
1322
1322
|
${v.mainStart()}
|
|
1323
1323
|
${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
@@ -1326,7 +1326,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1326
1326
|
let aIndices = perm(indices);
|
|
1327
1327
|
|
|
1328
1328
|
${x.setByOffset("global_idx",h.getByIndices("aIndices"))}
|
|
1329
|
-
}`;return{name:"DepthToSpace",shaderCache:{hint:`${e.dims};${r.blocksize};${r.mode}`,inputDependencies:["rank"]},getRunData:v=>{let b=l?[t,s*c,o*c,a/c**2]:[t,a/c**2,s*c,o*c],C=Me.size(b),y=u.dims,P=Me.sortBasedOnPerm(y,i);return{outputs:[{dims:b,dataType:v[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:[{type:12,data:C},...dt(y,P)]}},getShaderSource:F}},
|
|
1329
|
+
}`;return{name:"DepthToSpace",shaderCache:{hint:`${e.dims};${r.blocksize};${r.mode}`,inputDependencies:["rank"]},getRunData:v=>{let b=l?[t,s*c,o*c,a/c**2]:[t,a/c**2,s*c,o*c],C=Me.size(b),y=u.dims,P=Me.sortBasedOnPerm(y,i);return{outputs:[{dims:b,dataType:v[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:[{type:12,data:C},...dt(y,P)]}},getShaderSource:F}},_y=(e,r)=>{sw(e.inputs),e.compute(aw(e.inputs[0],r))},py=e=>jt({blocksize:e.blocksize,mode:e.mode,format:e.format})}),Ri,rn,id,nw,iw,lw,cw,ld,dw,my,hy,RP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Ri="[a-zA-Z]|\\.\\.\\.",rn="("+Ri+")+",id="^"+rn+"$",nw="("+rn+",)*"+rn,iw="^"+nw+"$",lw=class{constructor(e=-1){this.symbolToIndices=new Map,this.inputIndex=e}addSymbol(e,r){let t=this.symbolToIndices.get(e);t===void 0?t=[r]:t.push(r),this.symbolToIndices.set(e,t)}},cw=class{constructor(e,r){this.equation=r,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[t,s]=r.includes("->")?r.split("->",2):[r,""];if(!t.match(RegExp(iw)))throw new Error("Invalid LHS term");if(t.split(",").forEach((o,a)=>{let n=e[a].dims.slice();if(!o.match(RegExp(id)))throw new Error("Invalid LHS term");let i=this.processTerm(o,!0,n,a);this.lhs.push(i)}),s==="")s+=[...this.symbolToInfo.entries()].filter(([o,a])=>a.count===1||o==="...").map(([o])=>o).join("");else if(!s.match(RegExp(rn)))throw new Error("Invalid RHS");s.match(RegExp(Ri,"g"))?.forEach(o=>{if(o==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let a=this.symbolToInfo.get(o);if(a===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(a.dimValue)}}),this.rhs=this.processTerm(s,!1,this.outputDims)}addSymbol(e,r,t){let s=this.symbolToInfo.get(e);if(s!==void 0){if(s.dimValue!==r&&s.count!==1)throw new Error("Dimension mismatch");s.count++,s.inputIndices.push(t)}else s={count:1,dimValue:r,inputIndices:[t]};this.symbolToInfo.set(e,s)}processTerm(e,r,t,s=-1){let o=t.length,a=!1,n=[],i=0;if(!e.match(RegExp(id))&&!r&&e!=="")throw new Error("Invalid LHS term");let l=e.match(RegExp(Ri,"g")),c=new lw(s);return l?.forEach((_,u)=>{if(_==="..."){if(a)throw new Error("Only one ellipsis is allowed per input term");a=!0;let d=o-l.length+1;if(d<0)throw new Error("Ellipsis out of bounds");if(n=t.slice(i,i+d),this.hasEllipsis){if(this.ellipsisDims.length!==n.length||this.ellipsisDims.toString()!==n.toString())throw new Error("Ellipsis dimensions mismatch")}else if(r)this.hasEllipsis=!0,this.ellipsisDims=n;else throw new Error("Ellipsis must be specified in the LHS");for(let g=0;g<n.length;g++){let h=String.fromCharCode(48+g);c.addSymbol(h,u+g),this.addSymbol(h,t[i++],s)}}else c.addSymbol(_,u+(this.hasEllipsis?this.ellipsisDims.length-1:0)),this.addSymbol(_,t[i++],s)}),c}},ld=e=>e+"_max",dw=(e,r,t,s)=>{let o=e.map(c=>c.length).map((c,_)=>Fe(`input${_}`,r,c)),a=Me.size(s),n=it("output",r,s.length),i=[...t.symbolToInfo.keys()].filter(c=>!t.rhs.symbolToIndices.has(c)),l=c=>{let _=[],u="var prod = 1.0;",d="var sum = 0.0;",g="sum += prod;",h=[],x=[],F=[],v=[],b=t.symbolToInfo.size===t.rhs.symbolToIndices.size;t.symbolToInfo.forEach((y,P)=>{if(t.rhs.symbolToIndices.has(P)){let I=t.rhs.symbolToIndices.get(P)?.[0];I!==void 0&&t.lhs.forEach((f,E)=>{if(y.inputIndices.includes(E)){let D=f.symbolToIndices.get(P);if(D===void 0)throw new Error("Invalid symbol error");D.forEach(O=>{_.push(`${o[E].indicesSet(`input${E}Indices`,O,n.indicesGet("outputIndices",I))}`)})}})}else t.lhs.forEach((I,f)=>{if(y.inputIndices.includes(f)){let E=I.symbolToIndices.get(P);if(E===void 0)throw new Error("Invalid symbol error");E.forEach(D=>{h.push(`${o[f].indicesSet(`input${f}Indices`,D,`${P}`)}`)}),v.push(`prod *= ${o[f].getByIndices(`input${f}Indices`)};`)}}),x.push(`for(var ${P}: u32 = 0; ${P} < uniforms.${ld(P)}; ${P}++) {`),F.push("}")});let C=b?[..._,`let sum = ${o.map((y,P)=>y.getByIndices(`input${P}Indices`)).join(" * ")};`]:[..._,d,...x,...h,u,...v,g,...F];return`
|
|
1330
1330
|
${c.registerUniforms(i.map(y=>({name:`${ld(y)}`,type:"u32"}))).registerUniform("outputSize","u32").declareVariables(...o,n)}
|
|
1331
1331
|
|
|
1332
1332
|
${c.mainStart()}
|
|
@@ -1337,7 +1337,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1337
1337
|
${C.join(`
|
|
1338
1338
|
`)};
|
|
1339
1339
|
${n.setByOffset("global_idx","sum")};
|
|
1340
|
-
}`};return{name:"Einsum",shaderCache:{hint:t.equation,inputDependencies:e.map(()=>"rank")},getRunData:()=>{let c=i.filter(u=>t.symbolToInfo.has(u)).map(u=>({type:12,data:t.symbolToInfo.get(u)?.dimValue||0}));c.push({type:12,data:a});let _=e.map((u,d)=>[...dt(u)]).reduce((u,d)=>u.concat(d),c);return _.push(...dt(s)),{outputs:[{dims:s,dataType:r}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:_}},getShaderSource:l}},
|
|
1340
|
+
}`};return{name:"Einsum",shaderCache:{hint:t.equation,inputDependencies:e.map(()=>"rank")},getRunData:()=>{let c=i.filter(u=>t.symbolToInfo.has(u)).map(u=>({type:12,data:t.symbolToInfo.get(u)?.dimValue||0}));c.push({type:12,data:a});let _=e.map((u,d)=>[...dt(u)]).reduce((u,d)=>u.concat(d),c);return _.push(...dt(s)),{outputs:[{dims:s,dataType:r}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:_}},getShaderSource:l}},my=(e,r)=>{let t=new cw(e.inputs,r.equation),s=t.outputDims,o=e.inputs.map((a,n)=>a.dims);e.compute(dw(o,e.inputs[0].dataType,t,s))},hy=e=>{let r=e.equation.replace(/\s+/g,"");return jt({equation:r})}}),uw,cd,_w,pw,fy,NP=Ve(()=>{"use strict";Mt(),kt(),Ct(),uw=e=>{if(!e||e.length!==2)throw new Error("Expand requires 2 input.");let r=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),s=t.length<r.length?0:t.length-r.length,o=r.length<t.length?0:r.length-t.length;for(;s<t.length&&o<r.length;++s,++o)if(t[s]!==r[o]&&t[s]!==1&&r[o]!==1)throw new Error("Expand requires shape to be broadcastable to input")},cd=(e,r)=>{let t=e.length-r.length,s=[];for(let o=0;o<t;++o)s.push(e[o]);for(let o=0;o<r.length;++o)s.push(r[o]===1?e[o+t]:r[o]);return s},_w=(e,r)=>e.length>r.length?cd(e,r):cd(r,e),pw=e=>{let r=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),s=_w(r,t),o=e[0].dataType,a=o===9||Me.size(r)===1,n=o===9||r.length>0&&r[r.length-1]%4===0?4:1,i=a||s.length>0&&s[s.length-1]%4===0?4:1,l=Math.ceil(Me.size(s)/i),c=u=>{let d=Fe("input",o,r.length,n),g=it("output",o,s.length,i),h;if(o===9){let x=(F,v,b="")=>`
|
|
1341
1341
|
let outputIndices${v} = ${g.offsetToIndices(`outputOffset + ${v}u`)};
|
|
1342
1342
|
let offset${v} = ${d.broadcastedIndicesToOffset(`outputIndices${v}`,g)};
|
|
1343
1343
|
let index${v} = offset${v} / 4u;
|
|
@@ -1360,7 +1360,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1360
1360
|
${u.registerUniform("vec_size","u32").declareVariables(d,g)}
|
|
1361
1361
|
${u.mainStart()}
|
|
1362
1362
|
${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}
|
|
1363
|
-
${h}`},_=[{type:12,data:l},...dt(r,s)];return{name:"Expand",shaderCache:{hint:`${s.length};${n}${i}`,inputDependencies:["rank"]},getShaderSource:c,getRunData:()=>({outputs:[{dims:s,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:_})}},
|
|
1363
|
+
${h}`},_=[{type:12,data:l},...dt(r,s)];return{name:"Expand",shaderCache:{hint:`${s.length};${n}${i}`,inputDependencies:["rank"]},getShaderSource:c,getRunData:()=>({outputs:[{dims:s,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:_})}},fy=e=>{uw(e.inputs),e.compute(pw(e.inputs),{inputs:[0]})}}),mw,gy,jP=Ve(()=>{"use strict";Mt(),kt(),Ct(),du(),mw=e=>{let r=e[0].dataType,t=Me.size(e[0].dims),s=Me.size(e[1].dims),o=s%4===0,a=n=>{let i=Fe("x",r,[1],4),l=Fe("bias",r,[1],4),c=it("y",r,[1],4),_=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],u=g=>`
|
|
1364
1364
|
let bias${g}_offset: u32 = (global_idx * 4 + ${g}) % uniforms.bias_size;
|
|
1365
1365
|
let bias${g} = ${l.getByOffset(`bias${g}_offset / 4`)}[bias${g}_offset % 4];`,d=o?`
|
|
1366
1366
|
let bias = ${l.getByOffset("global_idx % (uniforms.bias_size / 4)")};`:`${u(0)}${u(1)}${u(2)}${u(3)}
|
|
@@ -1368,14 +1368,14 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1368
1368
|
|
|
1369
1369
|
${zd(Ur(r))}
|
|
1370
1370
|
|
|
1371
|
-
${n.mainStart(
|
|
1371
|
+
${n.mainStart(ha)}
|
|
1372
1372
|
${n.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_vec_size")}
|
|
1373
1373
|
|
|
1374
1374
|
let x = ${i.getByOffset("global_idx")};
|
|
1375
1375
|
${d}
|
|
1376
1376
|
let x_in = x + bias;
|
|
1377
1377
|
${c.setByOffset("global_idx",Rd("x_in"))}
|
|
1378
|
-
}`};return{name:"FastGeluWithBias",shaderCache:{hint:`${o}`,inputDependencies:["type","type"]},getShaderSource:a,getRunData:n=>({outputs:[{dims:n[0].dims,dataType:n[0].dataType}],programUniforms:[{type:12,data:Math.ceil(t/4)},{type:12,data:s}],dispatchGroup:{x:Math.ceil(t/
|
|
1378
|
+
}`};return{name:"FastGeluWithBias",shaderCache:{hint:`${o}`,inputDependencies:["type","type"]},getShaderSource:a,getRunData:n=>({outputs:[{dims:n[0].dims,dataType:n[0].dataType}],programUniforms:[{type:12,data:Math.ceil(t/4)},{type:12,data:s}],dispatchGroup:{x:Math.ceil(t/ha/4)}})}},gy=e=>{e.inputs.length<2||Me.size(e.inputs[1].dims)===0?Bx(e):e.compute(mw(e.inputs))}}),hw,fw,My,wy,VP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),hw=e=>{if(!e||e.length!==2)throw new Error("Gather requires 2 inputs.")},fw=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,a=Me.normalizeAxis(r.axis,o),n=t.slice(0);n.splice(a,1,...s);let i=t[a],l=e[0].dataType===9?4:1,c=Math.ceil(Me.size(n)/l),_=[{type:12,data:c},{type:6,data:i},{type:12,data:a},...dt(e[0].dims,e[1].dims,n)],u=d=>{let g=Fe("data",e[0].dataType,e[0].dims.length,l),h=Fe("inputIndices",e[1].dataType,e[1].dims.length),x=it("output",e[0].dataType,n.length,l),F=b=>{let C=s.length,y=`var indicesIndices${b} = ${h.type.indices}(0);`;for(let P=0;P<C;P++)y+=`${C>1?`indicesIndices${b}[${P}]`:`indicesIndices${b}`} = ${n.length>1?`outputIndices${b}[uniforms.axis + ${P}]`:`outputIndices${b}`};`;y+=`
|
|
1379
1379
|
var idx${b} = ${h.getByIndices(`indicesIndices${b}`)};
|
|
1380
1380
|
if (idx${b} < 0) {
|
|
1381
1381
|
idx${b} = idx${b} + uniforms.axisDimLimit;
|
|
@@ -1406,7 +1406,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1406
1406
|
${d.mainStart()}
|
|
1407
1407
|
${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
|
|
1408
1408
|
${v}
|
|
1409
|
-
}`};return{name:"Gather",shaderCache:{hint:r.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:_}),getShaderSource:u}},
|
|
1409
|
+
}`};return{name:"Gather",shaderCache:{hint:r.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:_}),getShaderSource:u}},My=e=>jt({axis:e.axis}),wy=(e,r)=>{let t=e.inputs;hw(t),e.compute(fw(e.inputs,r))}}),gw,by,vy,WP=Ve(()=>{"use strict";Mt(),kt(),Ct(),gw=(e,r,t,s,o,a,n,i,l)=>{let c=[{type:12,data:a},{type:12,data:s},{type:12,data:o},{type:12,data:t},{type:12,data:n},{type:12,data:i},{type:12,data:l}],_=[a];c.push(...dt(r.dims,_));let u=d=>{let g=Fe("indices_data",r.dataType,r.dims.length),h=it("input_slice_offsets_data",12,1,1),x=[g,h],F=[{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:t.length},{name:"num_slices_per_batch",type:"u32"},{name:"input_batch_stride",type:"u32"},{name:"num_slice_dims",type:"u32"}];return`
|
|
1410
1410
|
${d.registerUniforms(F).declareVariables(...x)}
|
|
1411
1411
|
${d.mainStart()}
|
|
1412
1412
|
${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
@@ -1425,13 +1425,13 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1425
1425
|
}
|
|
1426
1426
|
|
|
1427
1427
|
input_slice_offsets_data[global_idx] = base_offset + u32(relative_slice_offset);
|
|
1428
|
-
}`};return e.compute({name:"computeSliceOffsets",shaderCache:{hint:`${o.length}_${t.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:_,dataType:e.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:c}),getShaderSource:u},{inputs:[r],outputs:[-1]})[0]},
|
|
1428
|
+
}`};return e.compute({name:"computeSliceOffsets",shaderCache:{hint:`${o.length}_${t.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:_,dataType:e.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:c}),getShaderSource:u},{inputs:[r],outputs:[-1]})[0]},by=(e,r)=>{let t=e.inputs,s=t[0].dims,o=t[0].dataType,a=t[1].dims,n=a[a.length-1],i=Me.sizeToDimension(a,a.length-1),l=Me.sizeFromDimension(s,r.batchDims+n),c=Me.sizeToDimension(s,r.batchDims),_=Me.sizeFromDimension(s,r.batchDims),u=i/c,d=new Array(n),g=l;for(let y=0;y<n;++y)d[n-1-y]=g,g*=s[r.batchDims+n-1-y];let h=gw(e,t[1],d,r.batchDims,s,i,u,_,n),x=r.batchDims+n;if(x>s.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let F=a.slice(0,-1).concat(s.slice(x)),v=Me.size(F),b=[{type:12,data:v},{type:12,data:l},...dt(t[0].dims,h.dims,F)],C=y=>{let P=Fe("data",t[0].dataType,t[0].dims.length),I=Fe("slice_offsets",12,h.dims.length),f=it("output",t[0].dataType,F.length);return`
|
|
1429
1429
|
${y.registerUniform("output_size","u32").registerUniform("slice_size","u32").declareVariables(P,I,f)}
|
|
1430
1430
|
${y.mainStart()}
|
|
1431
1431
|
${y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
1432
1432
|
let slice_offset = slice_offsets[global_idx / uniforms.slice_size];
|
|
1433
1433
|
output[global_idx] = data[u32(slice_offset) + global_idx % uniforms.slice_size];
|
|
1434
|
-
}`};e.compute({name:"GatherND",shaderCache:{hint:r.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:F,dataType:o}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:b}),getShaderSource:C},{inputs:[t[0],h]})},
|
|
1434
|
+
}`};e.compute({name:"GatherND",shaderCache:{hint:r.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:F,dataType:o}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:b}),getShaderSource:C},{inputs:[t[0],h]})},vy=e=>({batchDims:e.batch_dims,cacheKey:""})}),Mw,ww,xy,yy,UP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Mw=(e,r)=>{if(e.length<3||e.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let t=Me.normalizeAxis(r.quantizeAxis,e[0].dims.length),s=r.blockSize,o=e[0],a=e[2],n=e.length===4?e[3]:void 0;if(a.dims.length!==o.dims.length||!o.dims.map((i,l)=>l===t?Math.ceil(i/s)===a.dims[l]:i===a.dims[l]).reduce((i,l)=>i&&l,!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(n){if(n.dataType!==o.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(n.dims.length!==a.dims.length||!n.dims.map((i,l)=>i===a.dims[l]).reduce((i,l)=>i&&l,!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},ww=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,a=Me.normalizeAxis(r.gatherAxis,o),n=Me.normalizeAxis(r.quantizeAxis,o),i=t.slice(0);i.splice(a,1,...s);let l=Me.size(i),c=e[2].dataType,_=e[0].dataType===22,u=[{type:12,data:l},{type:12,data:n},{type:12,data:a},{type:12,data:r.blockSize},...dt(...e.map((g,h)=>g.dims),i)],d=g=>{let h=Fe("data",e[0].dataType,e[0].dims.length),x=Fe("inputIndices",e[1].dataType,e[1].dims.length),F=Fe("scales",e[2].dataType,e[2].dims.length),v=e.length>3?Fe("zeroPoint",e[3].dataType,e[3].dims.length):void 0,b=it("output",c,i.length),C=[h,x,F];v&&C.push(v);let y=[{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}];return`
|
|
1435
1435
|
${g.registerUniforms(y).declareVariables(...C,b)}
|
|
1436
1436
|
${g.mainStart()}
|
|
1437
1437
|
let output_indices = ${b.offsetToIndices("global_idx")};
|
|
@@ -1476,8 +1476,8 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1476
1476
|
let zero_point = zero_point_vec[zero_point_index / 2];`:"var zero_point = 0"};
|
|
1477
1477
|
let dequantized_data = ${Ur(c)}(quantized_data - zero_point) * scale;
|
|
1478
1478
|
${b.setByOffset("global_idx","dequantized_data")};
|
|
1479
|
-
}`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${r.cacheKey};${e.filter((g,h)=>h!==1).map(g=>g.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:e.length},(g,h)=>"rank")},getRunData:()=>({outputs:[{dims:i,dataType:c}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:u}),getShaderSource:d}},
|
|
1480
|
-
indices input tensors be of same rank.`)},
|
|
1479
|
+
}`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${r.cacheKey};${e.filter((g,h)=>h!==1).map(g=>g.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:e.length},(g,h)=>"rank")},getRunData:()=>({outputs:[{dims:i,dataType:c}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:u}),getShaderSource:d}},xy=(e,r)=>{let t=e.inputs;Mw(t,r),e.compute(ww(e.inputs,r))},yy=e=>jt({blockSize:e.blockSize,gatherAxis:e.gatherAxis,quantizeAxis:e.quantizeAxis})}),bw,vw,Ty,Py,GP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),bw=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
|
|
1480
|
+
indices input tensors be of same rank.`)},vw=(e,r)=>{let t=e[0].dims,s=e[0].dataType,o=t.length,a=e[1].dims,n=e[1].dataType,i=Me.normalizeAxis(r.axis,o),l=t[i],c=a.slice(0),_=Me.size(c),u=Fe("input",s,o),d=Fe("indicesInput",n,a.length),g=it("output",s,c.length),h=[{type:12,data:_},{type:6,data:l},{type:12,data:i}];return h.push(...dt(t,a,c)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:c,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(_/64)},programUniforms:h}),getShaderSource:x=>`
|
|
1481
1481
|
${x.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(u,d,g)}
|
|
1482
1482
|
${x.mainStart()}
|
|
1483
1483
|
${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
|
|
@@ -1493,7 +1493,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1493
1493
|
let value = ${u.getByIndices("inputIndices")};
|
|
1494
1494
|
|
|
1495
1495
|
${g.setByOffset("global_idx","value")};
|
|
1496
|
-
}`}},
|
|
1496
|
+
}`}},Ty=e=>jt({axis:e.axis}),Py=(e,r)=>{let t=e.inputs;bw(t),e.compute(vw(e.inputs,r))}}),xw,yw,Ey,ky,KP=Ve(()=>{"use strict";Mt(),kt(),Ct(),xw=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")},yw=(e,r)=>{let t=e[0].dims.slice(),s=e[1].dims.slice(),[o,a,n]=Tv.getShapeOfGemmResult(t,r.transA,s,r.transB,e.length===3?e[2].dims:void 0),i=[o,a];if(!i)throw new Error("Can't use gemm on the given tensors");let l=16,c=Math.ceil(a/l),_=Math.ceil(o/l),u=!0,d=Me.size(i),g=[{type:12,data:u?c:d},{type:12,data:o},{type:12,data:a},{type:12,data:n},{type:1,data:r.alpha},{type:1,data:r.beta}],h=["type","type"];e.length===3&&(g.push(...dt(e[2].dims)),h.push("rank")),g.push(...dt(i));let x=v=>{let b="";r.transA&&r.transB?b="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":r.transA&&!r.transB?b="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!r.transA&&r.transB?b="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!r.transA&&!r.transB&&(b="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let C=r.alpha===1?"":"value *= uniforms.alpha;",y=Fe("a",e[0].dataType,e[0].dims),P=Fe("b",e[1].dataType,e[1].dims),I=y.type.value,f=null,E=[y,P];e.length===3&&(f=Fe("c",e[2].dataType,e[2].dims.length),E.push(f));let D=it("output",e[0].dataType,i.length);E.push(D);let O=[{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`
|
|
1497
1497
|
${v.registerUniforms(O).declareVariables(...E)}
|
|
1498
1498
|
|
|
1499
1499
|
${v.mainStart()}
|
|
@@ -1602,7 +1602,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1602
1602
|
if (m < uniforms.M && n < uniforms.N) {
|
|
1603
1603
|
output[m * uniforms.N + n] = value;
|
|
1604
1604
|
}
|
|
1605
|
-
}`};return u?{name:"GemmShared",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:c*_},programUniforms:g}),getShaderSource:F}:{name:"Gemm",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:g}),getShaderSource:x}},
|
|
1605
|
+
}`};return u?{name:"GemmShared",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:c*_},programUniforms:g}),getShaderSource:F}:{name:"Gemm",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:g}),getShaderSource:x}},Ey=e=>{let r=e.transA,t=e.transB,s=e.alpha,o=e.beta;return{transA:r,transB:t,alpha:s,beta:o,cacheKey:`${e.transA};${e.transB};${e.alpha===1}`}},ky=(e,r)=>{xw(e.inputs),e.compute(yw(e.inputs,r))}}),Bs,Qs,Ao,$o,Tw,Pw,Ew,kw,Cw,Sw,Fw,Iw,Cy,Sy,HP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),[Bs,Qs,Ao,$o]=[0,1,2,3],Tw=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")},Pw=`
|
|
1606
1606
|
fn gs_get_cubic_coeffs(x: f32) -> vec4<f32> {
|
|
1607
1607
|
let cubic_alpha = -0.75f;
|
|
1608
1608
|
let x_abs = abs(x);
|
|
@@ -1613,7 +1613,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1613
1613
|
coeffs[3] = (((cubic_alpha * (2 - x_abs) - 5 * cubic_alpha) * (2 - x_abs) + 8 * cubic_alpha) * (2 - x_abs) - 4 * cubic_alpha);
|
|
1614
1614
|
return coeffs;
|
|
1615
1615
|
}
|
|
1616
|
-
`,
|
|
1616
|
+
`,Ew=e=>`
|
|
1617
1617
|
fn gs_bicubic_interpolate(p: mat4x4<${e}>, x: f32, y: f32) -> ${e} {
|
|
1618
1618
|
var v: vec4<f32>;
|
|
1619
1619
|
var coeffs = gs_get_cubic_coeffs(x);
|
|
@@ -1624,7 +1624,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1624
1624
|
let pixel = ${e}(coeffs[0] * v[0] + coeffs[1] * v[1] + coeffs[2] * v[2] + coeffs[3] * v[3]);
|
|
1625
1625
|
return pixel;
|
|
1626
1626
|
}
|
|
1627
|
-
`,
|
|
1627
|
+
`,kw=e=>`
|
|
1628
1628
|
fn gs_denormalize(n: f32, length: i32) -> f32 {
|
|
1629
1629
|
${e.alignCorners===0?`
|
|
1630
1630
|
// alignCorners: false => [-1, 1] to [-0.5, length - 0.5]
|
|
@@ -1634,7 +1634,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1634
1634
|
return (n + 1.0) / 2.0 * (f32(length - 1));
|
|
1635
1635
|
`}
|
|
1636
1636
|
}
|
|
1637
|
-
`,
|
|
1637
|
+
`,Cw=e=>`
|
|
1638
1638
|
${e.paddingMode==="reflection"?`
|
|
1639
1639
|
fn gs_reflect(x: i32, x_min: f32, x_max: f32) -> u32 {
|
|
1640
1640
|
var dx = 0.0;
|
|
@@ -1661,28 +1661,28 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1661
1661
|
}
|
|
1662
1662
|
return u32(fx);
|
|
1663
1663
|
}`:""}
|
|
1664
|
-
`,
|
|
1664
|
+
`,Sw=(e,r,t)=>`
|
|
1665
1665
|
fn pixel_at_grid(r: i32, c: i32, H: i32, W: i32, batch: u32, channel: u32, border: vec4<f32>) -> ${r} {
|
|
1666
1666
|
var pixel = ${r}(0);
|
|
1667
1667
|
var indices = vec4<u32>(0);
|
|
1668
1668
|
indices[${Bs}] = batch;
|
|
1669
1669
|
indices[${Qs}] = channel;`+(()=>{switch(t.paddingMode){case"zeros":return`
|
|
1670
1670
|
if (r >= 0 && r < H && c >=0 && c < W) {
|
|
1671
|
-
indices[${
|
|
1672
|
-
indices[${
|
|
1671
|
+
indices[${Ao}] = u32(r);
|
|
1672
|
+
indices[${$o}] = u32(c);
|
|
1673
1673
|
} else {
|
|
1674
1674
|
return ${r}(0);
|
|
1675
1675
|
}
|
|
1676
1676
|
`;case"border":return`
|
|
1677
|
-
indices[${
|
|
1678
|
-
indices[${
|
|
1677
|
+
indices[${Ao}] = u32(clamp(r, 0, H - 1));
|
|
1678
|
+
indices[${$o}] = u32(clamp(c, 0, W - 1));
|
|
1679
1679
|
`;case"reflection":return`
|
|
1680
|
-
indices[${
|
|
1681
|
-
indices[${
|
|
1680
|
+
indices[${Ao}] = gs_reflect(r, border[1], border[3]);
|
|
1681
|
+
indices[${$o}] = gs_reflect(c, border[0], border[2]);
|
|
1682
1682
|
`;default:throw new Error(`padding mode ${t.paddingMode} is not supported`)}})()+`
|
|
1683
1683
|
return ${e.getByIndices("indices")};
|
|
1684
1684
|
}
|
|
1685
|
-
`,
|
|
1685
|
+
`,Fw=(e,r,t)=>(()=>{switch(t.mode){case"nearest":return`
|
|
1686
1686
|
let result = pixel_at_grid(i32(round(y)), i32(round(x)), H_in, W_in, indices[${Bs}], indices[${Qs}], border);
|
|
1687
1687
|
`;case"bilinear":return`
|
|
1688
1688
|
let x1 = i32(floor(x));
|
|
@@ -1713,18 +1713,18 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1713
1713
|
let dx = x - f32(x0 + 1);
|
|
1714
1714
|
let dy = y - f32(y0 + 1);
|
|
1715
1715
|
let result = gs_bicubic_interpolate(p, dx, dy);
|
|
1716
|
-
`;default:throw new Error(`mode ${t.mode} is not supported`)}})()+`${e.setByOffset("global_idx","result")}`,
|
|
1716
|
+
`;default:throw new Error(`mode ${t.mode} is not supported`)}})()+`${e.setByOffset("global_idx","result")}`,Iw=(e,r)=>{let t=Fe("x",e[0].dataType,e[0].dims.length),s=[e[1].dims[0],e[1].dims[1],e[1].dims[2]],o=Fe("grid",e[1].dataType,s.length,2),a=[e[0].dims[0],e[0].dims[1],e[1].dims[1],e[1].dims[2]];r.format==="NHWC"&&(a=[e[0].dims[0],e[1].dims[1],e[1].dims[2],e[0].dims[3]],[Bs,Qs,Ao,$o]=[0,3,1,2]);let n=it("output",e[0].dataType,a.length),i=t.type.value,l=Me.size(a),c=[{type:12,data:l},...dt(e[0].dims,s,a)],_=u=>`
|
|
1717
1717
|
${u.registerUniform("output_size","u32").declareVariables(t,o,n)}
|
|
1718
|
-
${
|
|
1719
|
-
${
|
|
1720
|
-
${Ew(r)}
|
|
1718
|
+
${Pw}
|
|
1719
|
+
${Ew(i)}
|
|
1721
1720
|
${kw(r)}
|
|
1722
|
-
${Cw(
|
|
1721
|
+
${Cw(r)}
|
|
1722
|
+
${Sw(t,i,r)}
|
|
1723
1723
|
|
|
1724
1724
|
${u.mainStart()}
|
|
1725
1725
|
${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
1726
|
-
let H_in = i32(uniforms.x_shape[${
|
|
1727
|
-
let W_in = i32(uniforms.x_shape[${
|
|
1726
|
+
let H_in = i32(uniforms.x_shape[${Ao}]);
|
|
1727
|
+
let W_in = i32(uniforms.x_shape[${$o}]);
|
|
1728
1728
|
|
|
1729
1729
|
${r.alignCorners===0?`
|
|
1730
1730
|
let x_min = -0.5;
|
|
@@ -1740,20 +1740,20 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
|
|
|
1740
1740
|
let border = vec4<f32>(x_min, y_min, x_max, y_max);
|
|
1741
1741
|
|
|
1742
1742
|
let indices = ${n.offsetToIndices("global_idx")};
|
|
1743
|
-
var grid_indices = vec3<u32>(indices[${Bs}], indices[${
|
|
1743
|
+
var grid_indices = vec3<u32>(indices[${Bs}], indices[${Ao}], indices[${$o}]);
|
|
1744
1744
|
let nxy = ${o.getByIndices("grid_indices")};
|
|
1745
1745
|
var x = gs_denormalize(f32(nxy[0]), W_in);
|
|
1746
1746
|
var y = gs_denormalize(f32(nxy[1]), H_in);
|
|
1747
1747
|
|
|
1748
|
-
${
|
|
1749
|
-
}`;return{name:"GridSample",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:["type","type"]},getRunData:u=>{let d=Me.size(a);return{outputs:[{dims:a,dataType:u[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:c}},getShaderSource:_}},
|
|
1748
|
+
${Fw(n,i,r)}
|
|
1749
|
+
}`;return{name:"GridSample",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:["type","type"]},getRunData:u=>{let d=Me.size(a);return{outputs:[{dims:a,dataType:u[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:c}},getShaderSource:_}},Cy=(e,r)=>{Tw(e.inputs),e.compute(Iw(e.inputs,r))},Sy=e=>jt({alignCorners:e.align_corners,mode:e.mode,paddingMode:e.padding_mode,format:e.format})}),qr,Aw,Fy,dd,$w,un,Iy,Ay=Ve(()=>{"use strict";Mt(),kt(),hr(),nu(),cu(),Ct(),po(),qr=(e,r)=>e.length>r&&e[r].dims.length>0?e[r]:void 0,Aw=(e,r)=>{let t=e[0],s=qr(e,1),o=qr(e,2),a=qr(e,3),n=qr(e,4),i=qr(e,5),l=qr(e,6),c=qr(e,7);if(t.dims.length!==3&&t.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let _=t.dims[0],u=t.dims[1],d=t.dims.length===3?t.dims[2]:r.numHeads*t.dims[4],g=u,h=0,x=0,F=Math.floor(d/r.numHeads);if(l&&c&&Me.size(l.dims)&&Me.size(c.dims)){if(l.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(l.dims[0]!==_||l.dims[1]!==r.numHeads||l.dims[3]!==F)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');if(c.dims[0]!==_||c.dims[1]!==r.numHeads||c.dims[3]!==F)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(l.dims[2]!==c.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(c.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');h=l.dims[2],x=l.dims[2]}else if(l&&Me.size(l.dims)||c&&Me.size(c.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let v;if(s&&Me.size(s.dims)>0){if(t.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(s.dims.length<3||s.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(t.dims[0]!==s.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(s.dims.length===3){if(s.dims[2]!==t.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');v=2,g=s.dims[1]}else if(s.dims.length===5){if(s.dims[2]!==r.numHeads||s.dims[3]!==2||s.dims[4]!==F)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.');v=5,g=s.dims[1]}else{if(s.dims[1]!==r.numHeads||s.dims[3]!==F)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');v=0,g=s.dims[2]}}else{if(t.dims.length!==5)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(t.dims[2]!==r.numHeads||t.dims[3]!==3)throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');v=3}if(a&&Me.size(a.dims)>0){if(a.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimension');if(s&&s.dims.length===5&&s.dims[3]===2)throw new Error("bias is not allowed for packed kv.")}let b=h+g,C=0;if(n&&Me.size(n.dims)>0){C=8;let f=n.dims;throw f.length===1?f[0]===_?C=1:f[0]===3*_+2&&(C=3):f.length===2&&f[0]===_&&f[1]===b&&(C=5),C===8?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let y=!1,P=d;if(o&&Me.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(t.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(g!==o.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');P=o.dims[2]}else{if(g!==o.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');P=o.dims[1]*o.dims[3],y=!0}}let I=!1;if(n&&Me.size(n.dims)>0)throw new Error("Key padding mask is not supported");if(i&&Me.size(i.dims)>0){if(i.dims.length!==4)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(i.dims[0]!==_||i.dims[1]!==r.numHeads||i.dims[2]!==u||i.dims[3]!==b)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:_,sequenceLength:u,pastSequenceLength:h,kvSequenceLength:g,totalSequenceLength:b,maxSequenceLength:x,inputHiddenSize:0,hiddenSize:d,vHiddenSize:P,headSize:F,vHeadSize:Math.floor(P/r.numHeads),numHeads:r.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:r.maskFilterValue,maskType:C,scale:r.scale,broadcastResPosBias:I,passPastInKv:y,qkvFormat:v}},Fy=e=>jt({...e}),dd=jt({perm:[0,2,1,3]}),$w=(e,r,t,s,o,a,n)=>{let i=[s,o,a],l=Me.size(i),c=[{type:12,data:l},{type:12,data:n},{type:12,data:a}],_=u=>{let d=it("qkv_with_bias",r.dataType,i),g=Fe("qkv",r.dataType,i),h=Fe("bias",t.dataType,i),x=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return`
|
|
1750
1750
|
${u.registerUniforms(x).declareVariables(g,h,d)}
|
|
1751
1751
|
${u.mainStart()}
|
|
1752
1752
|
${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
1753
1753
|
let bias_offset_idx = (global_idx % uniforms.hidden_size) + uniforms.bias_offset;
|
|
1754
1754
|
|
|
1755
1755
|
qkv_with_bias[global_idx] = qkv[global_idx] + bias[bias_offset_idx];
|
|
1756
|
-
}`};return e.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:i,dataType:r.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c}),getShaderSource:_},{inputs:[r,t],outputs:[-1]})[0]},
|
|
1756
|
+
}`};return e.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:i,dataType:r.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c}),getShaderSource:_},{inputs:[r,t],outputs:[-1]})[0]},un=(e,r,t,s,o,a,n,i)=>{let l=a;if(n&&Me.size(n.dims)>0){if(s===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return l=$w(e,a,n,r,s,t*o,i),l=l.reshape([r,s,t,o]),t===1||s===1?l:e.compute(os(l,dd.perm),{inputs:[l],outputs:[-1]})[0]}else return a.dims.length===3&&(l=a.reshape([r,s,t,o])),t===1||s===1?l:e.compute(os(l,dd.perm),{inputs:[l],outputs:[-1]})[0]},Iy=(e,r)=>{let t=Aw(e.inputs,r),s=e.inputs[0],o=qr(e.inputs,1),a=qr(e.inputs,2),n=qr(e.inputs,3),i=qr(e.inputs,4),l=qr(e.inputs,5),c=qr(e.inputs,6),_=qr(e.inputs,7);if(s.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 u=o&&a&&o.dims.length===4&&a.dims.length===4,d=un(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,s,n,0);if(u)return hn(e,d,o,a,i,void 0,c,_,l,t);if(!o||!a)throw new Error("key and value must be provided");let g=un(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.headSize,o,n,t.hiddenSize),h=un(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.vHeadSize,a,n,2*t.hiddenSize);hn(e,d,g,h,i,void 0,c,_,l,t)}}),Dw,Ow,Lw,Bw,Ud,$y,Dy,Oy=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Dw=e=>{if(!e||e.length<1)throw new Error("too few inputs")},Ow=(e,r)=>{let t=[],s=r.numOutputs;return e[1].dims[0]>0&&(e[1].getBigInt64Array().forEach(o=>t.push(Number(o))),s=t.length),jt({numOutputs:s,axis:r.axis,splitSizes:t})},Lw=e=>`
|
|
1757
1757
|
fn calculateOutputIndex(index: u32) -> u32 {
|
|
1758
1758
|
for (var i: u32 = 0u; i < ${e}u; i += 1u ) {
|
|
1759
1759
|
if (index < ${lt("uniforms.size_in_split_axis","i",e)}) {
|
|
@@ -1761,14 +1761,14 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
1761
1761
|
}
|
|
1762
1762
|
}
|
|
1763
1763
|
return ${e}u;
|
|
1764
|
-
}`,
|
|
1764
|
+
}`,Bw=e=>{let r=e.length,t=[];for(let s=0;s<r;++s){let o=e[s].setByIndices("indices","input[global_idx]");r===1?t.push(o):s===0?t.push(`if (output_number == ${s}u) { ${o} }`):s===r-1?t.push(`else { ${o} }`):t.push(`else if (output_number == ${s}) { ${o} }`)}return`
|
|
1765
1765
|
fn writeBufferData(output_number: u32, indices: ${e[0].type.indices}, global_idx: u32) {
|
|
1766
1766
|
${t.join(`
|
|
1767
1767
|
`)}
|
|
1768
1768
|
}`},Ud=(e,r)=>{let t=e[0].dims,s=Me.size(t),o=e[0].dataType,a=Me.normalizeAxis(r.axis,t.length),n=new Array(r.numOutputs),i=Fe("input",o,t.length),l=new Array(r.numOutputs),c=[],_=[],u=0,d=[{type:12,data:s}];for(let h=0;h<r.numOutputs;h++){u+=r.splitSizes[h],l[h]=u;let x=t.slice();x[a]=r.splitSizes[h],_.push(x),n[h]=it(`output${h}`,o,x.length),c.push({dims:_[h],dataType:e[0].dataType})}d.push({type:12,data:l},...dt(t,..._));let g=h=>`
|
|
1769
1769
|
${h.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",l.length).declareVariables(i,...n)}
|
|
1770
|
-
${
|
|
1771
|
-
${
|
|
1770
|
+
${Lw(l.length)}
|
|
1771
|
+
${Bw(n)}
|
|
1772
1772
|
|
|
1773
1773
|
${h.mainStart()}
|
|
1774
1774
|
${h.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")}
|
|
@@ -1781,10 +1781,10 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
1781
1781
|
${i.indicesSet("indices",a,"index")};
|
|
1782
1782
|
}
|
|
1783
1783
|
writeBufferData(output_number, indices, global_idx);
|
|
1784
|
-
}`;return{name:"Split",shaderCache:{hint:r.cacheKey,inputDependencies:["rank"]},getShaderSource:g,getRunData:()=>({outputs:c,dispatchGroup:{x:Math.ceil(s/64)},programUniforms:d})}}
|
|
1784
|
+
}`;return{name:"Split",shaderCache:{hint:r.cacheKey,inputDependencies:["rank"]},getShaderSource:g,getRunData:()=>({outputs:c,dispatchGroup:{x:Math.ceil(s/64)},programUniforms:d})}},$y=(e,r)=>{Dw(e.inputs);let t=e.inputs.length===1?r:Ow(e.inputs,r);e.compute(Ud(e.inputs,t),{inputs:[0]})},Dy=e=>{let r=e.axis,t=e.splitSizes,s=e.numOutputs<0?t.length:e.numOutputs;if(s!==t.length)throw new Error("numOutputs and splitSizes lengh must be equal");return jt({axis:r,numOutputs:s,splitSizes:t})}}),zw,Xi,Ly,By=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),zw=(e,r)=>{let[t,s,o,a]=e,{numHeads:n,rotaryEmbeddingDim:i}=r;if(t.dims.length!==3&&t.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${t.dims.length}`);if(!Me.areEqual(s.dims,[])&&!Me.areEqual(s.dims,[1])&&s.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${s.dims.length}`);if(o.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${o.dims.length}`);if(a.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${a.dims.length}`);if(!Me.areEqual(o.dims,a.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(i>0&&n===0)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let l=t.dims[0],c=t.dims[t.dims.length-2],_=o.dims[0],u=Me.sizeFromDimension(t.dims,1)/c,d=i===0?o.dims[1]*2:u/n;if(i>d)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(s.dims.length===2){if(l!==s.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${s.dims[0]}`);if(c!==s.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${s.dims[1]}`)}if(d/2!==o.dims[1]&&i/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]}`);if(c>_)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},Xi=(e,r)=>{let{interleaved:t,numHeads:s,rotaryEmbeddingDim:o,scale:a}=r,n=e[0].dims[0],i=Me.sizeFromDimension(e[0].dims,1),l=e[0].dims[e[0].dims.length-2],c=i/l,_=e[2].dims[1],u=o===0?_*2:c/s,d=new Array(n,l,c/u,u-_),g=Me.computeStrides(d),h=[{type:1,data:a},{type:12,data:d},{type:12,data:g},...e[0].dims.length===3?new Array({type:12,data:[i,c,u,1]}):[],...e[0].dims.length===4?new Array({type:12,data:[i,u,l*u,1]}):[],...dt(e[0].dims,e[1].dims,e[2].dims,e[3].dims,e[0].dims)],x=F=>{let v=Fe("input",e[0].dataType,e[0].dims.length),b=Fe("position_ids",e[1].dataType,e[1].dims.length),C=Fe("cos_cache",e[2].dataType,e[2].dims.length),y=Fe("sin_cache",e[3].dataType,e[3].dims.length),P=it("output",e[0].dataType,e[0].dims.length);return F.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:d.length},{name:"global_strides",type:"u32",length:g.length},{name:"input_output_strides",type:"u32",length:g.length}]),`
|
|
1785
1785
|
${F.declareVariables(v,b,C,y,P)}
|
|
1786
1786
|
|
|
1787
|
-
${F.mainStart(
|
|
1787
|
+
${F.mainStart(ha)}
|
|
1788
1788
|
let half_rotary_emb_dim = uniforms.${C.name}_shape[1];
|
|
1789
1789
|
let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape;
|
|
1790
1790
|
let size = uniforms.global_shape[0] * uniforms.global_strides[0];
|
|
@@ -1807,7 +1807,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
1807
1807
|
let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim;
|
|
1808
1808
|
${P.setByOffset("k",v.getByOffset("k"))}
|
|
1809
1809
|
}
|
|
1810
|
-
}`};return{name:"RotaryEmbedding",shaderCache:{hint:jt({interleaved:t}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:x,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(Me.size(d)/
|
|
1810
|
+
}`};return{name:"RotaryEmbedding",shaderCache:{hint:jt({interleaved:t}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:x,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(Me.size(d)/ha)},programUniforms:h})}},Ly=(e,r)=>{zw(e.inputs,r),e.compute(Xi(e.inputs,r))}}),Rw,Nw,ud,jw,zy,qP=Ve(()=>{"use strict";hr(),Mt(),cu(),Ay(),Oy(),po(),By(),Ct(),Rw=(e,r)=>{if(r.doRotary&&e.length<=7)throw new Error("cos_cache and sin_cache inputs are required if do_rotary is specified");let t=e[0],s=e[1],o=e[2],a=e[3],n=e[4];if(r.doRotary!==0&&e.length<=7)throw new Error("cos_cast and sin_cache are expected if do_rotary attribute is non-zero");if(r.localWindowSize!==-1)throw new Error("Local attention is not supported");if(r.softcap!==0)throw new Error("Softcap is not supported");if(r.rotaryInterleaved!==0)throw new Error("Rotary interleaved is not supported");if(r.smoothSoftmax)throw new Error("Smooth softmax is not supported");if(t.dims.length!==3&&t.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let i=!1,l=t.dims[0],c=t.dims[1],_=t.dims.length===3?i?t.dims[2]/3:t.dims[2]:r.numHeads*t.dims[4],u=c,d=0,g=!s||s.dims.length===0,h=Math.floor(g?_/(r.numHeads+2*r.kvNumHeads):_/r.numHeads);g&&(_=h*r.numHeads);let x=a&&a.dims.length!==0,F=n&&n.dims.length!==0;if(x&&a.dims.length===4&&a.dims[0]===l&&a.dims[1]!==r.kvNumHeads&&a.dims[2]===r.kvNumHeads&&a.dims[3]===h)throw new Error("BSNH pastKey/pastValue is not supported");if(x&&F){if(a.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(n.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');d=a.dims[2]}else if(x||F)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let v=1;if(s&&s.dims.length>0){if(t.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(s.dims.length<3||s.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(t.dims[0]!==s.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(s.dims.length===3){if(t.dims[2]%s.dims[2]!==0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');u=s.dims[1]}else if(s.dims.length===5){if(s.dims[2]!==r.numHeads||s.dims[3]!==2||s.dims[4]!==h)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.');u=s.dims[1]}else{if(s.dims[1]!==r.numHeads||s.dims[3]!==h)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');u=s.dims[2]}}else{if(t.dims.length!==3&&t.dims.length!==5)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(t.dims.length===5&&(t.dims[2]!==r.numHeads||t.dims[3]!==3))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');v=3}let b=0,C=!1,y=r.kvNumHeads?h*r.kvNumHeads:_;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(t.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(u!==o.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');y=o.dims[2]}else{if(u!==o.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');y=o.dims[1]*o.dims[3],C=!0}}let P=e.length>4?e[5]:void 0;if(P&&P.dims.length!==1&&P.dims[0]!==l)throw new Error('Input "seqlens" is expected to have 1 dimension and the same dim 0 as batch_size');return{batchSize:l,sequenceLength:c,pastSequenceLength:d,kvSequenceLength:u,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:_,vHiddenSize:y,headSize:h,vHeadSize:Math.floor(y/r.kvNumHeads),numHeads:r.numHeads,kvNumHeads:r.kvNumHeads,nReps:r.numHeads/r.kvNumHeads,pastPresentShareBuffer:!1,maskType:b,scale:r.scale,broadcastResPosBias:!1,passPastInKv:C,qkvFormat:v}},Nw=jt({perm:[0,2,1,3]}),ud=(e,r,t)=>{let s=r,o=t.kvNumHeads;return r.dims.length===3&&t.kvSequenceLength!==0&&(s=r.reshape([t.batchSize,t.kvSequenceLength,o,t.headSize]),s=e.compute(os(s,Nw.perm),{inputs:[s],outputs:[-1]})[0]),s},jw=(e,r,t,s)=>{let o=7,a=["type","type"],n=[e*r],i=e*r,l=[{type:12,data:i},{type:12,data:r},{type:12,data:e}],c=_=>{let u=Fe("seq_lens",t.dataType,t.dims),d=Fe("total_seq_lens",s.dataType,s.dims),g=it("pos_ids",o,n),h=[{name:"output_size",type:"u32"},{name:"sequence_length",type:"u32"},{name:"batch_size",type:"u32"}];return`
|
|
1811
1811
|
${_.registerUniforms(h).declareVariables(u,d,g)}
|
|
1812
1812
|
${_.mainStart()}
|
|
1813
1813
|
${_.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
@@ -1838,7 +1838,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
1838
1838
|
${g.setByOffset("global_idx","seqlen")}
|
|
1839
1839
|
};
|
|
1840
1840
|
}
|
|
1841
|
-
`};return{name:"GeneratePositionIds",shaderCache:{hint:`${e};${r}`,inputDependencies:a},getRunData:()=>({outputs:[{dims:n,dataType:o}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:l}),getShaderSource:c}},
|
|
1841
|
+
`};return{name:"GeneratePositionIds",shaderCache:{hint:`${e};${r}`,inputDependencies:a},getRunData:()=>({outputs:[{dims:n,dataType:o}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:l}),getShaderSource:c}},zy=(e,r)=>{let t=Rw(e.inputs,r);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 s=e.inputs[0],o=e.inputs[1]&&e.inputs[1].dims.length>0?e.inputs[1]:void 0,a=e.inputs[2]&&e.inputs[2].dims.length>0?e.inputs[2]:void 0,n=e.inputs[3]&&e.inputs[3].dims.length!==0?e.inputs[3]:void 0,i=e.inputs[4]&&e.inputs[4].dims.length!==0?e.inputs[4]:void 0,l=e.inputs.length>4?e.inputs[5]:void 0,c=e.inputs.length>5?e.inputs[6]:void 0,_=t.kvNumHeads?t.kvNumHeads:t.numHeads,u=jt({axis:2,numOutputs:3,splitSizes:[t.numHeads*t.headSize,_*t.headSize,_*t.headSize]}),[d,g,h]=!o&&!a?e.compute(Ud([s],u),{inputs:[s],outputs:[-1,-1,-1]}):[s,o,a],x,F;if(r.doRotary){let y=e.compute(jw(t.batchSize,t.sequenceLength,l,c),{inputs:[l,c],outputs:[-1]})[0],P=e.inputs[7],I=e.inputs[8],f=jt({interleaved:r.rotaryInterleaved!==0,numHeads:t.numHeads,rotaryEmbeddingDim:0,scale:r.scale}),E=[d,y,P,I],D=[-1];x=e.compute(Xi(E,f),{inputs:E,outputs:D})[0],E.splice(0,1,g);let O=jt({interleaved:r.rotaryInterleaved!==0,numHeads:t.kvNumHeads,rotaryEmbeddingDim:0,scale:r.scale});F=e.compute(Xi(E,O),{inputs:E,outputs:D})[0]}let v=un(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,r.doRotary?x:d,void 0,0),b=ud(e,r.doRotary?F:g,t),C=ud(e,h,t);hn(e,v,b,C,void 0,void 0,n,i,void 0,t,l,c)}}),_d,Vw,Ww,Ry,QP=Ve(()=>{"use strict";Mt(),kt(),po(),Ct(),_d=(e,r,t,s,o,a,n,i)=>{let l=dr(a),c=l===1?"f32":`vec${l}f`,_=l===1?"vec2f":`mat2x${l}f`,u=o*n,d=64;u===1&&(d=256);let g=[o,n,a/l],h=[o,n,2],x=["rank","type","type"],F=[];F.push(...dt(g,h));let v=b=>{let C=Fe("x",r.dataType,3,l),y=Fe("scale",t.dataType,t.dims),P=Fe("bias",s.dataType,s.dims),I=it("output",1,3,2),f=[C,y,P,I];return`
|
|
1842
1842
|
var<workgroup> workgroup_shared : array<${_}, ${d}>;
|
|
1843
1843
|
const workgroup_size = ${d}u;
|
|
1844
1844
|
${b.declareVariables(...f)}
|
|
@@ -1872,7 +1872,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
1872
1872
|
let channel_shift = f32(bias[channel]) - sum_final * channel_scale;
|
|
1873
1873
|
output[workgroup_index] = vec2f(channel_scale, channel_shift);
|
|
1874
1874
|
}
|
|
1875
|
-
}`};return e.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${l};${i};${d}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:h,dataType:1}],dispatchGroup:{x:u},programUniforms:F}),getShaderSource:v},{inputs:[r,t,s],outputs:[-1]})[0]},
|
|
1875
|
+
}`};return e.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${l};${i};${d}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:h,dataType:1}],dispatchGroup:{x:u},programUniforms:F}),getShaderSource:v},{inputs:[r,t,s],outputs:[-1]})[0]},Vw=(e,r,t)=>{let s=r[0].dims,o=s,a=2,n=s[0],i=s[1],l=Me.sizeFromDimension(s,a),c=dr(l),_=Me.size(o)/c,u=_d(e,r[0],r[1],r[2],n,l,i,t.epsilon),d=[n,i,l/c],g=[n,i],h=["type","none"],x=F=>{let v=Fe("x",r[0].dataType,d.length,c),b=Fe("scale_shift",1,g.length,2),C=it("output",r[0].dataType,d.length,c),y=[v,b,C];return`
|
|
1876
1876
|
${F.registerUniform("output_size","u32").declareVariables(...y)}
|
|
1877
1877
|
${F.mainStart()}
|
|
1878
1878
|
${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
@@ -1882,7 +1882,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
1882
1882
|
let scale_shift = ${b.getByIndices("vec2<u32>(batch, channel)")};
|
|
1883
1883
|
let value = ${v.getByOffset("global_idx")} * ${C.type.value}(scale_shift.x) + ${C.type.value}(scale_shift.y);
|
|
1884
1884
|
${C.setByOffset("global_idx","value")};
|
|
1885
|
-
}`};e.compute({name:"InstanceNormalization",shaderCache:{hint:`${c}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(_/64)},programUniforms:[{type:12,data:_},...dt(d,g,d)]}),getShaderSource:x},{inputs:[r[0],u]})},
|
|
1885
|
+
}`};e.compute({name:"InstanceNormalization",shaderCache:{hint:`${c}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(_/64)},programUniforms:[{type:12,data:_},...dt(d,g,d)]}),getShaderSource:x},{inputs:[r[0],u]})},Ww=(e,r,t)=>{let s=r[0].dims,o=s,a=s[0],n=s[s.length-1],i=Me.sizeFromDimension(s,1)/n,l=dr(n),c=Me.size(o)/l,_=[{type:12,data:i},{type:12,data:Math.floor(n/l)}],u=["type","type"],d=!1,g=[0,s.length-1];for(let v=0;v<s.length-2;v++)d=d||s[v+1]!==1,g.push(v+1);d=d&&s[s.length-1]!==1;let h=d?e.compute(os(e.inputs[0],g),{inputs:[e.inputs[0]],outputs:[-1]})[0]:e.inputs[0].reshape(Array.from({length:s.length},(v,b)=>s[g[b]])),x=_d(e,h,r[1],r[2],a,i,n,t.epsilon),F=v=>{let b=$r(r[0].dataType),C=l===1?"vec2f":`mat${l}x2f`,y=f=>{let E=f===0?"x":"y",D=l===1?"f32":`vec${l}f`;switch(l){case 1:return`${b}(${D}(scale.${E}))`;case 2:return`vec2<${b}>(${D}(scale[0].${E}, scale[1].${E}))`;case 4:return`vec4<${b}>(${D}(scale[0].${E}, scale[1].${E}, scale[2].${E}, scale[3].${E}))`;default:throw new Error(`Not supported compoents ${l}`)}},P=Fe("input",r[0].dataType,r[0].dims,l),I=it("output",r[0].dataType,o,l);return`
|
|
1886
1886
|
@group(0) @binding(0) var<storage, read> input : array<${P.type.storage}>;
|
|
1887
1887
|
@group(0) @binding(1) var<storage, read> scale_input : array<${C}>;
|
|
1888
1888
|
@group(0) @binding(2) var<storage, read_write> output : array<${I.type.storage}>;
|
|
@@ -1896,7 +1896,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
1896
1896
|
let scale_offset = current_image_number * uniforms.C + current_channel_number;
|
|
1897
1897
|
let scale = scale_input[scale_offset];
|
|
1898
1898
|
output[global_idx] = fma(input[global_idx], ${y(0)}, ${y(1)});
|
|
1899
|
-
}`};e.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${l}`,inputDependencies:u},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:_}),getShaderSource:F},{inputs:[r[0],x]})},
|
|
1899
|
+
}`};e.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${l}`,inputDependencies:u},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:_}),getShaderSource:F},{inputs:[r[0],x]})},Ry=(e,r)=>{r.format==="NHWC"?Ww(e,e.inputs,r):Vw(e,e.inputs,r)}}),Uw,Gw,Ny,XP=Ve(()=>{"use strict";Mt(),kt(),Ct(),Uw=e=>{if(!e||e.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Gw=(e,r,t)=>{let s=r.simplified,o=e[0].dims,a=e[1],n=!s&&e[2],i=o,l=Me.normalizeAxis(r.axis,o.length),c=Me.sizeToDimension(o,l),_=Me.sizeFromDimension(o,l),u=Me.size(a.dims),d=n?Me.size(n.dims):0;if(u!==_||n&&d!==_)throw new Error(`Size of X.shape()[axis:] == ${_}.
|
|
1900
1900
|
Size of scale and bias (if provided) must match this.
|
|
1901
1901
|
Got scale size of ${u} and bias size of ${d}`);let g=[];for(let P=0;P<o.length;++P)P<l?g.push(o[P]):g.push(1);let h=dr(_),x=["type","type"],F=[{type:12,data:c},{type:1,data:_},{type:12,data:Math.floor(_/h)},{type:1,data:r.epsilon}];n&&x.push("type");let v=t>1,b=t>2,C=P=>{let I=$r(e[0].dataType),f=[Fe("x",e[0].dataType,e[0].dims,h),Fe("scale",a.dataType,a.dims,h)];n&&f.push(Fe("bias",n.dataType,n.dims,h)),f.push(it("output",e[0].dataType,i,h)),v&&f.push(it("mean_data_output",1,g)),b&&f.push(it("inv_std_output",1,g));let E=[{name:"norm_count",type:"u32"},{name:"norm_size",type:"f32"},{name:"norm_size_vectorized",type:"u32"},{name:"epsilon",type:"f32"}];return`
|
|
1902
1902
|
${P.registerUniforms(E).declareVariables(...f)}
|
|
@@ -1907,7 +1907,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
1907
1907
|
var mean_square_vector = ${Od("f32",h)};
|
|
1908
1908
|
|
|
1909
1909
|
for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) {
|
|
1910
|
-
let value = ${
|
|
1910
|
+
let value = ${pa(I,h,"x[h + offset]")};
|
|
1911
1911
|
mean_vector += value;
|
|
1912
1912
|
mean_square_vector += value * value;
|
|
1913
1913
|
}
|
|
@@ -1915,16 +1915,16 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
1915
1915
|
let inv_std_dev = inverseSqrt(${_o("mean_square_vector",h)} / uniforms.norm_size ${s?"":"- mean * mean"} + uniforms.epsilon);
|
|
1916
1916
|
|
|
1917
1917
|
for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) {
|
|
1918
|
-
let f32input = ${
|
|
1919
|
-
let f32scale = ${
|
|
1918
|
+
let f32input = ${pa(I,h,"x[j + offset]")};
|
|
1919
|
+
let f32scale = ${pa(I,h,"scale[j]")};
|
|
1920
1920
|
output[j + offset] = ${f[0].type.value}((f32input ${s?"":"- mean"}) * inv_std_dev * f32scale
|
|
1921
|
-
${n?`+ ${
|
|
1921
|
+
${n?`+ ${pa(I,h,"bias[j]")}`:""}
|
|
1922
1922
|
);
|
|
1923
1923
|
}
|
|
1924
1924
|
|
|
1925
1925
|
${v?"mean_data_output[global_idx] = mean":""};
|
|
1926
1926
|
${b?"inv_std_output[global_idx] = inv_std_dev":""};
|
|
1927
|
-
}`},y=[{dims:i,dataType:e[0].dataType}];return v&&y.push({dims:g,dataType:1}),b&&y.push({dims:g,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${h};${t};${s}`,inputDependencies:x},getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(c/64)},programUniforms:F}),getShaderSource:C}},
|
|
1927
|
+
}`},y=[{dims:i,dataType:e[0].dataType}];return v&&y.push({dims:g,dataType:1}),b&&y.push({dims:g,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${h};${t};${s}`,inputDependencies:x},getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(c/64)},programUniforms:F}),getShaderSource:C}},Ny=(e,r)=>{Uw(e.inputs),e.compute(Gw(e.inputs,r,e.outputCount))}}),Kw,jy,JP=Ve(()=>{"use strict";kt(),mu(),hu(),Kw=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.")},jy=e=>{Kw(e.inputs);let r=ma.calcShape(e.inputs[0].dims,e.inputs[1].dims,!0);if(!r)throw new Error("Can't use matmul on the given tensors");let t=r[r.length-1],s=e.inputs[0].dims[e.inputs[0].dims.length-1];if(t<8&&s<8)e.compute(pu(e.inputs,{activation:""},r));else{let o=r[r.length-2],a=Me.size(e.inputs[0].dims.slice(0,-2)),n=Me.size(e.inputs[1].dims.slice(0,-2));if(a!==1&&o===1&&n===1){let i=e.inputs[0].reshape([1,a,s]),l=e.inputs[1].reshape([1,s,t]),c=[1,a,t],_=[i,l];e.compute(Qi(_,{activation:""},r,c),{inputs:_})}else e.compute(Qi(e.inputs,{activation:""},r))}}}),Hw,qw,Qw,Vy,Wy,YP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Hw=(e,r)=>{if(e.length<3||e.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let t=e[0],s=t.dims.length;if(t.dims[s-1]!==r.k)throw new Error("The last dim of input shape does not match the k value");let o=Math.floor((r.k+r.blockSize-1)/r.blockSize),a=r.blockSize/8*r.bits,n=e[1];if(!Me.areEqual(n.dims,[r.n,o,a]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let i=e[2].dims;if(Me.size(i)!==r.n*o)throw new Error("scales input size error.");if(e.length===4){let l=e[3].dims,c=r.bits>4?r.n*o:r.n*Math.floor((o+1)/2);if(Me.size(l)!==c)throw new Error("zeroPoints input size error.")}},qw=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],a=r.k,n=r.n,i=t.slice(0,s-2),l=Me.size(i),c=e[1].dims[2]/4,_=e[0].dataType,u=dr(r.k),d=dr(c),g=dr(n),h=i.concat([o,n]),x=o>1&&n/g%2===0?2:1,F=Me.size(h)/g/x,v=64,b=[],C=[l,o,a/u],y=Me.convertShape(e[1].dims).slice();y.splice(-1,1,c/d),b.push(...dt(C)),b.push(...dt(y)),b.push(...dt(e[2].dims)),e.length===4&&b.push(...dt(Me.convertShape(e[3].dims)));let P=[l,o,n/g];b.push(...dt(P));let I=f=>{let E=C.length,D=Fe("a",e[0].dataType,E,u),O=Fe("b",12,y.length,d),U=Fe("scales",e[2].dataType,e[2].dims.length),W=[D,O,U],z=e.length===4?Fe("zero_points",12,e[3].dims.length):void 0;z&&W.push(z);let X=P.length,J=it("output",e[0].dataType,X,g),q=$r(e[0].dataType),re=(()=>{switch(u){case 1:return`array<${q}, 8>`;case 2:return`mat4x2<${q}>`;case 4:return`mat2x4<${q}>`;default:throw new Error(`${u}-component is not supported.`)}})(),oe=()=>{let Y=`
|
|
1928
1928
|
// reuse a data
|
|
1929
1929
|
var input_offset = ${D.indicesToOffset(`${D.type.indices}(batch, row, word_offset)`)};
|
|
1930
1930
|
var a_data: ${re};
|
|
@@ -2001,7 +2001,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2001
2001
|
}
|
|
2002
2002
|
${J.setByIndices(`${J.type.indices}(batch, row, col + local_id.x)`,"output_value")};
|
|
2003
2003
|
}
|
|
2004
|
-
}`};return{name:"MatMulNBits",shaderCache:{hint:`${r.blockSize};${r.bits};${u};${d};${g};${x};${v}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:h,dataType:_}],dispatchGroup:{x:F},programUniforms:b}),getShaderSource:I}},
|
|
2004
|
+
}`};return{name:"MatMulNBits",shaderCache:{hint:`${r.blockSize};${r.bits};${u};${d};${g};${x};${v}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:h,dataType:_}],dispatchGroup:{x:F},programUniforms:b}),getShaderSource:I}},Qw=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],a=r.k,n=r.n,i=t.slice(0,s-2),l=Me.size(i),c=e[1].dims[2]/4,_=e[0].dataType,u=dr(r.k),d=dr(c),g=i.concat([o,n]),h=128,x=n%8===0?8:n%4===0?4:1,F=h/x,v=F*d*8,b=v/u,C=v/r.blockSize,y=Me.size(g)/x,P=[],I=[l,o,a/u],f=Me.convertShape(e[1].dims).slice();f.splice(-1,1,c/d),P.push(...dt(I)),P.push(...dt(f)),P.push(...dt(e[2].dims)),e.length===4&&P.push(...dt(Me.convertShape(e[3].dims)));let E=[l,o,n];P.push(...dt(E));let D=O=>{let U=I.length,W=Fe("a",e[0].dataType,U,u),z=Fe("b",12,f.length,d),X=Fe("scales",e[2].dataType,e[2].dims.length),J=[W,z,X],q=e.length===4?Fe("zero_points",12,e[3].dims.length):void 0;q&&J.push(q);let re=E.length,oe=it("output",e[0].dataType,re),ne=$r(e[0].dataType),ye=()=>{switch(u){case 1:return`
|
|
2005
2005
|
let a_data0 = vec4<${ne}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]);
|
|
2006
2006
|
let a_data1 = vec4<${ne}>(sub_a[word_offset + 4], sub_a[word_offset + 5], sub_a[word_offset + 6], sub_a[word_offset + 7]);`;case 2:return`
|
|
2007
2007
|
let a_data0 = vec4<${ne}>(sub_a[word_offset], sub_a[word_offset + 1]);
|
|
@@ -2075,7 +2075,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2075
2075
|
${oe.setByIndices(`${oe.type.indices}(batch, row, col + local_idx)`,"output_value")}
|
|
2076
2076
|
}
|
|
2077
2077
|
}
|
|
2078
|
-
}`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${r.blockSize};${u};${d};${F};${x}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:g,dataType:_}],dispatchGroup:{x:y},programUniforms:P}),getShaderSource:D}},
|
|
2078
|
+
}`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${r.blockSize};${u};${d};${F};${x}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:g,dataType:_}],dispatchGroup:{x:y},programUniforms:P}),getShaderSource:D}},Vy=(e,r)=>{Hw(e.inputs,r),r.blockSize===32&&e.adapterInfo.isVendor("intel")&&e.adapterInfo.isArchitecture("gen-12lp")?e.compute(Qw(e.inputs,r)):e.compute(qw(e.inputs,r))},Wy=e=>jt(e)}),Xw,Jw,Yw,Zw,eb,tb,rb,sb,Uy,ZP=Ve(()=>{"use strict";Mt(),kt(),Ct(),Xw=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 r=e[0].dims.length*2===e[1].dims[0];if(e.length===4&&(r=e[3].dims[0]*2===e[1].dims[0]),!r)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},Jw=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
|
|
2079
2079
|
k = i32(${e.indicesGet("indices",o)}) - ${lt("uniforms.pads",o,t)};
|
|
2080
2080
|
if (k < 0) {
|
|
2081
2081
|
break;
|
|
@@ -2092,7 +2092,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2092
2092
|
${s}
|
|
2093
2093
|
value = x[offset];
|
|
2094
2094
|
}
|
|
2095
|
-
`},
|
|
2095
|
+
`},Yw=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
|
|
2096
2096
|
k = i32(${e.indicesGet("indices",o)}) - ${lt("uniforms.pads",o,t)};
|
|
2097
2097
|
if (k < 0) {
|
|
2098
2098
|
k = -k;
|
|
@@ -2110,7 +2110,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2110
2110
|
var k = 0;
|
|
2111
2111
|
${s}
|
|
2112
2112
|
value = x[offset];
|
|
2113
|
-
`},
|
|
2113
|
+
`},Zw=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
|
|
2114
2114
|
k = i32(${e.indicesGet("indices",o)}) - ${lt("uniforms.pads",o,t)};
|
|
2115
2115
|
if (k < 0) {
|
|
2116
2116
|
k = 0;
|
|
@@ -2124,7 +2124,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2124
2124
|
var k = 0;
|
|
2125
2125
|
${s}
|
|
2126
2126
|
value = x[offset];
|
|
2127
|
-
`},
|
|
2127
|
+
`},eb=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
|
|
2128
2128
|
k = i32(${e.indicesGet("indices",o)}) - ${lt("uniforms.pads",o,t)};
|
|
2129
2129
|
if (k < 0) {
|
|
2130
2130
|
k += i32(${lt("uniforms.x_shape",o,r)}]);
|
|
@@ -2138,7 +2138,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2138
2138
|
var k = 0;
|
|
2139
2139
|
${s}
|
|
2140
2140
|
value = x[offset];
|
|
2141
|
-
`},
|
|
2141
|
+
`},tb=(e,r,t)=>{switch(t.mode){case 0:return Jw(e,r,t.pads.length);case 1:return Yw(e,r,t.pads.length);case 2:return Zw(e,r,t.pads.length);case 3:return eb(e,r,t.pads.length);default:throw new Error("Invalid mode")}},rb=(e,r)=>{let t=Me.padShape(e[0].dims.slice(),r.pads),s=e[0].dims,o=Me.size(t),a=[{type:12,data:o},{type:6,data:r.pads}],n=e.length>=3&&e[2].data;r.mode===0&&a.push({type:n?e[2].dataType:1,data:r.value}),a.push(...dt(e[0].dims,t));let i=["rank"],l=c=>{let _=it("output",e[0].dataType,t.length),u=Fe("x",e[0].dataType,s.length),d=u.type.value,g=tb(_,s.length,r),h=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:r.pads.length}];return r.mode===0&&h.push({name:"constant_value",type:n?d:"f32"}),`
|
|
2142
2142
|
${c.registerUniforms(h).declareVariables(u,_)}
|
|
2143
2143
|
${c.mainStart()}
|
|
2144
2144
|
${c.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
@@ -2148,7 +2148,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2148
2148
|
var value = ${d}(0);
|
|
2149
2149
|
${g}
|
|
2150
2150
|
output[global_idx] = value;
|
|
2151
|
-
}`};return{name:"Pad",shaderCache:{hint:`${r.mode}${n}`,inputDependencies:i},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(Me.size(t)/64)},programUniforms:a}),getShaderSource:l}},
|
|
2151
|
+
}`};return{name:"Pad",shaderCache:{hint:`${r.mode}${n}`,inputDependencies:i},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(Me.size(t)/64)},programUniforms:a}),getShaderSource:l}},sb=(e,r)=>{if(e.length>1){let t=e[1].getBigInt64Array(),s=e.length>=3&&e[2].data?e[2].dataType===10?e[2].getUint16Array()[0]:e[2].getFloat32Array()[0]:0,o=e[0].dims.length,a=new Int32Array(2*o).fill(0);if(e.length>=4){let i=e[3].getBigInt64Array();for(let l=0;l<i.length;l++)a[Number(i[l])]=Number(t[l]),a[Number(i[l])+o]=Number(t[l+i.length])}else t.forEach((i,l)=>a[Number(l)]=Number(i));let n=[];return a.forEach(i=>n.push(i)),{mode:r.mode,value:s,pads:n}}else return r},Uy=(e,r)=>{Xw(e.inputs);let t=sb(e.inputs,r);e.compute(rb(e.inputs,t),{inputs:[0]})}}),sn,pd,md,hd,fd,ob,ab,gd,Md,Gy,Ky,wd,Hy,qy,bd,Qy,Xy,Jy,Yy,eE=Ve(()=>{"use strict";ks(),Mt(),kt(),Ct(),sn=e=>{if(Zt.webgpu.validateInputContent&&(!e||e.length!==1))throw new Error("Pool ops requires 1 input.")},pd=(e,r,t)=>{let s=r.format==="NHWC",o=e.dims.slice();s&&o.splice(1,0,o.pop());let a=Object.hasOwnProperty.call(r,"dilations"),n=r.kernelShape.slice(),i=r.strides.slice(),l=a?r.dilations.slice():[],c=r.pads.slice();Hi.adjustPoolAttributes(t,o,n,i,l,c);let _=Hi.computePoolOutputShape(t,o,i,l,n,c,r.autoPad),u=Object.assign({},r);a?Object.assign(u,{kernelShape:n,strides:i,pads:c,dilations:l,cacheKey:r.cacheKey}):Object.assign(u,{kernelShape:n,strides:i,pads:c,cacheKey:r.cacheKey});let d=_.slice();return d.push(d.splice(1,1)[0]),[u,s?d:_]},md=(e,r)=>{let t=r.format==="NHWC",s=Me.size(e),o=Me.size(r.kernelShape),a=[{type:12,data:s},{type:12,data:o}],n=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(r.kernelShape.length<=2){let i=r.kernelShape[r.kernelShape.length-1],l=r.strides[r.strides.length-1],c=r.pads[r.pads.length/2-1],_=r.pads[r.pads.length-1],u=!!(c+_);a.push({type:12,data:i},{type:12,data:l},{type:12,data:c},{type:12,data:_}),n.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let d=!1;if(r.kernelShape.length===2){let g=r.kernelShape[r.kernelShape.length-2],h=r.strides[r.strides.length-2],x=r.pads[r.pads.length/2-2],F=r.pads[r.pads.length-2];d=!!(x+F),a.push({type:12,data:g},{type:12,data:h},{type:12,data:x},{type:12,data:F}),n.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[a,n,!0,u,d]}else{if(t)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let i=Me.computeStrides(r.kernelShape);a.push({type:12,data:i},{type:12,data:r.pads},{type:12,data:r.strides}),n.push({name:"kernelStrides",type:"u32",length:i.length},{name:"pads",type:"u32",length:r.pads.length},{name:"strides",type:"u32",length:r.strides.length});let l=r.pads.reduce((c,_)=>c+_);return[a,n,!!l,!1,!1]}},hd=(e,r,t,s,o,a,n,i,l,c,_,u)=>{let d=o.format==="NHWC",g=r.type.value,h=it("output",r.type.tensor,s);if(o.kernelShape.length<=2){let x="",F="",v="",b=t-(d?2:1);if(_?x=`
|
|
2152
2152
|
for (var i: u32 = 0u; i < uniforms.kw; i++) {
|
|
2153
2153
|
xIndices[${b}] = indices[${b}] * uniforms.sw - uniforms.pwStart + i;
|
|
2154
2154
|
if (xIndices[${b}] < 0 || xIndices[${b}]
|
|
@@ -2237,9 +2237,9 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2237
2237
|
${n}
|
|
2238
2238
|
|
|
2239
2239
|
output[global_idx] = value;
|
|
2240
|
-
}`}},fd=e=>`${e.format};${e.ceilMode};${e.autoPad};${e.kernelShape.length}`,
|
|
2240
|
+
}`}},fd=e=>`${e.format};${e.ceilMode};${e.autoPad};${e.kernelShape.length}`,ob=e=>`${fd(e)};${e.countIncludePad}`,ab=e=>`${fd(e)};${e.storageOrder};${e.dilations}`,gd=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}),Md=(e,r,t,s)=>{let[o,a]=pd(r,s,t),n=Fe("x",r.dataType,r.dims.length),i=n.type.value,l="value += x_val;",c="";o.countIncludePad?c+=`value /= ${i}(uniforms.kernelSize);`:c+=`value /= ${i}(i32(uniforms.kernelSize) - pad);`;let[_,u,d,g,h]=md(a,o);_.push(...dt(r.dims,a));let x=["rank"];return{name:e,shaderCache:{hint:`${s.cacheKey};${d};${g};${h}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:a,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(Me.size(a)/64)},programUniforms:_}),getShaderSource:F=>hd(F,n,r.dims.length,a.length,o,l,c,0,u,d,g,h)}},Gy=e=>{let r=e.count_include_pad!==0,t=gd(e);if(t.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let s={countIncludePad:r,...t,cacheKey:""};return{...s,cacheKey:ob(s)}},Ky=(e,r)=>{sn(e.inputs),e.compute(Md("AveragePool",e.inputs[0],!1,r))},wd={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},Hy=e=>{let r=e.format;return{format:r,...wd,cacheKey:r}},qy=(e,r)=>{sn(e.inputs),e.compute(Md("GlobalAveragePool",e.inputs[0],!0,r))},bd=(e,r,t,s)=>{let[o,a]=pd(r,s,t),n=`
|
|
2241
2241
|
value = max(x_val, value);
|
|
2242
|
-
`,i="",l=Fe("x",r.dataType,r.dims.length),c=["rank"],[_,u,d,g,h]=md(a,o);return _.push(...dt(r.dims,a)),{name:e,shaderCache:{hint:`${s.cacheKey};${d};${g};${h}`,inputDependencies:c},getRunData:()=>({outputs:[{dims:a,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(Me.size(a)/64)},programUniforms:_}),getShaderSource:x=>hd(x,l,r.dims.length,a.length,o,n,i,r.dataType===10?-65504:-1e5,u,d,g,h)}},
|
|
2242
|
+
`,i="",l=Fe("x",r.dataType,r.dims.length),c=["rank"],[_,u,d,g,h]=md(a,o);return _.push(...dt(r.dims,a)),{name:e,shaderCache:{hint:`${s.cacheKey};${d};${g};${h}`,inputDependencies:c},getRunData:()=>({outputs:[{dims:a,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(Me.size(a)/64)},programUniforms:_}),getShaderSource:x=>hd(x,l,r.dims.length,a.length,o,n,i,r.dataType===10?-65504:-1e5,u,d,g,h)}},Qy=(e,r)=>{sn(e.inputs),e.compute(bd("MaxPool",e.inputs[0],!1,r))},Xy=e=>{let r=e.storage_order,t=e.dilations,s=gd(e);if(r!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(s.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let o={storageOrder:r,dilations:t,...s,cacheKey:""};return{...o,cacheKey:ab(o)}},Jy=e=>{let r=e.format;return{format:r,...wd,cacheKey:r}},Yy=(e,r)=>{sn(e.inputs),e.compute(bd("GlobalMaxPool",e.inputs[0],!0,r))}}),nb,ib,Zy,e0,tE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),nb=(e,r)=>{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[0].dataType===6&&e.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");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((t,s)=>t===e[2].dims[s]).reduce((t,s)=>t&&s,!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(r.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,a)=>a===r.axis||o===e[0].dims[a]).reduce((o,a)=>o&&a,!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 t=e[0].dims[r.axis],s=e[1].dims[r.axis];if(r.blockSize<Math.ceil(t/s)||r.blockSize>Math.ceil(t/(s-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},ib=(e,r)=>{let t=Me.normalizeAxis(r.axis,e[0].dims.length),s=e[0].dataType,o=s===3,a=e[0].dims,n=e[1].dataType,i=Me.size(a),l=s===3||s===2,c=l?[Math.ceil(Me.size(e[0].dims)/4)]:e[0].dims,_=e[1].dims,u=e.length>2?e[2]:void 0,d=u?l?[Math.ceil(Me.size(u.dims)/4)]:u.dims:void 0,g=_.length===0||_.length===1&&_[0]===1,h=g===!1&&_.length===1,x=dr(i),F=g&&(!l||x===4),v=F?x:1,b=F&&!l?x:1,C=Fe("input",l?12:s,c.length,b),y=Fe("scale",n,_.length),P=u?Fe("zero_point",l?12:s,d.length):void 0,I=it("output",n,a.length,v),f=[C,y];P&&f.push(P);let E=[c,_];u&&E.push(d);let D=[{type:12,data:i/v},{type:12,data:t},{type:12,data:r.blockSize},...dt(...E,a)],O=U=>{let W=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return`
|
|
2243
2243
|
${U.registerUniforms(W).declareVariables(...f,I)}
|
|
2244
2244
|
${U.mainStart()}
|
|
2245
2245
|
${U.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
@@ -2277,12 +2277,12 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2277
2277
|
let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${P.getByIndices("scale_indices")};`:`let zero_point_value = ${l?o?"i32":"u32":C.type.value}(0);`};
|
|
2278
2278
|
// Compute and write output
|
|
2279
2279
|
${I.setByOffset("global_idx",`${I.type.value}(x_value - zero_point_value) * scale_value`)};
|
|
2280
|
-
}`};return{name:"DequantizeLinear",shaderCache:{hint:r.cacheKey,inputDependencies:P?["rank","rank","rank"]:["rank","rank"]},getShaderSource:O,getRunData:()=>({outputs:[{dims:a,dataType:n}],dispatchGroup:{x:Math.ceil(i/v/64),y:1,z:1},programUniforms:D})}},
|
|
2280
|
+
}`};return{name:"DequantizeLinear",shaderCache:{hint:r.cacheKey,inputDependencies:P?["rank","rank","rank"]:["rank","rank"]},getShaderSource:O,getRunData:()=>({outputs:[{dims:a,dataType:n}],dispatchGroup:{x:Math.ceil(i/v/64),y:1,z:1},programUniforms:D})}},Zy=(e,r)=>{nb(e.inputs,r),e.compute(ib(e.inputs,r))},e0=e=>jt({axis:e.axis,blockSize:e.blockSize})}),lb,cb,t0,rE=Ve(()=>{"use strict";ks(),Mt(),Ct(),lb=(e,r,t)=>{let s=e===r,o=e<r&&t<0,a=e>r&&t>0;if(s||o||a)throw new Error("Range these inputs' contents are invalid.")},cb=(e,r,t,s)=>{let o=Math.abs(Math.ceil((r-e)/t)),a=[o],n=o,i=[{type:12,data:n},{type:s,data:e},{type:s,data:t},...dt(a)],l=c=>{let _=it("output",s,a.length),u=_.type.value,d=[{name:"outputSize",type:"u32"},{name:"start",type:u},{name:"delta",type:u}];return`
|
|
2281
2281
|
${c.registerUniforms(d).declareVariables(_)}
|
|
2282
2282
|
${c.mainStart()}
|
|
2283
2283
|
${c.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
|
|
2284
2284
|
output[global_idx] = uniforms.start + ${u}(global_idx) * uniforms.delta;
|
|
2285
|
-
}`};return{name:"Range",shaderCache:{hint:`${s}`},getShaderSource:l,getRunData:()=>({outputs:[{dims:a,dataType:s}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:i})}},
|
|
2285
|
+
}`};return{name:"Range",shaderCache:{hint:`${s}`},getShaderSource:l,getRunData:()=>({outputs:[{dims:a,dataType:s}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:i})}},t0=e=>{let r=0,t=0,s=0;e.inputs[0].dataType===6?(r=e.inputs[0].getInt32Array()[0],t=e.inputs[1].getInt32Array()[0],s=e.inputs[2].getInt32Array()[0]):e.inputs[0].dataType===1&&(r=e.inputs[0].getFloat32Array()[0],t=e.inputs[1].getFloat32Array()[0],s=e.inputs[2].getFloat32Array()[0]),Zt.webgpu.validateInputContent&&lb(r,t,s),e.compute(cb(r,t,s,e.inputs[0].dataType),{inputs:[]})}}),db,vd,xd,ub,r0,s0,sE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),db=(e,r,t,s)=>{if(e!=="none"&&s!=="i32"&&s!=="u32"&&s!=="f32")throw new Error(`Input ${s} is not supported with reduction ${e}.`);let o=`{
|
|
2286
2286
|
var oldValue = 0;
|
|
2287
2287
|
loop {
|
|
2288
2288
|
let newValueF32 =`,a=`;
|
|
@@ -2314,8 +2314,8 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2314
2314
|
}
|
|
2315
2315
|
data_offset += u32((u32(index) * element_count_dim));`,xd=(e,r,t)=>`for (var i = 0u; i < uniforms.num_updates_elements; i++) {
|
|
2316
2316
|
let value = updates[uniforms.num_updates_elements * ${t?"global_idx":"idx"} + i];
|
|
2317
|
-
${
|
|
2318
|
-
}`,
|
|
2317
|
+
${db(e.reduction,"output[data_offset + i]","value",r)}
|
|
2318
|
+
}`,ub=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t,a=1,n=Math.ceil(Me.size(s)/a),i=s[s.length-1],l=Me.sizeFromDimension(t,i),c=Me.sizeFromDimension(s,0)/i,_=[{type:12,data:n},{type:12,data:i},{type:12,data:l},...dt(e[1].dims,e[2].dims,o)],u=d=>{let g=Fe("indices",e[1].dataType,e[1].dims.length),h=Fe("updates",e[2].dataType,e[2].dims.length,a),x=r.reduction!=="none"&&r.reduction!==""?Iv("output",e[0].dataType,o.length):it("output",e[0].dataType,o.length,a);return`
|
|
2319
2319
|
${d.registerUniform("output_size","u32").registerUniform("last_index_dimension","u32").registerUniform("num_updates_elements","u32").declareVariables(g,h,x)}
|
|
2320
2320
|
${d.mainStart()}
|
|
2321
2321
|
${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
|
|
@@ -2360,8 +2360,8 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2360
2360
|
${vd(t.length,!0)}
|
|
2361
2361
|
}
|
|
2362
2362
|
${xd(r,x.type.value,!0)}
|
|
2363
|
-
}`};return{name:"ScatterND",shaderCache:{hint:`${r.cacheKey}_${r.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:_}),getShaderSource:u}},
|
|
2364
|
-
one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(r.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")}},
|
|
2363
|
+
}`};return{name:"ScatterND",shaderCache:{hint:`${r.cacheKey}_${r.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:_}),getShaderSource:u}},r0=e=>jt({reduction:e.reduction}),s0=(e,r)=>{e.compute(ub(e.inputs,r),{inputs:[e.inputs[1],e.inputs[2]],outputs:[]})}}),_b,pb,mb,yd,hb,fb,gb,Mb,wb,bb,vb,xb,Td,yb,Tb,Pb,Eb,kb,o0,a0,oE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),_b=(e,r)=>{if(e.every(t=>t>0||(()=>{throw new Error("Resize requires scales input values to be positive")})),e.length>0){if(r.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
|
|
2364
|
+
one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(r.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")}},pb=(e,r,t)=>{r.every(o=>o>=0&&o<t||(()=>{throw new Error("Resize requires axes input values to be positive and less than rank")}));let s=new Array(t).fill(1);return r.forEach((o,a)=>s[o]=e[a]),s},mb=(e,r,t,s,o,a)=>{let[n,i,l]=t>10?[1,2,3]:[-1,e.length>1?1:-1,-1],c=e[0].dims.length;if(n>0&&e.length>n&&e[n].dims.length>0)e[n].getFloat32Array().forEach(_=>a.push(_));else if(r.coordinateTransformMode==="tf_crop_and_resize")throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(i>0&&e.length>i&&e[i].dims.length===1&&e[i].dims[0]>0){if(e[i].getFloat32Array().forEach(_=>s.push(_)),s.length!==0&&s.length!==c&&t>=18&&s.length!==r.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");_b(s,r),r.axes.length>0&&pb(s,r.axes,c).forEach((_,u)=>s[u]=_)}if(l>0&&e.length>l&&e[l].dims.length===1&&e[l].dims[0]>0&&(e[l].getBigInt64Array().forEach(_=>o.push(Number(_))),o.length!==0&&o.length!==c&&t>=18&&o.length!==r.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(r.axes.length>0){if(s.length!==0&&s.length!==r.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!==r.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof s<"u"&&typeof o<"u"&&s.length>0&&o.length>c)throw new Error("Resize requires only of scales or sizes to be specified")},yd=(e,r,t,s)=>`
|
|
2365
2365
|
// The whole part and the fractional part are calculated separately due to inaccuracy of floating
|
|
2366
2366
|
// point division. As an example, f32(21) / f32(7) may evaluate to 2.99... instead of 3, causing an
|
|
2367
2367
|
// offset-by-one error later in floor().
|
|
@@ -2369,7 +2369,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2369
2369
|
let whole = ${s}(big / (${t}));
|
|
2370
2370
|
let fract = ${s}(big % (${t})) / ${s}(${t});
|
|
2371
2371
|
return whole + fract;
|
|
2372
|
-
`,
|
|
2372
|
+
`,hb=(e,r)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32,
|
|
2373
2373
|
lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${r} { `+(()=>{switch(e){case"asymmetric":return`
|
|
2374
2374
|
if (xScale < 1.0 || floor(xScale) != xScale) {
|
|
2375
2375
|
return ${r}(xResized) / ${r}(xScale);
|
|
@@ -2394,7 +2394,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2394
2394
|
const adjustment = ${r}(lengthResized) / outputWidth;
|
|
2395
2395
|
const center = ${r}(lengthOriginal) / 2;
|
|
2396
2396
|
const offset = center * (1 - adjustment);
|
|
2397
|
-
return offset + ((${r}(xResized) + 0.5) / ${r}(xScale)) - 0.5;`;case"half_pixel":return`return ((${r}(xResized) + 0.5) / ${r}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${e} is not supported`)}})()+"}",
|
|
2397
|
+
return offset + ((${r}(xResized) + 0.5) / ${r}(xScale)) - 0.5;`;case"half_pixel":return`return ((${r}(xResized) + 0.5) / ${r}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${e} is not supported`)}})()+"}",fb=(e,r,t)=>`fn getNearestPixelFromOriginal(xOriginal: ${t}, isDownSample: bool) -> ${t} {`+(()=>{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); }";default:if(r<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${e} is not supported`)}})()+"}",gb=(e,r,t)=>{let s=new Array(t).fill(0).concat(new Array(t).fill(1)),o=e.length===0?s:e.slice();return r.length>0?(r.forEach((a,n)=>{s[a]=o[n],s[n+t]=o[r.length+n]}),s):o},Mb=(e,r,t,s)=>{let o=[];if(t.length>0)if(s.length>0){if(e.forEach(a=>o.push(a)),Math.max(...s)>e.length)throw new Error("axes is out of bound");s.forEach((a,n)=>o[a]=t[n])}else t.forEach(a=>o.push(a));else{if(r.length===0)throw new Error("Resize requires either scales or sizes.");o=e.map((a,n)=>Math.round(a*r[n]))}return o},wb=(e,r,t)=>{let s=(()=>{switch(t.keepAspectRatioPolicy){case"not_larger":return t.axes.length>0?Math.min(...t.axes.map(a=>r[a]),Number.MAX_VALUE):Math.min(...r,Number.MAX_VALUE);case"not_smaller":return t.axes.length>0?Math.max(...t.axes.map(a=>r[a]),Number.MIN_VALUE):Math.max(...r,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${t.keepAspectRatioPolicy} is not supported`)}})();r.fill(1,0,r.length);let o=e.slice();return t.axes.length>0?(t.axes.forEach(a=>r[a]=s),t.axes.forEach(a=>o[a]=Math.round(e[a]*r[a]))):(r.fill(s,0,r.length),o.forEach((a,n)=>o[n]=Math.round(a*r[n]))),o},bb=(e,r,t,s,o)=>`
|
|
2398
2398
|
fn calculateOriginalIndicesFromOutputIndices(output_indices: ${e.type.indices}) -> array<${e.type.value}, ${t.length}> {
|
|
2399
2399
|
var original_indices: array<${e.type.value}, ${t.length}>;
|
|
2400
2400
|
for (var i:u32 = 0; i < ${t.length}; i++) {
|
|
@@ -2412,7 +2412,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2412
2412
|
}
|
|
2413
2413
|
}
|
|
2414
2414
|
return original_indices;
|
|
2415
|
-
}`,
|
|
2415
|
+
}`,vb=(e,r,t,s,o,a,n)=>`
|
|
2416
2416
|
fn calculateInputIndicesFromOutputIndices(output_indices: ${r.type.indices}) -> ${e.type.indices} {
|
|
2417
2417
|
var input_indices: ${e.type.indices};
|
|
2418
2418
|
for (var i:u32 = 0; i < ${s.length}; i++) {
|
|
@@ -2443,7 +2443,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2443
2443
|
${e.indicesSet("input_indices","i","input_index")}
|
|
2444
2444
|
}
|
|
2445
2445
|
return input_indices;
|
|
2446
|
-
}`,
|
|
2446
|
+
}`,xb=(e,r)=>`
|
|
2447
2447
|
fn checkInputIndices(input_indices: ${e.type.indices}) -> bool {
|
|
2448
2448
|
for (var i:u32 = 0; i < ${r.length}; i++) {
|
|
2449
2449
|
var input_index = ${e.indicesGet("input_indices","i")};
|
|
@@ -2455,7 +2455,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2455
2455
|
}`,Td=(e,r,t,s)=>e.rank>s?`
|
|
2456
2456
|
${e.indicesSet("input_indices",r,"channel")};
|
|
2457
2457
|
${e.indicesSet("input_indices",t,"batch")};
|
|
2458
|
-
`:"",
|
|
2458
|
+
`:"",yb=(e,r,t,s,o)=>{let[a,n,i,l]=t.length===2?[-1,0,1,-1]:[0,2,3,1],c=e.type.value;return`
|
|
2459
2459
|
fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${c} {
|
|
2460
2460
|
var input_indices: ${e.type.indices};
|
|
2461
2461
|
${e.indicesSet("input_indices",n,`max(0, min(row, ${t[n]} - 1))`)};
|
|
@@ -2496,7 +2496,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2496
2496
|
dy2 = 0.5;
|
|
2497
2497
|
}
|
|
2498
2498
|
return (x11 * dx2 * dy2 + x12 * dx2 * dy1 + x21 * dx1 * dy2 + x22 * dx1 * dy1);
|
|
2499
|
-
}`},
|
|
2499
|
+
}`},Tb=(e,r,t,s,o,a,n,i,l,c)=>{let _=t.length===2,u=!0,[d,g]=_?[0,1]:u?[2,3]:[1,2],h=e.type.value,x=F=>{let v=F===d?"row":"col";return`
|
|
2500
2500
|
fn ${v}CubicInterpolation(input_indices: ${e.type.indices}, output_indices: ${r.type.indices}) -> ${h} {
|
|
2501
2501
|
var output_index = ${r.indicesGet("output_indices",F)};
|
|
2502
2502
|
var originalIdx: ${h} = getOriginalCoordinateFromResizedCoordinate(output_index, ${o[F]},
|
|
@@ -2544,7 +2544,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2544
2544
|
var input_indices: ${e.type.indices} = output_indices;
|
|
2545
2545
|
return colCubicInterpolation(input_indices, output_indices);
|
|
2546
2546
|
}
|
|
2547
|
-
`},
|
|
2547
|
+
`},Pb=(e,r,t,s,o)=>{let[a,n,i,l,c]=t.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],_=e.type.value;return`
|
|
2548
2548
|
fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${_} {
|
|
2549
2549
|
var input_indices: ${e.type.indices};
|
|
2550
2550
|
${e.indicesSet("input_indices",n,`max(0, min(depth, ${t[n]} - 1))`)};
|
|
@@ -2603,18 +2603,18 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2603
2603
|
}
|
|
2604
2604
|
return (x111 * dx2 * dy2 * dz2 + x112 * dx2 * dy2 * dz1 + x121 * dx2 * dy1 *dz2 + x122 * dx2 * dy1 * dz1 +
|
|
2605
2605
|
x211 * dx1 * dy2 * dz2 + x212 * dx1 * dy2 * dz1 + x221 * dx1 * dy1 *dz2 + x222 * dx1 * dy1 * dz1);
|
|
2606
|
-
}`},
|
|
2606
|
+
}`},Eb=(e,r,t,s,o,a)=>{let n=e.dims,i=gb(a,r.axes,n.length),l=Mb(n,s,o,r.axes),c=s.slice();s.length===0&&(c=n.map((b,C)=>b===0?1:l[C]/b),r.keepAspectRatioPolicy!=="stretch"&&(l=wb(n,c,r)));let _=it("output",e.dataType,l.length),u=Fe("input",e.dataType,n.length),d=Me.size(l),g=n.length===l.length&&n.every((b,C)=>b===l[C]),h=r.coordinateTransformMode==="tf_crop_and_resize",x=r.extrapolationValue,F=u.type.value,v=b=>`
|
|
2607
2607
|
${g?"":`
|
|
2608
|
-
${
|
|
2608
|
+
${hb(r.coordinateTransformMode,F)};
|
|
2609
2609
|
${(()=>{switch(r.mode){case"nearest":return`
|
|
2610
|
-
${
|
|
2611
|
-
${
|
|
2612
|
-
${
|
|
2610
|
+
${xb(u,n)};
|
|
2611
|
+
${fb(r.nearestMode,t,F)};
|
|
2612
|
+
${vb(u,_,n,l,c.length,i.length,h)};
|
|
2613
2613
|
`;case"linear":return`
|
|
2614
|
-
${
|
|
2615
|
-
${(()=>{if(n.length===2||n.length===4)return`${
|
|
2614
|
+
${bb(_,n,l,c.length,i.length)};
|
|
2615
|
+
${(()=>{if(n.length===2||n.length===4)return`${yb(u,_,n,h,x)}`;if(n.length===3||n.length===5)return`${Pb(u,_,n,h,x)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()};
|
|
2616
2616
|
`;case"cubic":return`
|
|
2617
|
-
${(()=>{if(n.length===2||n.length===4)return`${
|
|
2617
|
+
${(()=>{if(n.length===2||n.length===4)return`${Tb(u,_,n,l,c,i,r.cubicCoeffA,h,r.extrapolationValue,r.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()};
|
|
2618
2618
|
`;default:throw Error("Invalid resize mode")}})()};
|
|
2619
2619
|
`}
|
|
2620
2620
|
${b.registerUniform("output_size","u32").registerUniform("scales","f32",c.length).registerUniform("roi","f32",i.length).declareVariables(u,_)}
|
|
@@ -2630,7 +2630,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2630
2630
|
output[global_idx] = ${r.extrapolationValue};
|
|
2631
2631
|
}`;case"linear":return`output[global_idx] = ${n.length===2||n.length===4?"bilinearInterpolation":"trilinearInterpolation"}(output_indices);`;case"cubic":return"output[global_idx] = bicubicInterpolation(output_indices);";default:throw Error(`Unsupported resize mode: ${r.mode}`)}})()};
|
|
2632
2632
|
`}
|
|
2633
|
-
}`;return{name:"Resize",shaderCache:{hint:`${r.cacheKey}|${t}|${c.length>0?r.mode==="cubic"?c:c.length:""}|${o.length>0?o:""}|${i.length>0?i:""}|${g}|${r.mode==="nearest"?n.length:n}`,inputDependencies:["rank"]},getShaderSource:v,getRunData:()=>({outputs:[{dims:l,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:[{type:12,data:d},{type:1,data:c},{type:1,data:i},...dt(n,l)]})}},
|
|
2633
|
+
}`;return{name:"Resize",shaderCache:{hint:`${r.cacheKey}|${t}|${c.length>0?r.mode==="cubic"?c:c.length:""}|${o.length>0?o:""}|${i.length>0?i:""}|${g}|${r.mode==="nearest"?n.length:n}`,inputDependencies:["rank"]},getShaderSource:v,getRunData:()=>({outputs:[{dims:l,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:[{type:12,data:d},{type:1,data:c},{type:1,data:i},...dt(n,l)]})}},kb=e=>{let r=e.customDataBuffer;return new Uint32Array(r,r.byteOffset,1)[0]},o0=(e,r)=>{let t=[],s=[],o=[],a=kb(e);if(r.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");mb(e.inputs,r,a,t,s,o),e.compute(Eb(e.inputs[0],r,a,t,s,o),{inputs:[0]})},a0=e=>{let r=e.antialias,t=e.axes,s=e.coordinateTransformMode,o=e.cubicCoeffA,a=e.excludeOutside!==0,n=e.extrapolationValue,i=e.keepAspectRatioPolicy,l=e.mode,c=e.nearestMode===""?"simple":e.nearestMode;return jt({antialias:r,axes:t,coordinateTransformMode:s,cubicCoeffA:o,excludeOutside:a,extrapolationValue:n,keepAspectRatioPolicy:i,mode:l,nearestMode:c})}}),Cb,Sb,n0,aE=Ve(()=>{"use strict";Mt(),kt(),Ct(),Cb=e=>{if(!e||e.length<3)throw new Error("layerNorm requires at least 3 inputs.");let r=e[0],t=e[1],s=e[2];if(r.dataType!==t.dataType||r.dataType!==s.dataType)throw new Error("All inputs must have the same data type");if(r.dims.length!==3&&r.dims.length!==2)throw new Error("Input must be 2D or 3D");if(t.dims.length!==3&&t.dims.length!==2)throw new Error("Skip must be 2D or 3D");let o=r.dims[r.dims.length-1],a=r.dims[r.dims.length-2];if(t.dims[t.dims.length-1]!==o)throw new Error("Skip must have the same hidden size as input");if(t.dims[t.dims.length-2]!==a)throw new Error("Skip must have the same sequence length as input");if(s.dims.length!==1)throw new Error("Gamma must be 1D");if(s.dims[s.dims.length-1]!==o)throw new Error("Gamma must have the same hidden size as input");if(e.length>3){let n=e[3];if(n.dims.length!==1)throw new Error("Beta must be 1D");if(n.dims[n.dims.length-1]!==o)throw new Error("Beta must have the same hidden size as input")}if(e.length>4){let n=e[4];if(n.dims.length!==1)throw new Error("Bias must be 1D");if(n.dims[n.dims.length-1]!==o)throw new Error("Bias must have the same hidden size as input")}},Sb=(e,r,t,s)=>{let o=r.simplified,a=e[0].dims,n=Me.size(a),i=a,l=n,c=a.slice(-1)[0],_=s?a.slice(0,-1).concat(1):[],u=!o&&e.length>3,d=e.length>4,g=s&&t>1,h=s&&t>2,x=t>3,F=64,v=dr(c),b=[{type:12,data:l},{type:12,data:v},{type:12,data:c},{type:1,data:r.epsilon}],C=P=>{let I=[{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}],f=[Fe("x",e[0].dataType,e[0].dims,v),Fe("skip",e[1].dataType,e[1].dims,v),Fe("gamma",e[2].dataType,e[2].dims,v)];u&&f.push(Fe("beta",e[3].dataType,e[3].dims,v)),d&&f.push(Fe("bias",e[4].dataType,e[4].dims,v)),f.push(it("output",e[0].dataType,i,v)),g&&f.push(it("mean_output",1,_)),h&&f.push(it("inv_std_output",1,_)),x&&f.push(it("input_skip_bias_sum",e[0].dataType,i,v));let E=$r(e[0].dataType),D=$r(1,v);return`
|
|
2634
2634
|
|
|
2635
2635
|
${P.registerUniforms(I).declareVariables(...f)}
|
|
2636
2636
|
var<workgroup> sum_shared : array<${D}, ${F}>;
|
|
@@ -2654,7 +2654,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2654
2654
|
let value = input_value + skip_value + bias_value;
|
|
2655
2655
|
${x?"input_skip_bias_sum[offset + i] = value;":""}
|
|
2656
2656
|
output[offset + i] = value;
|
|
2657
|
-
let f32_value = ${
|
|
2657
|
+
let f32_value = ${pa(E,v,"value")};
|
|
2658
2658
|
sum_shared[ix] += f32_value;
|
|
2659
2659
|
sum_squared_shared[ix] += f32_value * f32_value;
|
|
2660
2660
|
}
|
|
@@ -2682,7 +2682,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2682
2682
|
${E}(inv_std_dev) * gamma[offset1d + i]
|
|
2683
2683
|
${u?"+ beta[offset1d + i]":""};
|
|
2684
2684
|
}
|
|
2685
|
-
}`},y=[{dims:i,dataType:e[0].dataType}];return t>1&&y.push({dims:_,dataType:1}),t>2&&y.push({dims:_,dataType:1}),t>3&&y.push({dims:a,dataType:e[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${v};${g};${h};${x}`,inputDependencies:e.map((P,I)=>"type")},getShaderSource:C,getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(l/c)},programUniforms:b})}},
|
|
2685
|
+
}`},y=[{dims:i,dataType:e[0].dataType}];return t>1&&y.push({dims:_,dataType:1}),t>2&&y.push({dims:_,dataType:1}),t>3&&y.push({dims:a,dataType:e[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${v};${g};${h};${x}`,inputDependencies:e.map((P,I)=>"type")},getShaderSource:C,getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(l/c)},programUniforms:b})}},n0=(e,r)=>{Cb(e.inputs);let t=[0];e.outputCount>1&&t.push(-3),e.outputCount>2&&t.push(-3),e.outputCount>3&&t.push(3),e.compute(Sb(e.inputs,r,e.outputCount,!1),{outputs:t})}}),Fb,on,Ib,Pd,Ab,$b,i0,l0,nE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Fb=(e,r)=>{if(!e||e.length<1)throw new Error("too few inputs");if(r.axes.length!==0){if(r.axes.length!==r.starts.length||r.axes.length!==r.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(r.starts.length!==r.ends.length)throw new Error("starts and ends must have the same length");e.slice(1).forEach((t,s)=>{if(e[s+1].dataType!==6&&e[s+1].dataType!==7)throw new Error(`Input ${s} must be an array of int32 or int64`)})},on=(e,r)=>{let t=[];if(e.length>r)if(e[r].dataType===7)e[r].getBigInt64Array().forEach(s=>t.push(Number(s)));else if(e[r].dataType===6)e[r].getInt32Array().forEach(s=>t.push(Number(s)));else throw new Error(`Input ${r} must be an array of int32 or int64`);return t},Ib=(e,r)=>{if(e.length>1){let t=on(e,1),s=on(e,2),o=on(e,3);return o.length===0&&(o=[...Array(e[0].dims.length).keys()]),jt({starts:t,ends:s,axes:o})}else return r},Pd=(e,r,t,s,o)=>{let a=e;return e<0&&(a+=t[s[r]]),o[r]<0?Math.max(0,Math.min(a,t[s[r]]-1)):Math.max(0,Math.min(a,t[s[r]]))},Ab=(e,r,t)=>`fn calculateInputIndices(output_indices: ${r.type.indices}) -> ${e.type.indices} {
|
|
2686
2686
|
var input_indices: ${e.type.indices};
|
|
2687
2687
|
var carry = 0u;
|
|
2688
2688
|
for (var i = ${t.length}; i >= 0; i--) {
|
|
@@ -2700,15 +2700,15 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2700
2700
|
${e.indicesSet("input_indices","i","input_index")};
|
|
2701
2701
|
}
|
|
2702
2702
|
return input_indices;
|
|
2703
|
-
}
|
|
2703
|
+
}`,$b=(e,r)=>{let t=e[0].dims,s=Me.size(t),o=r.axes.length>0?Me.normalizeAxes(r.axes,t.length):[...Array(t.length).keys()],a=on(e,4);a.forEach(v=>v!==0||(()=>{throw new Error("step cannot be 0")})),a.length===0&&(a=Array(o.length).fill(1));let n=r.starts.map((v,b)=>Pd(v,b,t,o,a)),i=r.ends.map((v,b)=>Pd(v,b,t,o,a));if(o.length!==n.length||o.length!==i.length)throw new Error("start, ends and axes should have the same number of elements");if(o.length!==t.length)for(let v=0;v<t.length;++v)o.includes(v)||(n.splice(v,0,0),i.splice(v,0,t[v]),a.splice(v,0,1));let l=a.map(v=>Math.sign(v));a.forEach((v,b,C)=>{if(v<0){let y=(i[b]-n[b])/v,P=n[b],I=P+y*a[b];n[b]=I,i[b]=P,C[b]=-v}});let c=t.slice(0);o.forEach((v,b)=>{c[v]=Math.ceil((i[v]-n[v])/a[v])});let _={dims:c,dataType:e[0].dataType},u=it("output",e[0].dataType,c.length),d=Fe("input",e[0].dataType,e[0].dims.length),g=Me.size(c),h=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:n.length},{name:"signs",type:"i32",length:l.length},{name:"steps",type:"u32",length:a.length}],x=[{type:12,data:g},{type:12,data:n},{type:6,data:l},{type:12,data:a},...dt(e[0].dims,c)],F=v=>`
|
|
2704
2704
|
${v.registerUniforms(h).declareVariables(d,u)}
|
|
2705
|
-
${
|
|
2705
|
+
${Ab(d,u,t)}
|
|
2706
2706
|
${v.mainStart()}
|
|
2707
2707
|
${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
|
|
2708
2708
|
let output_indices = ${u.offsetToIndices("global_idx")};
|
|
2709
2709
|
let input_indices = calculateInputIndices(output_indices);
|
|
2710
2710
|
${u.setByOffset("global_idx",d.getByIndices("input_indices"))}
|
|
2711
|
-
}`;return{name:"Slice",shaderCache:{hint:`${l.length}_${n.length}_${a.length}`,inputDependencies:["rank"]},getShaderSource:F,getRunData:()=>({outputs:[_],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:x})}},
|
|
2711
|
+
}`;return{name:"Slice",shaderCache:{hint:`${l.length}_${n.length}_${a.length}`,inputDependencies:["rank"]},getShaderSource:F,getRunData:()=>({outputs:[_],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:x})}},i0=(e,r)=>{Fb(e.inputs,r);let t=Ib(e.inputs,r);e.compute($b(e.inputs,t),{inputs:[0]})},l0=e=>{let r=e.starts,t=e.ends,s=e.axes;return jt({starts:r,ends:t,axes:s})}}),Db,Ob,c0,d0,iE=Ve(()=>{"use strict";Mt(),kt(),hr(),po(),Ct(),Db=e=>{if(!e||e.length!==1)throw new Error("Softmax op requires 1 input.")},Ob=(e,r)=>{let t=e.inputs[0],s=t.dims,o=Me.size(s),a=s.length,n=Me.normalizeAxis(r.axis,a),i=n<s.length-1,l,c=[];i?(c=Array.from({length:a},(f,E)=>E),c[n]=a-1,c[a-1]=n,l=e.compute(os(t,c),{inputs:[t],outputs:[-1]})[0]):l=t;let _=l.dims,u=_[a-1],d=o/u,g=dr(u),h=u/g,x=64;d===1&&(x=256);let F=(f,E)=>E===4?`max(max(${f}.x, ${f}.y), max(${f}.z, ${f}.w))`:E===2?`max(${f}.x, ${f}.y)`:E===3?`max(max(${f}.x, ${f}.y), ${f}.z)`:f,v=Fe("x",l.dataType,l.dims,g),b=it("result",l.dataType,l.dims,g),C=v.type.value,y=$r(l.dataType)==="f32"?`var threadMax = ${C}(-3.402823e+38f);`:`var threadMax = ${C}(-65504.0h);`,P=f=>`
|
|
2712
2712
|
var<workgroup> rowMaxShared : ${C};
|
|
2713
2713
|
var<workgroup> rowSumShared : ${C};
|
|
2714
2714
|
var<workgroup> threadShared : array<${C}, ${x}>;
|
|
@@ -2780,7 +2780,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2780
2780
|
let value = exp(getValue(row, col, row_stride) - rowMaxShared) / rowSumShared;
|
|
2781
2781
|
setValue(row, col, row_stride, value);
|
|
2782
2782
|
}
|
|
2783
|
-
}`,I=e.compute({name:"Softmax",shaderCache:{hint:`${g};${x}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:_,dataType:l.dataType}],dispatchGroup:{x:d},programUniforms:[{type:6,data:h}]}),getShaderSource:P},{inputs:[l],outputs:[i?-1:0]})[0];i&&e.compute(os(I,c),{inputs:[I]})},
|
|
2783
|
+
}`,I=e.compute({name:"Softmax",shaderCache:{hint:`${g};${x}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:_,dataType:l.dataType}],dispatchGroup:{x:d},programUniforms:[{type:6,data:h}]}),getShaderSource:P},{inputs:[l],outputs:[i?-1:0]})[0];i&&e.compute(os(I,c),{inputs:[I]})},c0=(e,r)=>{Db(e.inputs),Ob(e,r)},d0=e=>jt({axis:e.axis})}),Ed,Lb,Bb,zb,u0,lE=Ve(()=>{"use strict";Mt(),kt(),Ct(),Ed=e=>Array.from(e.getBigInt64Array(),Number),Lb=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(Ed(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")},Bb=(e,r)=>{let t=[];for(let s=0;s<e.length;++s)t.push(e[s]*r[s]);return t},zb=(e,r)=>{let t=e[0].dims,s=r??Ed(e[1]),o=Bb(t,s),a=Me.size(o),n=e[0].dataType,i=Fe("input",n,t.length),l=it("output",n,o.length),c=_=>`
|
|
2784
2784
|
const inputShape = ${i.indices(...t)};
|
|
2785
2785
|
${_.registerUniform("output_size","u32").declareVariables(i,l)}
|
|
2786
2786
|
${_.mainStart()}
|
|
@@ -2794,7 +2794,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2794
2794
|
${i.indicesSet("input_indices","i","input_dim_value")}
|
|
2795
2795
|
}
|
|
2796
2796
|
${l.setByOffset("global_idx",i.getByIndices("input_indices"))}
|
|
2797
|
-
}`;return{name:"Tile",shaderCache:{hint:`${s}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:[{type:12,data:a},...dt(e[0].dims,o)]}),getShaderSource:c}},
|
|
2797
|
+
}`;return{name:"Tile",shaderCache:{hint:`${s}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:[{type:12,data:a},...dt(e[0].dims,o)]}),getShaderSource:c}},u0=e=>{Lb(e.inputs),e.compute(zb(e.inputs),{inputs:[0]})}}),Rb,Nb,_0,cE=Ve(()=>{"use strict";Mt(),kt(),Ct(),Rb=(e,r,t,s,o)=>{let a=it("output_data",o,t.length,4),n=Fe("a_data",r[1].dataType,r[1].dims.length,4),i=Fe("b_data",r[2].dataType,r[2].dims.length,4),l=Fe("c_data",r[0].dataType,r[0].dims.length,4),c,_=(u,d,g)=>`select(${d}, ${u}, ${g})`;if(!s)c=a.setByOffset("global_idx",_(n.getByOffset("global_idx"),i.getByOffset("global_idx"),l.getByOffset("global_idx")));else{let u=(d,g,h="")=>{let x=`a_data[index_a${g}][component_a${g}]`,F=`b_data[index_b${g}][component_b${g}]`,v=`bool(c_data[index_c${g}] & (0xffu << (component_c${g} * 8)))`;return`
|
|
2798
2798
|
let output_indices${g} = ${a.offsetToIndices(`global_idx * 4u + ${g}u`)};
|
|
2799
2799
|
let offset_a${g} = ${n.broadcastedIndicesToOffset(`output_indices${g}`,a)};
|
|
2800
2800
|
let offset_b${g} = ${i.broadcastedIndicesToOffset(`output_indices${g}`,a)};
|
|
@@ -2822,10 +2822,10 @@ fn calculateOutputIndex(index: u32) -> u32 {
|
|
|
2822
2822
|
${e.mainStart()}
|
|
2823
2823
|
${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}
|
|
2824
2824
|
${c}
|
|
2825
|
-
}`},
|
|
2825
|
+
}`},Nb=e=>{let r=e[1].dims,t=e[2].dims,s=e[0].dims,o=e[1].dataType,a=!(Me.areEqual(r,t)&&Me.areEqual(t,s)),n=r,i=Me.size(r);if(a){let c=ma.calcShape(ma.calcShape(r,t,!1),s,!1);if(!c)throw new Error("Can't perform where op on the given tensors");n=c,i=Me.size(n)}let l=Math.ceil(i/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:c=>Rb(c,e,n,a,o),getRunData:()=>({outputs:[{dims:n,dataType:o}],dispatchGroup:{x:Math.ceil(i/64/4)},programUniforms:[{type:12,data:l},...dt(s,r,t,n)]})}},_0=e=>{e.compute(Nb(e.inputs))}}),p0,dE=Ve(()=>{"use strict";TP(),cu(),PP(),EP(),kP(),CP(),SP(),DP(),LP(),BP(),zP(),RP(),NP(),jP(),VP(),WP(),UP(),GP(),KP(),HP(),qP(),QP(),XP(),JP(),YP(),Ay(),ZP(),eE(),tE(),rE(),sE(),lu(),oE(),By(),aE(),nE(),iE(),Oy(),lE(),po(),du(),cE(),p0=new Map([["Abs",[nx]],["Acos",[ix]],["Acosh",[lx]],["Add",[Vx]],["ArgMax",[rx,Bd]],["ArgMin",[tx,Bd]],["Asin",[cx]],["Asinh",[dx]],["Atan",[ux]],["Atanh",[_x]],["Attention",[sx]],["AveragePool",[Ky,Gy]],["BatchNormalization",[ox]],["BiasAdd",[ax]],["BiasSplitGelu",[jx]],["Cast",[mx,px]],["Ceil",[fx]],["Clip",[hx]],["Concat",[Yx,Zx]],["Conv",[Wd,Vd]],["ConvTranspose",[cy,ly]],["Cos",[gx]],["Cosh",[Mx]],["CumSum",[dy,uy]],["DepthToSpace",[_y,py]],["DequantizeLinear",[Zy,e0]],["Div",[Wx]],["Einsum",[my,hy]],["Elu",[wx,dn]],["Equal",[Ux]],["Erf",[bx]],["Exp",[vx]],["Expand",[fy]],["FastGelu",[gy]],["Floor",[xx]],["FusedConv",[Wd,Vd]],["Gather",[wy,My]],["GatherElements",[Py,Ty]],["GatherBlockQuantized",[xy,yy]],["GatherND",[by,vy]],["Gelu",[yx]],["Gemm",[ky,Ey]],["GlobalAveragePool",[qy,Hy]],["GlobalMaxPool",[Yy,Jy]],["Greater",[qx]],["GreaterOrEqual",[Xx]],["GridSample",[Cy,Sy]],["GroupQueryAttention",[zy]],["HardSigmoid",[Ix,Fx]],["InstanceNormalization",[Ry]],["LayerNormalization",[Ny]],["LeakyRelu",[Tx,dn]],["Less",[Qx]],["LessOrEqual",[Jx]],["Log",[Rx]],["MatMul",[jy]],["MatMulNBits",[Vy,Wy]],["MaxPool",[Qy,Xy]],["Mul",[Gx]],["MultiHeadAttention",[Iy,Fy]],["Neg",[Ex]],["Not",[Px]],["Pad",[Uy]],["Pow",[Kx]],["QuickGelu",[Nx,dn]],["Range",[t0]],["Reciprocal",[kx]],["ReduceMin",[Xv]],["ReduceMean",[Gv]],["ReduceMax",[Qv]],["ReduceSum",[Yv]],["ReduceProd",[Jv]],["ReduceL1",[Kv]],["ReduceL2",[Hv]],["ReduceLogSum",[ex]],["ReduceLogSumExp",[qv]],["ReduceSumSquare",[Zv]],["Relu",[Cx]],["Resize",[o0,a0]],["RotaryEmbedding",[Ly]],["ScatterND",[s0,r0]],["Sigmoid",[Sx]],["Sin",[Ax]],["Sinh",[$x]],["Slice",[i0,l0]],["SkipLayerNormalization",[n0]],["Split",[$y,Dy]],["Sqrt",[Dx]],["Softmax",[c0,d0]],["Sub",[Hx]],["Tan",[Ox]],["Tanh",[Lx]],["ThresholdedRelu",[zx,dn]],["Tile",[u0]],["Transpose",[$v,Dv]],["Where",[_0]]])}),m0,uE=Ve(()=>{"use strict";ks(),Js(),Ct(),m0=class{constructor(e){this.backend=e,this.repo=new Map,this.attributesBound=!1}getArtifact(e){return this.repo.get(e)}setArtifact(e,r){this.repo.set(e,r)}run(e,r,t,s,o){Es(e.programInfo.name);let a=this.backend.device,n=this.backend.getComputePassEncoder();this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2);let i=[];for(let c of r)i.push({binding:i.length,resource:{buffer:c.buffer}});for(let c of t)i.push({binding:i.length,resource:{buffer:c.buffer}});o&&i.push({binding:i.length,resource:o});let l=a.createBindGroup({layout:e.computePipeline.getBindGroupLayout(0),entries:i,label:e.programInfo.name});if(this.backend.sessionStatus==="capturing"){let c={kernelId:this.backend.currentKernelId,computePipeline:e.computePipeline,bindGroup:l,dispatchGroup:s};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(c)}n.setPipeline(e.computePipeline),n.setBindGroup(0,l),n.dispatchWorkgroups(...s),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(),us(e.programInfo.name)}dispose(){}build(e,r){Es(e.name);let t=this.backend.device,s=[];[{feature:"shader-f16",extension:"f16"},{feature:"subgroups",extension:"subgroups"}].forEach(c=>{t.features.has(c.feature)&&s.push(`enable ${c.extension};`)});let o=Av(r,this.backend.device.limits),a=e.getShaderSource(o),n=`${s.join(`
|
|
2826
2826
|
`)}
|
|
2827
2827
|
${o.additionalImplementations}
|
|
2828
|
-
${a}`,i=t.createShaderModule({code:n,label:e.name});Ot("verbose",()=>`[WebGPU] ${e.name} shader code: ${n}`);let l=t.createComputePipeline({compute:{module:i,entryPoint:"main"},layout:"auto",label:e.name});return us(e.name),{programInfo:e,computePipeline:l,uniformVariablesInfo:o.variablesInfo}}normalizeDispatchGroupSize(e){let r=typeof e=="number"?e:e.x,t=typeof e=="number"?1:e.y||1,s=typeof e=="number"?1:e.z||1,o=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(r<=o&&t<=o&&s<=o)return[r,t,s];let a=r*t*s,n=Math.ceil(Math.sqrt(a));if(n>o){if(n=Math.ceil(Math.cbrt(a)),n>o)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[n,n,n]}else return[n,n,1]}}}),m0={};ha(m0,{WebGpuBackend:()=>h0});var Nb,jb,Vb,h0,uE=Ve(()=>{"use strict";ks(),Mt(),Js(),Ev(),vP(),cE(),dE(),Nb=(e,r)=>{if(r.length!==e.length)throw new Error(`inputDependencies length ${r.length} is not equal to inputTensors length ${e.length}.`);let t=[];for(let s=0;s<e.length;++s){let o=e[s].dataType;switch(r[s]){case"none":{t.push("");break}case"type":{t.push(`${o}`);break}case"rank":{let a=e[s].dims.length;t.push(`${o};${a}`);break}case"dims":{let a=e[s].dims.join(",");t.push(`${o};${a}`);break}default:throw new Error(`unsupported input dependency: ${r[s]}`)}}return t.join("|")},jb=(e,r,t)=>{let s=e.name;return e.shaderCache?.hint&&(s+="["+e.shaderCache.hint+"]"),s+=":"+t+`:${Nb(r,e.shaderCache?.inputDependencies??new Array(r.length).fill("dims"))}`,s},Vb=class{constructor(e){e&&(this.architecture=e.architecture,this.vendor=e.vendor)}isArchitecture(e){return this.architecture===e}isVendor(e){return this.vendor===e}},h0=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 e=this.kernelCustomData.get(this.currentKernelId);return e||(e={},this.kernelCustomData.set(this.currentKernelId,e)),e}async initialize(e,r){this.env=e;let t=[],s={requiredLimits:{maxComputeWorkgroupStorageSize:r.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:r.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:r.limits.maxStorageBufferBindingSize,maxBufferSize:r.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:r.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:r.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:r.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:r.limits.maxComputeWorkgroupSizeZ},requiredFeatures:t},o=a=>r.features.has(a)&&t.push(a)&&!0;o("chromium-experimental-timestamp-query-inside-passes")||o("timestamp-query"),o("shader-f16"),o("subgroups"),this.device=await r.requestDevice(s),this.adapterInfo=new Vb(r.info||await r.requestAdapterInfo()),this.gpuDataManager=Sv(this),this.programManager=new p0(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,ou(e.logLevel,!!e.debug),this.device.onuncapturederror=a=>{a.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${a.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:r,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<"u"&&this.querySet.destroy(),this.gpuDataManager.dispose()}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}getComputePassEncoder(){if(!this.computePassEncoder){let e=this.getCommandEncoder(),r={};this.queryType==="at-passes"&&(r.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=e.beginComputePass(r)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;Es(),this.endComputePass();let e;this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),e=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(e,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,e,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&e.mapAsync(GPUMapMode.READ).then(()=>{let r=new BigUint64Array(e.getMappedRange()),t=this.pendingQueries.get(e);for(let s=0;s<r.length/2;s++){let o=t[s],a=o.kernelId,n=this.kernels.get(a),i=n.kernelType,l=n.kernelName,c=o.programName,_=o.inputTensorViews,u=o.outputTensorViews,d=r[s*2],g=r[s*2+1];typeof this.queryTimeBase>"u"&&(this.queryTimeBase=d);let h=Number(d-this.queryTimeBase),x=Number(g-this.queryTimeBase);if(!Number.isSafeInteger(h)||!Number.isSafeInteger(x))throw new RangeError("incorrect timestamp range");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:_.map(F=>({dims:F.dims,dataType:Xs(F.dataType)})),outputsMetadata:u.map(F=>({dims:F.dims,dataType:Xs(F.dataType)})),kernelId:a,kernelType:i,kernelName:l,programName:c,startTime:h,endTime:x});else{let F="";_.forEach((b,C)=>{F+=`input[${C}]: [${b.dims}] | ${Xs(b.dataType)}, `});let v="";u.forEach((b,C)=>{v+=`output[${C}]: [${b.dims}] | ${Xs(b.dataType)}, `}),console.log(`[profiling] kernel "${a}|${i}|${l}|${c}" ${F}${v}execution time: ${x-h} ns`)}pn("GPU",`${c}::${d}::${g}`)}e.unmap(),this.pendingQueries.delete(e)}),us()}run(e,r,t,s,o,a){Es(e.name);let n=[];for(let b=0;b<r.length;++b){let C=r[b].data;if(C===0)continue;let y=this.gpuDataManager.get(C);if(!y)throw new Error(`no GPU data for input: ${C}`);n.push(y)}let{outputs:i,dispatchGroup:l,programUniforms:c}=e.getRunData(r),_=t.length===0?i.map((b,C)=>C):t;if(_.length!==i.length)throw new Error(`Output size ${_.length} must be equal to ${i.length}.`);let u=[],d=[];for(let b=0;b<i.length;++b){if(!Number.isInteger(_[b])||_[b]<-3||_[b]>=a)throw new Error(`Invalid output index: ${_[b]}`);if(_[b]===-3)continue;let C=_[b]===-1,y=_[b]===-2,P=C||y?o(i[b].dataType,i[b].dims):s(_[b],i[b].dataType,i[b].dims);if(u.push(P),P.data===0)continue;let I=this.gpuDataManager.get(P.data);if(!I)throw new Error(`no GPU data for output: ${P.data}`);if(C&&this.temporaryData.push(I),y){let f=this.kernelPersistentData.get(this.currentKernelId);f||(f=[],this.kernelPersistentData.set(this.currentKernelId,f)),f.push(I)}d.push(I)}if(n.length!==r.length||d.length!==u.length){if(d.length===0)return us(e.name),u;throw new Error(`Program ${e.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let g;if(c){let b=0,C=[];c.forEach(f=>{let E=typeof f.data=="number"?[f.data]:f.data;if(E.length===0)return;let D=f.type===10?2:4,O,U;f.type===10?(U=E.length>4?16:E.length>2?8:E.length*D,O=E.length>4?16:D*E.length):(U=E.length<=2?E.length*D:16,O=16),b=Math.ceil(b/U)*U,C.push(b);let W=f.type===10?8:4;b+=E.length>4?Math.ceil(E.length/W)*O:E.length*D});let y=16;b=Math.ceil(b/y)*y;let P=new ArrayBuffer(b);c.forEach((f,E)=>{let D=C[E],O=typeof f.data=="number"?[f.data]:f.data;if(f.type===6)new Int32Array(P,D,O.length).set(O);else if(f.type===12)new Uint32Array(P,D,O.length).set(O);else if(f.type===10)new Uint16Array(P,D,O.length).set(O);else if(f.type===1)new Float32Array(P,D,O.length).set(O);else throw new Error(`Unsupported uniform type: ${Xs(f.type)}`)});let I=this.gpuDataManager.create(b,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(I.buffer,0,P,0,b),this.gpuDataManager.release(I.id),g={offset:0,size:b,buffer:I.buffer}}let h=this.programManager.normalizeDispatchGroupSize(l),x=h[1]===1&&h[2]===1,F=jb(e,r,x),v=this.programManager.getArtifact(F);if(v||(v=this.programManager.build(e,h),this.programManager.setArtifact(F,v),Ot("info",()=>`[artifact] key: ${F}, programName: ${e.name}`)),c&&v.uniformVariablesInfo){if(c.length!==v.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${v.uniformVariablesInfo.length}, got ${c.length} in program "${v.programInfo.name}".`);for(let b=0;b<c.length;b++){let C=c[b],y=C.type,P=typeof C.data=="number"?1:C.data.length,[I,f]=v.uniformVariablesInfo[b];if(y!==I||P!==f)throw new Error(`Uniform variable ${b} mismatch: expect type ${I} with size ${f}, got type ${y} with size ${P} in program "${v.programInfo.name}".`)}}if(Ot("info",()=>`[ProgramManager] run "${e.name}" (key=${F}) with ${h[0]}x${h[1]}x${h[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let b={kernelId:this.currentKernelId,programName:v.programInfo.name,inputTensorViews:r,outputTensorViews:u};this.pendingKernels.push(b),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(b)}return this.programManager.run(v,n,d,h,g),us(e.name),u}upload(e,r){this.gpuDataManager.upload(e,r)}memcpy(e,r){this.gpuDataManager.memcpy(e,r)}async download(e,r){await this.gpuDataManager.download(e,r)}alloc(e){return this.gpuDataManager.create(e).id}free(e){return this.gpuDataManager.release(e)}createKernel(e,r,t,s){let o=_0.get(e);if(!o)throw new Error(`kernel not implemented: ${e}`);let a={kernelType:e,kernelName:s,kernelEntry:o[0],attributes:[o[1],t]};this.kernels.set(r,a)}releaseKernel(e){let r=this.kernelPersistentData.get(e);if(r){for(let t of r)this.gpuDataManager.release(t.id);this.kernelPersistentData.delete(e)}this.kernelCustomData.delete(e),this.kernels.delete(e)}computeKernel(e,r,t){let s=this.kernels.get(e);if(!s)throw new Error(`kernel not created: ${e}`);let o=s.kernelType,a=s.kernelName,n=s.kernelEntry,i=s.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${o}] ${a}" is not allowed to be called recursively`);this.currentKernelId=e,i[0]&&(i[1]=i[0](i[1]),i[0]=void 0),Ot("info",()=>`[WebGPU] Start to run kernel "[${o}] ${a}"...`);let l=this.env.debug;this.temporaryData=[];try{return l&&this.device.pushErrorScope("validation"),n(r,i[1]),0}catch(c){return t.push(Promise.resolve(`[WebGPU] Kernel "[${o}] ${a}" failed. ${c}`)),1}finally{l&&t.push(this.device.popErrorScope().then(c=>c?`GPU validation error for kernel "[${o}] ${a}": ${c.message}`:null));for(let c of this.temporaryData)this.gpuDataManager.release(c.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(e,r,t,s){let o=this.sessionExternalDataMapping.get(e);o||(o=new Map,this.sessionExternalDataMapping.set(e,o));let a=o.get(r),n=this.gpuDataManager.registerExternalBuffer(t,s,a);return o.set(r,[n,t]),n}unregisterBuffers(e){let r=this.sessionExternalDataMapping.get(e);r&&(r.forEach(t=>this.gpuDataManager.unregisterExternalBuffer(t[0])),this.sessionExternalDataMapping.delete(e))}getBuffer(e){let r=this.gpuDataManager.get(e);if(!r)throw new Error(`no GPU data for buffer: ${e}`);return r.buffer}createDownloader(e,r,t){return async()=>{let s=await Dd(this,e,r);return au(s.buffer,t)}}writeTimestamp(e){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,e)}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(){Ot("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(){Ot("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Ot("info","replay"),this.sessionStatus="replaying";let e=this.capturedCommandList.get(this.currentSessionId),r=this.capturedPendingKernels.get(this.currentSessionId),t=e.length;this.pendingKernels=[];for(let s=0;s<t;s++){let o=this.getComputePassEncoder(),a=e[s];this.writeTimestamp(this.pendingDispatchNumber*2),o.setPipeline(a.computePipeline),o.setBindGroup(0,a.bindGroup),o.dispatchWorkgroups(...a.dispatchGroup),this.writeTimestamp(this.pendingDispatchNumber*2+1),this.pendingDispatchNumber++,this.queryType!=="none"&&this.pendingKernels.push(r[s]),(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(e){this.unregisterBuffers(e),this.capturedCommandList.has(e)&&this.capturedCommandList.delete(e),this.capturedPendingKernels.has(e)&&this.capturedPendingKernels.delete(e),this.gpuDataManager.onReleaseSession(e)}onRunStart(e){this.currentSessionId=e,this.setQueryType()}}}),f0={};ha(f0,{init:()=>g0});var Ni,Wb,g0,_E=Ve(()=>{"use strict";Mt(),Js(),kt(),bP(),Ni=class M0{constructor(r,t,s,o){this.module=r,this.dataType=t,this.data=s,this.dims=o}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,r)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,r)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,r)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,r)}reshape(r){if(Me.size(r)!==Me.size(this.dims))throw new Error("Invalid new shape");return new M0(this.module,this.dataType,this.data,r)}},Wb=class{constructor(e,r,t){this.module=e,this.backend=r,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=r.adapterInfo;let s=e.PTR_SIZE,o=t/e.PTR_SIZE,a=s===4?"i32":"i64";this.opKernelContext=Number(e.getValue(s*o++,a));let n=Number(e.getValue(s*o++,a));this.outputCount=Number(e.getValue(s*o++,a)),this.customDataOffset=Number(e.getValue(s*o++,"*")),this.customDataSize=Number(e.getValue(s*o++,a));let i=[];for(let l=0;l<n;l++){let c=Number(e.getValue(s*o++,a)),_=Number(e.getValue(s*o++,"*")),u=Number(e.getValue(s*o++,a)),d=[];for(let g=0;g<u;g++)d.push(Number(e.getValue(s*o++,a)));i.push(new Ni(e,c,_,d))}this.inputs=i}get kernelCustomData(){return this.backend.currentKernelCustomData}get customDataBuffer(){return this.module.HEAPU8.subarray(this.customDataOffset,this.customDataOffset+this.customDataSize)}compute(e,r){let t=r?.inputs?.map(n=>typeof n=="number"?this.inputs[n]:n)??this.inputs,s=r?.outputs??[],o=(n,i,l)=>new Ni(this.module,i,this.output(n,l),l),a=(n,i)=>{let l=Lo(n,i);if(!l)throw new Error(`Unsupported data type: ${n}`);let c=l>0?this.backend.gpuDataManager.create(l).id:0;return new Ni(this.module,n,c,i)};return this.backend.run(e,t,s,o,a,this.outputCount)}output(e,r){let t=this.module.stackSave();try{let s=this.module.PTR_SIZE,o=s===4?"i32":"i64",a=this.module.stackAlloc((1+r.length)*s);this.module.setValue(a,r.length,o);for(let n=0;n<r.length;n++)this.module.setValue(a+s*(n+1),r[n],o);return this.module._JsepOutput(this.opKernelContext,e,a)}catch(s){throw new Error(`Failed to generate kernel's output[${e}] with dims [${r}]. If you are running with pre-allocated output, please make sure the output type/dims are correct. Error: ${s}`)}finally{this.module.stackRestore(t)}}},g0=async(e,r,t,s)=>{let o=r.jsepInit;if(!o)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(e==="webgpu"){let a=(uE(),_n(m0)).WebGpuBackend,n=new a;await n.initialize(t,s),o("webgpu",[n,i=>n.alloc(Number(i)),i=>n.free(i),(i,l,c,_=!1)=>{if(_)Ot("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(i)}, dst=${Number(l)}, size=${Number(c)}`),n.memcpy(Number(i),Number(l));else{Ot("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(i)}, gpuDataId=${Number(l)}, size=${Number(c)}`);let u=r.HEAPU8.subarray(Number(i>>>0),Number(i>>>0)+Number(c));n.upload(Number(l),u)}},async(i,l,c)=>{Ot("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${i}, dataOffset=${l}, size=${c}`),await n.download(Number(i),()=>r.HEAPU8.subarray(Number(l)>>>0,Number(l+c)>>>0))},(i,l,c)=>n.createKernel(i,Number(l),c,r.UTF8ToString(r._JsepGetNodeName(Number(l)))),i=>n.releaseKernel(i),(i,l,c,_)=>{Ot("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${c}, kernel=${i}, contextDataOffset=${l}`);let u=new Wb(r,n,Number(l));return n.computeKernel(Number(i),u,_)},()=>n.captureBegin(),()=>n.captureEnd(),()=>n.replay()])}else{let a=new Cv(t);o("webnn",[a,()=>a.reserveTensorId(),n=>a.releaseTensorId(n),async(n,i,l,c,_)=>a.ensureTensor(n,i,l,c,_),(n,i)=>{a.uploadTensor(n,i)},async(n,i)=>a.downloadTensor(n,i)])}}}),Ub,fu,gu,co,Gb,kd,Ji,Mu,wu,Cd,bu,vu,xu,w0=Ve(()=>{"use strict";gP(),MP(),Mt(),jo(),Zd(),xv(),Ub=(e,r)=>{Jt()._OrtInit(e,r)!==0&&Kt("Can't initialize onnxruntime.")},fu=async e=>{Ub(e.wasm.numThreads,Ki(e.logLevel))},gu=async(e,r)=>{Jt().asyncInit?.();{let t=(_E(),_n(f0)).init;if(r==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let s=e.webgpu.adapter;if(s){if(typeof s.limits!="object"||typeof s.features!="object"||typeof s.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 a=e.webgpu.forceFallbackAdapter;if(a!==void 0&&typeof a!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${a}"`);if(s=await navigator.gpu.requestAdapter({powerPreference:o,forceFallbackAdapter:a}),!s)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await t("webgpu",Jt(),e,s)}if(r==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await t("webnn",Jt(),e)}}},co=new Map,Gb=e=>{let r=Jt(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetInputOutputCount(e,o,o+s)!==0&&Kt("Can't get session input/output count.");let a=s===4?"i32":"i64";return[Number(r.getValue(o,a)),Number(r.getValue(o+s,a))]}finally{r.stackRestore(t)}},kd=(e,r)=>{let t=Jt(),s=t.stackSave(),o=0;try{let a=t.PTR_SIZE,n=t.stackAlloc(2*a);t._OrtGetInputOutputMetadata(e,r,n,n+a)!==0&&Kt("Can't get session input/output metadata.");let i=Number(t.getValue(n,"*"));o=Number(t.getValue(n+a,"*"));let l=t.HEAP32[o/4];if(l===0)return[i,0];let c=t.HEAPU32[o/4+1],_=[];for(let u=0;u<c;u++){let d=Number(t.getValue(o+8+u*a,"*"));_.push(d!==0?t.UTF8ToString(d):Number(t.getValue(o+8+(u+c)*a,"*")))}return[i,l,_]}finally{t.stackRestore(s),o!==0&&t._OrtFree(o)}},Ji=e=>{let r=Jt(),t=r._malloc(e.byteLength);if(t===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return r.HEAPU8.set(e,t),[t,e.byteLength]},Mu=async(e,r)=>{let t,s,o=Jt();Array.isArray(e)?[t,s]=e:e.buffer===o.HEAPU8.buffer?[t,s]=[e.byteOffset,e.byteLength]:[t,s]=Ji(e);let a=0,n=0,i=0,l=[],c=[],_=[];try{if([n,l]=await vv(r),r?.externalData&&o.mountExternalData){let y=[];for(let P of r.externalData){let I=typeof P=="string"?P:P.path;y.push(su(typeof P=="string"?P:P.data).then(f=>{o.mountExternalData(I,f)}))}await Promise.all(y)}for(let y of r?.executionProviders??[])if((typeof y=="string"?y:y.name)==="webnn"){if(o.shouldTransferToMLTensor=!1,typeof y!="string"){let P=y,I=P?.context,f=P?.gpuDevice,E=P?.deviceType,D=P?.powerPreference;I?o.currentContext=I:f?o.currentContext=await o.webnnCreateMLContext(f):o.currentContext=await o.webnnCreateMLContext({deviceType:E,powerPreference:D})}else o.currentContext=await o.webnnCreateMLContext();break}a=await o._OrtCreateSession(t,s,n),o.webgpuOnCreateSession?.(a),a===0&&Kt("Can't create a session."),o.jsepOnCreateSession?.(),o.currentContext&&(o.webnnRegisterMLContext(a,o.currentContext),o.currentContext=void 0,o.shouldTransferToMLTensor=!0);let[u,d]=Gb(a),g=!!r?.enableGraphCapture,h=[],x=[],F=[],v=[],b=[];for(let y=0;y<u;y++){let[P,I,f]=kd(a,y);P===0&&Kt("Can't get an input name."),c.push(P);let E=o.UTF8ToString(P);h.push(E),F.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Xs(I),shape:f})}for(let y=0;y<d;y++){let[P,I,f]=kd(a,y+u);P===0&&Kt("Can't get an output name."),_.push(P);let E=o.UTF8ToString(P);x.push(E),v.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Xs(I),shape:f});{if(g&&r?.preferredOutputLocation===void 0){b.push("gpu-buffer");continue}let D=typeof r?.preferredOutputLocation=="string"?r.preferredOutputLocation:r?.preferredOutputLocation?.[E]??"cpu";if(D!=="cpu"&&D!=="cpu-pinned"&&D!=="gpu-buffer"&&D!=="ml-tensor")throw new Error(`Not supported preferred output location: ${D}.`);if(g&&D!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${D}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);b.push(D)}}let C=null;return b.some(y=>y==="gpu-buffer"||y==="ml-tensor")&&(i=o._OrtCreateBinding(a),i===0&&Kt("Can't create IO binding."),C={handle:i,outputPreferredLocations:b,outputPreferredLocationsEncoded:b.map(y=>Ad(y))}),co.set(a,[a,c,_,C,g,!1]),[a,h,x,F,v]}catch(u){throw c.forEach(d=>o._OrtFree(d)),_.forEach(d=>o._OrtFree(d)),i!==0&&o._OrtReleaseBinding(i)!==0&&Kt("Can't release IO binding."),a!==0&&o._OrtReleaseSession(a)!==0&&Kt("Can't release session."),u}finally{o._free(t),n!==0&&o._OrtReleaseSessionOptions(n)!==0&&Kt("Can't release session options."),l.forEach(u=>o._free(u)),o.unmountExternalData?.()}},wu=e=>{let r=Jt(),t=co.get(e);if(!t)throw new Error(`cannot release session. invalid session id: ${e}`);let[s,o,a,n,i]=t;n&&(i&&r._OrtClearBoundOutputs(n.handle)!==0&&Kt("Can't clear bound outputs."),r._OrtReleaseBinding(n.handle)!==0&&Kt("Can't release IO binding.")),r.jsepOnReleaseSession?.(e),r.webnnOnReleaseSession?.(e),r.webgpuOnReleaseSession?.(e),o.forEach(l=>r._OrtFree(l)),a.forEach(l=>r._OrtFree(l)),r._OrtReleaseSession(s)!==0&&Kt("Can't release session."),co.delete(e)},Cd=async(e,r,t,s,o,a,n=!1)=>{if(!e){r.push(0);return}let i=Jt(),l=i.PTR_SIZE,c=e[0],_=e[1],u=e[3],d=u,g,h;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(n&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${a} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let v=e[2].gpuBuffer;h=Lo(ua(c),_);{let b=i.jsepRegisterBuffer;if(!b)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');g=b(s,a,v,h)}}else if(u==="ml-tensor"){let v=e[2].mlTensor;h=Lo(ua(c),_);let b=i.webnnRegisterMLTensor;if(!b)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');g=b(s,v,ua(c),_)}else{let v=e[2];if(Array.isArray(v)){h=l*v.length,g=i._malloc(h),t.push(g);for(let b=0;b<v.length;b++){if(typeof v[b]!="string")throw new TypeError(`tensor data at index ${b} is not a string`);i.setValue(g+b*l,Ts(v[b],t),"*")}}else{let b=i.webnnIsGraphInput;if(c!=="string"&&b){let C=i.UTF8ToString(o);if(b(s,C)){let y=ua(c);h=Lo(y,_),d="ml-tensor";let P=i.webnnCreateTemporaryTensor,I=i.webnnUploadTensor;if(!P||!I)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let f=await P(s,y,_);I(f,new Uint8Array(v.buffer,v.byteOffset,v.byteLength)),g=f}else h=v.byteLength,g=i._malloc(h),t.push(g),i.HEAPU8.set(new Uint8Array(v.buffer,v.byteOffset,h),g)}else h=v.byteLength,g=i._malloc(h),t.push(g),i.HEAPU8.set(new Uint8Array(v.buffer,v.byteOffset,h),g)}}let x=i.stackSave(),F=i.stackAlloc(4*_.length);try{_.forEach((b,C)=>i.setValue(F+C*l,b,l===4?"i32":"i64"));let v=i._OrtCreateTensor(ua(c),g,h,F,_.length,Ad(d));v===0&&Kt(`Can't create tensor for input/output. session=${s}, index=${a}.`),r.push(v)}finally{i.stackRestore(x)}},bu=async(e,r,t,s,o,a)=>{let n=Jt(),i=n.PTR_SIZE,l=co.get(e);if(!l)throw new Error(`cannot run inference. invalid session id: ${e}`);let c=l[0],_=l[1],u=l[2],d=l[3],g=l[4],h=l[5],x=r.length,F=s.length,v=0,b=[],C=[],y=[],P=[],I=n.stackSave(),f=n.stackAlloc(x*i),E=n.stackAlloc(x*i),D=n.stackAlloc(F*i),O=n.stackAlloc(F*i);try{[v,b]=bv(a);for(let z=0;z<x;z++)await Cd(t[z],C,P,e,_[r[z]],r[z],g);for(let z=0;z<F;z++)await Cd(o[z],y,P,e,u[s[z]],x+s[z],g);for(let z=0;z<x;z++)n.setValue(f+z*i,C[z],"*"),n.setValue(E+z*i,_[r[z]],"*");for(let z=0;z<F;z++)n.setValue(D+z*i,y[z],"*"),n.setValue(O+z*i,u[s[z]],"*");if(d&&!h){let{handle:z,outputPreferredLocations:X,outputPreferredLocationsEncoded:J}=d;if(_.length!==x)throw new Error(`input count from feeds (${x}) is expected to be always equal to model's input count (${_.length}).`);for(let q=0;q<x;q++){let re=r[q];await n._OrtBindInput(z,_[re],C[q])!==0&&Kt(`Can't bind input[${q}] for session=${e}.`)}for(let q=0;q<F;q++){let re=s[q];o[q]?.[3]?n._OrtBindOutput(z,u[re],y[q],0)!==0&&Kt(`Can't bind pre-allocated output[${q}] for session=${e}.`):n._OrtBindOutput(z,u[re],0,J[re])!==0&&Kt(`Can't bind output[${q}] to ${X[q]} for session=${e}.`)}co.set(e,[c,_,u,d,g,!0])}n.jsepOnRunStart?.(c),n.webnnOnRunStart?.(c);let U;d?U=await n._OrtRunWithBinding(c,d.handle,F,D,v):U=await n._OrtRun(c,E,f,x,O,F,D,v),U!==0&&Kt("failed to call OrtRun().");let W=[];for(let z=0;z<F;z++){let X=Number(n.getValue(D+z*i,"*"));if(X===y[z]){W.push(o[z]);continue}let J=n.stackSave(),q=n.stackAlloc(4*i),re=!1,oe,ne=0;try{n._OrtGetTensorData(X,q,q+i,q+2*i,q+3*i)!==0&&Kt(`Can't access output tensor data on index ${z}.`);let ye=i===4?"i32":"i64",Y=Number(n.getValue(q,ye));ne=n.getValue(q+i,"*");let H=n.getValue(q+i*2,"*"),R=Number(n.getValue(q+i*3,ye)),L=[];for(let ke=0;ke<R;ke++)L.push(Number(n.getValue(H+ke*i,ye)));n._OrtFree(H)!==0&&Kt("Can't free memory for tensor dims.");let ee=L.reduce((ke,Ie)=>ke*Ie,1);oe=Xs(Y);let ue=d?.outputPreferredLocations[s[z]];if(oe==="string"){if(ue==="gpu-buffer"||ue==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let ke=[];for(let Ie=0;Ie<ee;Ie++){let Le=n.getValue(ne+Ie*i,"*"),rt=n.getValue(ne+(Ie+1)*i,"*"),we=Ie===ee-1?void 0:rt-Le;ke.push(n.UTF8ToString(Le,we))}W.push([oe,L,ke,"cpu"])}else if(ue==="gpu-buffer"&&ee>0){let ke=n.jsepGetBuffer;if(!ke)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let Ie=ke(ne),Le=Lo(Y,ee);if(Le===void 0||!tu(oe))throw new Error(`Unsupported data type: ${oe}`);re=!0,W.push([oe,L,{gpuBuffer:Ie,download:n.jsepCreateDownloader(Ie,Le,oe),dispose:()=>{n._OrtReleaseTensor(X)!==0&&Kt("Can't release tensor.")}},"gpu-buffer"])}else if(ue==="ml-tensor"&&ee>0){let ke=n.webnnEnsureTensor,Ie=n.webnnIsInt64Supported;if(!ke||!Ie)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Lo(Y,ee)===void 0||!ru(oe))throw new Error(`Unsupported data type: ${oe}`);if(oe==="int64"&&!Ie(e))throw new Error('preferredLocation "ml-tensor" for int64 output is not supported by current WebNN Context.');let Le=await ke(e,ne,Y,L,!1);re=!0,W.push([oe,L,{mlTensor:Le,download:n.webnnCreateMLTensorDownloader(ne,oe),dispose:()=>{n.webnnReleaseTensorId(ne),n._OrtReleaseTensor(X)}},"ml-tensor"])}else{let ke=eu(oe),Ie=new ke(ee);new Uint8Array(Ie.buffer,Ie.byteOffset,Ie.byteLength).set(n.HEAPU8.subarray(ne,ne+Ie.byteLength)),W.push([oe,L,Ie,"cpu"])}}finally{n.stackRestore(J),oe==="string"&&ne&&n._free(ne),re||n._OrtReleaseTensor(X),n.webnnOnRunEnd?.(c)}}return d&&!g&&(n._OrtClearBoundOutputs(d.handle)!==0&&Kt("Can't clear bound outputs."),co.set(e,[c,_,u,d,g,!1])),W}finally{n.stackRestore(I),C.forEach(U=>n._OrtReleaseTensor(U)),y.forEach(U=>n._OrtReleaseTensor(U)),P.forEach(U=>n._free(U)),v!==0&&n._OrtReleaseRunOptions(v),b.forEach(U=>n._free(U))}},vu=e=>{let r=Jt(),t=co.get(e);if(!t)throw new Error("invalid session id");let s=t[0],o=r._OrtEndProfiling(s);o===0&&Kt("Can't get an profile file name."),r._OrtFree(o)},xu=e=>{let r=[];for(let t of e){let s=t[2];!Array.isArray(s)&&"buffer"in s&&r.push(s.buffer)}return r}}),uo,cs,da,on,an,ji,Sd,Vi,$o,Do,Kb,b0,v0,x0,y0,T0,P0,E0,k0=Ve(()=>{"use strict";ks(),w0(),jo(),Jd(),uo=()=>!!Zt.wasm.proxy&&typeof document<"u",da=!1,on=!1,an=!1,Vi=new Map,$o=(e,r)=>{let t=Vi.get(e);t?t.push(r):Vi.set(e,[r])},Do=()=>{if(da||!on||an||!cs)throw new Error("worker not ready")},Kb=e=>{switch(e.data.type){case"init-wasm":da=!1,e.data.err?(an=!0,Sd[1](e.data.err)):(on=!0,Sd[0]()),ji&&(URL.revokeObjectURL(ji),ji=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let r=Vi.get(e.data.type);e.data.err?r.shift()[1](e.data.err):r.shift()[0](e.data.out);break}default:}},b0=async()=>{if(!on){if(da)throw new Error("multiple calls to 'initWasm()' detected.");if(an)throw new Error("previous call to 'initWasm()' failed.");if(da=!0,uo())return new Promise((e,r)=>{cs?.terminate(),Mv().then(([t,s])=>{try{cs=s,cs.onerror=a=>r(a),cs.onmessage=Kb,Sd=[e,r];let o={type:"init-wasm",in:Zt};!o.in.wasm.wasmPaths&&(t||Id)&&(o.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href}),cs.postMessage(o),ji=t}catch(o){r(o)}},r)});try{await Yd(Zt.wasm),await fu(Zt),on=!0}catch(e){throw an=!0,e}finally{da=!1}}},v0=async e=>{if(uo())return Do(),new Promise((r,t)=>{$o("init-ep",[r,t]);let s={type:"init-ep",in:{epName:e,env:Zt}};cs.postMessage(s)});await gu(Zt,e)},x0=async e=>uo()?(Do(),new Promise((r,t)=>{$o("copy-from",[r,t]);let s={type:"copy-from",in:{buffer:e}};cs.postMessage(s,[e.buffer])})):Ji(e),y0=async(e,r)=>{if(uo()){if(r?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return Do(),new Promise((t,s)=>{$o("create",[t,s]);let o={type:"create",in:{model:e,options:{...r}}},a=[];e instanceof Uint8Array&&a.push(e.buffer),cs.postMessage(o,a)})}else return Mu(e,r)},T0=async e=>{if(uo())return Do(),new Promise((r,t)=>{$o("release",[r,t]);let s={type:"release",in:e};cs.postMessage(s)});wu(e)},P0=async(e,r,t,s,o,a)=>{if(uo()){if(t.some(n=>n[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(o.some(n=>n))throw new Error("pre-allocated output tensor is not supported for proxy.");return Do(),new Promise((n,i)=>{$o("run",[n,i]);let l=t,c={type:"run",in:{sessionId:e,inputIndices:r,inputs:l,outputIndices:s,options:a}};cs.postMessage(c,xu(l))})}else return bu(e,r,t,s,o,a)},E0=async e=>{if(uo())return Do(),new Promise((r,t)=>{$o("end-profiling",[r,t]);let s={type:"end-profiling",in:e};cs.postMessage(s)});vu(e)}}),Fd,Hb,C0,pE=Ve(()=>{"use strict";ks(),k0(),Mt(),Xd(),xv(),Fd=(e,r)=>{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 ${r()}`)}},Hb=e=>{switch(e[3]){case"cpu":return new Ps(e[0],e[2],e[1]);case"gpu-buffer":{let r=e[0];if(!tu(r))throw new Error(`not supported data type: ${r} for deserializing GPU tensor`);let{gpuBuffer:t,download:s,dispose:o}=e[2];return Ps.fromGpuBuffer(t,{dataType:r,dims:e[1],download:s,dispose:o})}case"ml-tensor":{let r=e[0];if(!ru(r))throw new Error(`not supported data type: ${r} for deserializing MLTensor tensor`);let{mlTensor:t,download:s,dispose:o}=e[2];return Ps.fromMLTensor(t,{dataType:r,dims:e[1],download:s,dispose:o})}default:throw new Error(`invalid data location: ${e[3]}`)}},C0=class{async fetchModelAndCopyToWasmMemory(e){return x0(await su(e))}async loadModel(e,r){Es();let t;typeof e=="string"?t=await this.fetchModelAndCopyToWasmMemory(e):t=e,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await y0(t,r),us()}async dispose(){return T0(this.sessionId)}async run(e,r,t){Es();let s=[],o=[];Object.entries(e).forEach(u=>{let d=u[0],g=u[1],h=this.inputNames.indexOf(d);if(h===-1)throw new Error(`invalid input '${d}'`);s.push(g),o.push(h)});let a=[],n=[];Object.entries(r).forEach(u=>{let d=u[0],g=u[1],h=this.outputNames.indexOf(d);if(h===-1)throw new Error(`invalid output '${d}'`);a.push(g),n.push(h)});let i=s.map((u,d)=>Fd(u,()=>`input "${this.inputNames[o[d]]}"`)),l=a.map((u,d)=>u?Fd(u,()=>`output "${this.outputNames[n[d]]}"`):null),c=await P0(this.sessionId,o,i,n,l,t),_={};for(let u=0;u<c.length;u++)_[this.outputNames[n[u]]]=a[u]??Hb(c[u]);return us(),_}startProfiling(){}endProfiling(){E0(this.sessionId)}}}),S0={};ha(S0,{OnnxruntimeWebAssemblyBackend:()=>Kd,initializeFlags:()=>Gd,wasmBackend:()=>F0});var Gd,Kd,F0,mE=Ve(()=>{"use strict";ks(),k0(),pE(),Gd=()=>{(typeof Zt.wasm.initTimeout!="number"||Zt.wasm.initTimeout<0)&&(Zt.wasm.initTimeout=0);let e=Zt.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.`),Zt.wasm.simd=!1),typeof Zt.wasm.proxy!="boolean"&&(Zt.wasm.proxy=!1),typeof Zt.wasm.trace!="boolean"&&(Zt.wasm.trace=!1),typeof Zt.wasm.numThreads!="number"||!Number.isInteger(Zt.wasm.numThreads)||Zt.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Zt.wasm.numThreads=1;else{let r=typeof navigator>"u"?eP("node:os").cpus().length:navigator.hardwareConcurrency;Zt.wasm.numThreads=Math.min(4,Math.ceil((r||1)/2))}},Kd=class{async init(e){Gd(),await b0(),await v0(e)}async createInferenceSessionHandler(e,r){let t=new C0;return await t.loadModel(e,r),t}},F0=new Kd});ks();ks();ks();var hE="1.22.0-dev.20250409-89f8206ba4",fE=_v;{let e=(mE(),_n(S0)).wasmBackend;Bo("webgpu",e,5),Bo("webnn",e,5),Bo("cpu",e,10),Bo("wasm",e,10)}Object.defineProperty(Zt.versions,"web",{value:hE,enumerable:!0});var gE={"onnxruntime-common":(e=>{e.exports=Ic}),"onnxruntime-web":(e=>{e.exports=yu}),"?2ce3":(()=>{}),"?7992":(()=>{}),"?5af5":(()=>{}),"?2b25":(()=>{}),"?db59":(()=>{}),"?383f":(()=>{}),"?fa4b":(()=>{}),"./node_modules/@huggingface/jinja/dist/index.js":((e,r,t)=>{t.r(r),t.d(r,{Environment:()=>pt,Interpreter:()=>Lt,Template:()=>Xr,parse:()=>ke,tokenize:()=>u});var s=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Comment:"Comment"}),o=class{constructor(k,Q){this.value=k,this.type=Q}};function a(k){return/\w/.test(k)}function n(k){return/[0-9]/.test(k)}function i(k){return/\s/.test(k)}var l=[["{%",s.OpenStatement],["%}",s.CloseStatement],["{{",s.OpenExpression],["}}",s.CloseExpression],["(",s.OpenParen],[")",s.CloseParen],["{",s.OpenCurlyBracket],["}",s.CloseCurlyBracket],["[",s.OpenSquareBracket],["]",s.CloseSquareBracket],[",",s.Comma],[".",s.Dot],[":",s.Colon],["|",s.Pipe],["<=",s.ComparisonBinaryOperator],[">=",s.ComparisonBinaryOperator],["==",s.ComparisonBinaryOperator],["!=",s.ComparisonBinaryOperator],["<",s.ComparisonBinaryOperator],[">",s.ComparisonBinaryOperator],["+",s.AdditiveBinaryOperator],["-",s.AdditiveBinaryOperator],["~",s.AdditiveBinaryOperator],["*",s.MultiplicativeBinaryOperator],["/",s.MultiplicativeBinaryOperator],["%",s.MultiplicativeBinaryOperator],["=",s.Equals]],c=new Map([["n",`
|
|
2828
|
+
${a}`,i=t.createShaderModule({code:n,label:e.name});Ot("verbose",()=>`[WebGPU] ${e.name} shader code: ${n}`);let l=t.createComputePipeline({compute:{module:i,entryPoint:"main"},layout:"auto",label:e.name});return us(e.name),{programInfo:e,computePipeline:l,uniformVariablesInfo:o.variablesInfo}}normalizeDispatchGroupSize(e){let r=typeof e=="number"?e:e.x,t=typeof e=="number"?1:e.y||1,s=typeof e=="number"?1:e.z||1,o=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(r<=o&&t<=o&&s<=o)return[r,t,s];let a=r*t*s,n=Math.ceil(Math.sqrt(a));if(n>o){if(n=Math.ceil(Math.cbrt(a)),n>o)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[n,n,n]}else return[n,n,1]}}}),h0={};fa(h0,{WebGpuBackend:()=>f0});var jb,Vb,Wb,f0,_E=Ve(()=>{"use strict";ks(),Mt(),Js(),kv(),xP(),dE(),uE(),jb=(e,r)=>{if(r.length!==e.length)throw new Error(`inputDependencies length ${r.length} is not equal to inputTensors length ${e.length}.`);let t=[];for(let s=0;s<e.length;++s){let o=e[s].dataType;switch(r[s]){case"none":{t.push("");break}case"type":{t.push(`${o}`);break}case"rank":{let a=e[s].dims.length;t.push(`${o};${a}`);break}case"dims":{let a=e[s].dims.join(",");t.push(`${o};${a}`);break}default:throw new Error(`unsupported input dependency: ${r[s]}`)}}return t.join("|")},Vb=(e,r,t)=>{let s=e.name;return e.shaderCache?.hint&&(s+="["+e.shaderCache.hint+"]"),s+=":"+t+`:${jb(r,e.shaderCache?.inputDependencies??new Array(r.length).fill("dims"))}`,s},Wb=class{constructor(e){e&&(this.architecture=e.architecture,this.vendor=e.vendor)}isArchitecture(e){return this.architecture===e}isVendor(e){return this.vendor===e}},f0=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 e=this.kernelCustomData.get(this.currentKernelId);return e||(e={},this.kernelCustomData.set(this.currentKernelId,e)),e}async initialize(e,r){this.env=e;let t=[],s={requiredLimits:{maxComputeWorkgroupStorageSize:r.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:r.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:r.limits.maxStorageBufferBindingSize,maxBufferSize:r.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:r.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:r.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:r.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:r.limits.maxComputeWorkgroupSizeZ},requiredFeatures:t},o=a=>r.features.has(a)&&t.push(a)&&!0;o("chromium-experimental-timestamp-query-inside-passes")||o("timestamp-query"),o("shader-f16"),o("subgroups"),this.device=await r.requestDevice(s),this.adapterInfo=new Wb(r.info||await r.requestAdapterInfo()),this.gpuDataManager=Fv(this),this.programManager=new m0(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,ou(e.logLevel,!!e.debug),this.device.onuncapturederror=a=>{a.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${a.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:r,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<"u"&&this.querySet.destroy(),this.gpuDataManager.dispose()}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}getComputePassEncoder(){if(!this.computePassEncoder){let e=this.getCommandEncoder(),r={};this.queryType==="at-passes"&&(r.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=e.beginComputePass(r)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;Es(),this.endComputePass();let e;this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),e=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(e,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,e,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&e.mapAsync(GPUMapMode.READ).then(()=>{let r=new BigUint64Array(e.getMappedRange()),t=this.pendingQueries.get(e);for(let s=0;s<r.length/2;s++){let o=t[s],a=o.kernelId,n=this.kernels.get(a),i=n.kernelType,l=n.kernelName,c=o.programName,_=o.inputTensorViews,u=o.outputTensorViews,d=r[s*2],g=r[s*2+1];typeof this.queryTimeBase>"u"&&(this.queryTimeBase=d);let h=Number(d-this.queryTimeBase),x=Number(g-this.queryTimeBase);if(!Number.isSafeInteger(h)||!Number.isSafeInteger(x))throw new RangeError("incorrect timestamp range");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:_.map(F=>({dims:F.dims,dataType:Xs(F.dataType)})),outputsMetadata:u.map(F=>({dims:F.dims,dataType:Xs(F.dataType)})),kernelId:a,kernelType:i,kernelName:l,programName:c,startTime:h,endTime:x});else{let F="";_.forEach((b,C)=>{F+=`input[${C}]: [${b.dims}] | ${Xs(b.dataType)}, `});let v="";u.forEach((b,C)=>{v+=`output[${C}]: [${b.dims}] | ${Xs(b.dataType)}, `}),console.log(`[profiling] kernel "${a}|${i}|${l}|${c}" ${F}${v}execution time: ${x-h} ns`)}mn("GPU",`${c}::${d}::${g}`)}e.unmap(),this.pendingQueries.delete(e)}),us()}run(e,r,t,s,o,a){Es(e.name);let n=[];for(let b=0;b<r.length;++b){let C=r[b].data;if(C===0)continue;let y=this.gpuDataManager.get(C);if(!y)throw new Error(`no GPU data for input: ${C}`);n.push(y)}let{outputs:i,dispatchGroup:l,programUniforms:c}=e.getRunData(r),_=t.length===0?i.map((b,C)=>C):t;if(_.length!==i.length)throw new Error(`Output size ${_.length} must be equal to ${i.length}.`);let u=[],d=[];for(let b=0;b<i.length;++b){if(!Number.isInteger(_[b])||_[b]<-3||_[b]>=a)throw new Error(`Invalid output index: ${_[b]}`);if(_[b]===-3)continue;let C=_[b]===-1,y=_[b]===-2,P=C||y?o(i[b].dataType,i[b].dims):s(_[b],i[b].dataType,i[b].dims);if(u.push(P),P.data===0)continue;let I=this.gpuDataManager.get(P.data);if(!I)throw new Error(`no GPU data for output: ${P.data}`);if(C&&this.temporaryData.push(I),y){let f=this.kernelPersistentData.get(this.currentKernelId);f||(f=[],this.kernelPersistentData.set(this.currentKernelId,f)),f.push(I)}d.push(I)}if(n.length!==r.length||d.length!==u.length){if(d.length===0)return us(e.name),u;throw new Error(`Program ${e.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let g;if(c){let b=0,C=[];c.forEach(f=>{let E=typeof f.data=="number"?[f.data]:f.data;if(E.length===0)return;let D=f.type===10?2:4,O,U;f.type===10?(U=E.length>4?16:E.length>2?8:E.length*D,O=E.length>4?16:D*E.length):(U=E.length<=2?E.length*D:16,O=16),b=Math.ceil(b/U)*U,C.push(b);let W=f.type===10?8:4;b+=E.length>4?Math.ceil(E.length/W)*O:E.length*D});let y=16;b=Math.ceil(b/y)*y;let P=new ArrayBuffer(b);c.forEach((f,E)=>{let D=C[E],O=typeof f.data=="number"?[f.data]:f.data;if(f.type===6)new Int32Array(P,D,O.length).set(O);else if(f.type===12)new Uint32Array(P,D,O.length).set(O);else if(f.type===10)new Uint16Array(P,D,O.length).set(O);else if(f.type===1)new Float32Array(P,D,O.length).set(O);else throw new Error(`Unsupported uniform type: ${Xs(f.type)}`)});let I=this.gpuDataManager.create(b,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(I.buffer,0,P,0,b),this.gpuDataManager.release(I.id),g={offset:0,size:b,buffer:I.buffer}}let h=this.programManager.normalizeDispatchGroupSize(l),x=h[1]===1&&h[2]===1,F=Vb(e,r,x),v=this.programManager.getArtifact(F);if(v||(v=this.programManager.build(e,h),this.programManager.setArtifact(F,v),Ot("info",()=>`[artifact] key: ${F}, programName: ${e.name}`)),c&&v.uniformVariablesInfo){if(c.length!==v.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${v.uniformVariablesInfo.length}, got ${c.length} in program "${v.programInfo.name}".`);for(let b=0;b<c.length;b++){let C=c[b],y=C.type,P=typeof C.data=="number"?1:C.data.length,[I,f]=v.uniformVariablesInfo[b];if(y!==I||P!==f)throw new Error(`Uniform variable ${b} mismatch: expect type ${I} with size ${f}, got type ${y} with size ${P} in program "${v.programInfo.name}".`)}}if(Ot("info",()=>`[ProgramManager] run "${e.name}" (key=${F}) with ${h[0]}x${h[1]}x${h[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let b={kernelId:this.currentKernelId,programName:v.programInfo.name,inputTensorViews:r,outputTensorViews:u};this.pendingKernels.push(b),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(b)}return this.programManager.run(v,n,d,h,g),us(e.name),u}upload(e,r){this.gpuDataManager.upload(e,r)}memcpy(e,r){this.gpuDataManager.memcpy(e,r)}async download(e,r){await this.gpuDataManager.download(e,r)}alloc(e){return this.gpuDataManager.create(e).id}free(e){return this.gpuDataManager.release(e)}createKernel(e,r,t,s){let o=p0.get(e);if(!o)throw new Error(`kernel not implemented: ${e}`);let a={kernelType:e,kernelName:s,kernelEntry:o[0],attributes:[o[1],t]};this.kernels.set(r,a)}releaseKernel(e){let r=this.kernelPersistentData.get(e);if(r){for(let t of r)this.gpuDataManager.release(t.id);this.kernelPersistentData.delete(e)}this.kernelCustomData.delete(e),this.kernels.delete(e)}computeKernel(e,r,t){let s=this.kernels.get(e);if(!s)throw new Error(`kernel not created: ${e}`);let o=s.kernelType,a=s.kernelName,n=s.kernelEntry,i=s.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${o}] ${a}" is not allowed to be called recursively`);this.currentKernelId=e,i[0]&&(i[1]=i[0](i[1]),i[0]=void 0),Ot("info",()=>`[WebGPU] Start to run kernel "[${o}] ${a}"...`);let l=this.env.debug;this.temporaryData=[];try{return l&&this.device.pushErrorScope("validation"),n(r,i[1]),0}catch(c){return t.push(Promise.resolve(`[WebGPU] Kernel "[${o}] ${a}" failed. ${c}`)),1}finally{l&&t.push(this.device.popErrorScope().then(c=>c?`GPU validation error for kernel "[${o}] ${a}": ${c.message}`:null));for(let c of this.temporaryData)this.gpuDataManager.release(c.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(e,r,t,s){let o=this.sessionExternalDataMapping.get(e);o||(o=new Map,this.sessionExternalDataMapping.set(e,o));let a=o.get(r),n=this.gpuDataManager.registerExternalBuffer(t,s,a);return o.set(r,[n,t]),n}unregisterBuffers(e){let r=this.sessionExternalDataMapping.get(e);r&&(r.forEach(t=>this.gpuDataManager.unregisterExternalBuffer(t[0])),this.sessionExternalDataMapping.delete(e))}getBuffer(e){let r=this.gpuDataManager.get(e);if(!r)throw new Error(`no GPU data for buffer: ${e}`);return r.buffer}createDownloader(e,r,t){return async()=>{let s=await Dd(this,e,r);return au(s.buffer,t)}}writeTimestamp(e){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,e)}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(){Ot("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(){Ot("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Ot("info","replay"),this.sessionStatus="replaying";let e=this.capturedCommandList.get(this.currentSessionId),r=this.capturedPendingKernels.get(this.currentSessionId),t=e.length;this.pendingKernels=[];for(let s=0;s<t;s++){let o=this.getComputePassEncoder(),a=e[s];this.writeTimestamp(this.pendingDispatchNumber*2),o.setPipeline(a.computePipeline),o.setBindGroup(0,a.bindGroup),o.dispatchWorkgroups(...a.dispatchGroup),this.writeTimestamp(this.pendingDispatchNumber*2+1),this.pendingDispatchNumber++,this.queryType!=="none"&&this.pendingKernels.push(r[s]),(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(e){this.unregisterBuffers(e),this.capturedCommandList.has(e)&&this.capturedCommandList.delete(e),this.capturedPendingKernels.has(e)&&this.capturedPendingKernels.delete(e),this.gpuDataManager.onReleaseSession(e)}onRunStart(e){this.currentSessionId=e,this.setQueryType()}}}),g0={};fa(g0,{init:()=>M0});var Ni,Ub,M0,pE=Ve(()=>{"use strict";Mt(),Js(),kt(),vP(),Ni=class w0{constructor(r,t,s,o){this.module=r,this.dataType=t,this.data=s,this.dims=o}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,r)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,r)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,r)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,r)}reshape(r){if(Me.size(r)!==Me.size(this.dims))throw new Error("Invalid new shape");return new w0(this.module,this.dataType,this.data,r)}},Ub=class{constructor(e,r,t){this.module=e,this.backend=r,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=r.adapterInfo;let s=e.PTR_SIZE,o=t/e.PTR_SIZE,a=s===4?"i32":"i64";this.opKernelContext=Number(e.getValue(s*o++,a));let n=Number(e.getValue(s*o++,a));this.outputCount=Number(e.getValue(s*o++,a)),this.customDataOffset=Number(e.getValue(s*o++,"*")),this.customDataSize=Number(e.getValue(s*o++,a));let i=[];for(let l=0;l<n;l++){let c=Number(e.getValue(s*o++,a)),_=Number(e.getValue(s*o++,"*")),u=Number(e.getValue(s*o++,a)),d=[];for(let g=0;g<u;g++)d.push(Number(e.getValue(s*o++,a)));i.push(new Ni(e,c,_,d))}this.inputs=i}get kernelCustomData(){return this.backend.currentKernelCustomData}get customDataBuffer(){return this.module.HEAPU8.subarray(this.customDataOffset,this.customDataOffset+this.customDataSize)}compute(e,r){let t=r?.inputs?.map(n=>typeof n=="number"?this.inputs[n]:n)??this.inputs,s=r?.outputs??[],o=(n,i,l)=>new Ni(this.module,i,this.output(n,l),l),a=(n,i)=>{let l=Bo(n,i);if(!l)throw new Error(`Unsupported data type: ${n}`);let c=l>0?this.backend.gpuDataManager.create(l).id:0;return new Ni(this.module,n,c,i)};return this.backend.run(e,t,s,o,a,this.outputCount)}output(e,r){let t=this.module.stackSave();try{let s=this.module.PTR_SIZE,o=s===4?"i32":"i64",a=this.module.stackAlloc((1+r.length)*s);this.module.setValue(a,r.length,o);for(let n=0;n<r.length;n++)this.module.setValue(a+s*(n+1),r[n],o);return this.module._JsepOutput(this.opKernelContext,e,a)}catch(s){throw new Error(`Failed to generate kernel's output[${e}] with dims [${r}]. If you are running with pre-allocated output, please make sure the output type/dims are correct. Error: ${s}`)}finally{this.module.stackRestore(t)}}},M0=async(e,r,t,s)=>{let o=r.jsepInit;if(!o)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(e==="webgpu"){let a=(_E(),pn(h0)).WebGpuBackend,n=new a;await n.initialize(t,s),o("webgpu",[n,i=>n.alloc(Number(i)),i=>n.free(i),(i,l,c,_=!1)=>{if(_)Ot("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(i)}, dst=${Number(l)}, size=${Number(c)}`),n.memcpy(Number(i),Number(l));else{Ot("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(i)}, gpuDataId=${Number(l)}, size=${Number(c)}`);let u=r.HEAPU8.subarray(Number(i>>>0),Number(i>>>0)+Number(c));n.upload(Number(l),u)}},async(i,l,c)=>{Ot("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${i}, dataOffset=${l}, size=${c}`),await n.download(Number(i),()=>r.HEAPU8.subarray(Number(l)>>>0,Number(l+c)>>>0))},(i,l,c)=>n.createKernel(i,Number(l),c,r.UTF8ToString(r._JsepGetNodeName(Number(l)))),i=>n.releaseKernel(i),(i,l,c,_)=>{Ot("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${c}, kernel=${i}, contextDataOffset=${l}`);let u=new Ub(r,n,Number(l));return n.computeKernel(Number(i),u,_)},()=>n.captureBegin(),()=>n.captureEnd(),()=>n.replay()])}else{let a=new Sv(t);o("webnn",[a,()=>a.reserveTensorId(),n=>a.releaseTensorId(n),async(n,i,l,c,_)=>a.ensureTensor(n,i,l,c,_),(n,i)=>{a.uploadTensor(n,i)},async(n,i)=>a.downloadTensor(n,i)])}}}),Gb,fu,gu,co,Kb,kd,Ji,Mu,wu,Cd,bu,vu,xu,b0=Ve(()=>{"use strict";MP(),wP(),Mt(),Vo(),Zd(),yv(),Gb=(e,r)=>{Jt()._OrtInit(e,r)!==0&&Kt("Can't initialize onnxruntime.")},fu=async e=>{Gb(e.wasm.numThreads,Ki(e.logLevel))},gu=async(e,r)=>{Jt().asyncInit?.();{let t=(pE(),pn(g0)).init;if(r==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let s=e.webgpu.adapter;if(s){if(typeof s.limits!="object"||typeof s.features!="object"||typeof s.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 a=e.webgpu.forceFallbackAdapter;if(a!==void 0&&typeof a!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${a}"`);if(s=await navigator.gpu.requestAdapter({powerPreference:o,forceFallbackAdapter:a}),!s)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await t("webgpu",Jt(),e,s)}if(r==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await t("webnn",Jt(),e)}}},co=new Map,Kb=e=>{let r=Jt(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetInputOutputCount(e,o,o+s)!==0&&Kt("Can't get session input/output count.");let a=s===4?"i32":"i64";return[Number(r.getValue(o,a)),Number(r.getValue(o+s,a))]}finally{r.stackRestore(t)}},kd=(e,r)=>{let t=Jt(),s=t.stackSave(),o=0;try{let a=t.PTR_SIZE,n=t.stackAlloc(2*a);t._OrtGetInputOutputMetadata(e,r,n,n+a)!==0&&Kt("Can't get session input/output metadata.");let i=Number(t.getValue(n,"*"));o=Number(t.getValue(n+a,"*"));let l=t.HEAP32[o/4];if(l===0)return[i,0];let c=t.HEAPU32[o/4+1],_=[];for(let u=0;u<c;u++){let d=Number(t.getValue(o+8+u*a,"*"));_.push(d!==0?t.UTF8ToString(d):Number(t.getValue(o+8+(u+c)*a,"*")))}return[i,l,_]}finally{t.stackRestore(s),o!==0&&t._OrtFree(o)}},Ji=e=>{let r=Jt(),t=r._malloc(e.byteLength);if(t===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return r.HEAPU8.set(e,t),[t,e.byteLength]},Mu=async(e,r)=>{let t,s,o=Jt();Array.isArray(e)?[t,s]=e:e.buffer===o.HEAPU8.buffer?[t,s]=[e.byteOffset,e.byteLength]:[t,s]=Ji(e);let a=0,n=0,i=0,l=[],c=[],_=[];try{if([n,l]=await xv(r),r?.externalData&&o.mountExternalData){let y=[];for(let P of r.externalData){let I=typeof P=="string"?P:P.path;y.push(su(typeof P=="string"?P:P.data).then(f=>{o.mountExternalData(I,f)}))}await Promise.all(y)}for(let y of r?.executionProviders??[])if((typeof y=="string"?y:y.name)==="webnn"){if(o.shouldTransferToMLTensor=!1,typeof y!="string"){let P=y,I=P?.context,f=P?.gpuDevice,E=P?.deviceType,D=P?.powerPreference;I?o.currentContext=I:f?o.currentContext=await o.webnnCreateMLContext(f):o.currentContext=await o.webnnCreateMLContext({deviceType:E,powerPreference:D})}else o.currentContext=await o.webnnCreateMLContext();break}a=await o._OrtCreateSession(t,s,n),o.webgpuOnCreateSession?.(a),a===0&&Kt("Can't create a session."),o.jsepOnCreateSession?.(),o.currentContext&&(o.webnnRegisterMLContext(a,o.currentContext),o.currentContext=void 0,o.shouldTransferToMLTensor=!0);let[u,d]=Kb(a),g=!!r?.enableGraphCapture,h=[],x=[],F=[],v=[],b=[];for(let y=0;y<u;y++){let[P,I,f]=kd(a,y);P===0&&Kt("Can't get an input name."),c.push(P);let E=o.UTF8ToString(P);h.push(E),F.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Xs(I),shape:f})}for(let y=0;y<d;y++){let[P,I,f]=kd(a,y+u);P===0&&Kt("Can't get an output name."),_.push(P);let E=o.UTF8ToString(P);x.push(E),v.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Xs(I),shape:f});{if(g&&r?.preferredOutputLocation===void 0){b.push("gpu-buffer");continue}let D=typeof r?.preferredOutputLocation=="string"?r.preferredOutputLocation:r?.preferredOutputLocation?.[E]??"cpu";if(D!=="cpu"&&D!=="cpu-pinned"&&D!=="gpu-buffer"&&D!=="ml-tensor")throw new Error(`Not supported preferred output location: ${D}.`);if(g&&D!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${D}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);b.push(D)}}let C=null;return b.some(y=>y==="gpu-buffer"||y==="ml-tensor")&&(i=o._OrtCreateBinding(a),i===0&&Kt("Can't create IO binding."),C={handle:i,outputPreferredLocations:b,outputPreferredLocationsEncoded:b.map(y=>Ad(y))}),co.set(a,[a,c,_,C,g,!1]),[a,h,x,F,v]}catch(u){throw c.forEach(d=>o._OrtFree(d)),_.forEach(d=>o._OrtFree(d)),i!==0&&o._OrtReleaseBinding(i)!==0&&Kt("Can't release IO binding."),a!==0&&o._OrtReleaseSession(a)!==0&&Kt("Can't release session."),u}finally{o._free(t),n!==0&&o._OrtReleaseSessionOptions(n)!==0&&Kt("Can't release session options."),l.forEach(u=>o._free(u)),o.unmountExternalData?.()}},wu=e=>{let r=Jt(),t=co.get(e);if(!t)throw new Error(`cannot release session. invalid session id: ${e}`);let[s,o,a,n,i]=t;n&&(i&&r._OrtClearBoundOutputs(n.handle)!==0&&Kt("Can't clear bound outputs."),r._OrtReleaseBinding(n.handle)!==0&&Kt("Can't release IO binding.")),r.jsepOnReleaseSession?.(e),r.webnnOnReleaseSession?.(e),r.webgpuOnReleaseSession?.(e),o.forEach(l=>r._OrtFree(l)),a.forEach(l=>r._OrtFree(l)),r._OrtReleaseSession(s)!==0&&Kt("Can't release session."),co.delete(e)},Cd=async(e,r,t,s,o,a,n=!1)=>{if(!e){r.push(0);return}let i=Jt(),l=i.PTR_SIZE,c=e[0],_=e[1],u=e[3],d=u,g,h;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(n&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${a} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let v=e[2].gpuBuffer;h=Bo(_a(c),_);{let b=i.jsepRegisterBuffer;if(!b)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');g=b(s,a,v,h)}}else if(u==="ml-tensor"){let v=e[2].mlTensor;h=Bo(_a(c),_);let b=i.webnnRegisterMLTensor;if(!b)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');g=b(s,v,_a(c),_)}else{let v=e[2];if(Array.isArray(v)){h=l*v.length,g=i._malloc(h),t.push(g);for(let b=0;b<v.length;b++){if(typeof v[b]!="string")throw new TypeError(`tensor data at index ${b} is not a string`);i.setValue(g+b*l,Ts(v[b],t),"*")}}else{let b=i.webnnIsGraphInput;if(c!=="string"&&b){let C=i.UTF8ToString(o);if(b(s,C)){let y=_a(c);h=Bo(y,_),d="ml-tensor";let P=i.webnnCreateTemporaryTensor,I=i.webnnUploadTensor;if(!P||!I)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let f=await P(s,y,_);I(f,new Uint8Array(v.buffer,v.byteOffset,v.byteLength)),g=f}else h=v.byteLength,g=i._malloc(h),t.push(g),i.HEAPU8.set(new Uint8Array(v.buffer,v.byteOffset,h),g)}else h=v.byteLength,g=i._malloc(h),t.push(g),i.HEAPU8.set(new Uint8Array(v.buffer,v.byteOffset,h),g)}}let x=i.stackSave(),F=i.stackAlloc(4*_.length);try{_.forEach((b,C)=>i.setValue(F+C*l,b,l===4?"i32":"i64"));let v=i._OrtCreateTensor(_a(c),g,h,F,_.length,Ad(d));v===0&&Kt(`Can't create tensor for input/output. session=${s}, index=${a}.`),r.push(v)}finally{i.stackRestore(x)}},bu=async(e,r,t,s,o,a)=>{let n=Jt(),i=n.PTR_SIZE,l=co.get(e);if(!l)throw new Error(`cannot run inference. invalid session id: ${e}`);let c=l[0],_=l[1],u=l[2],d=l[3],g=l[4],h=l[5],x=r.length,F=s.length,v=0,b=[],C=[],y=[],P=[],I=n.stackSave(),f=n.stackAlloc(x*i),E=n.stackAlloc(x*i),D=n.stackAlloc(F*i),O=n.stackAlloc(F*i);try{[v,b]=vv(a);for(let z=0;z<x;z++)await Cd(t[z],C,P,e,_[r[z]],r[z],g);for(let z=0;z<F;z++)await Cd(o[z],y,P,e,u[s[z]],x+s[z],g);for(let z=0;z<x;z++)n.setValue(f+z*i,C[z],"*"),n.setValue(E+z*i,_[r[z]],"*");for(let z=0;z<F;z++)n.setValue(D+z*i,y[z],"*"),n.setValue(O+z*i,u[s[z]],"*");if(d&&!h){let{handle:z,outputPreferredLocations:X,outputPreferredLocationsEncoded:J}=d;if(_.length!==x)throw new Error(`input count from feeds (${x}) is expected to be always equal to model's input count (${_.length}).`);for(let q=0;q<x;q++){let re=r[q];await n._OrtBindInput(z,_[re],C[q])!==0&&Kt(`Can't bind input[${q}] for session=${e}.`)}for(let q=0;q<F;q++){let re=s[q];o[q]?.[3]?n._OrtBindOutput(z,u[re],y[q],0)!==0&&Kt(`Can't bind pre-allocated output[${q}] for session=${e}.`):n._OrtBindOutput(z,u[re],0,J[re])!==0&&Kt(`Can't bind output[${q}] to ${X[q]} for session=${e}.`)}co.set(e,[c,_,u,d,g,!0])}n.jsepOnRunStart?.(c),n.webnnOnRunStart?.(c);let U;d?U=await n._OrtRunWithBinding(c,d.handle,F,D,v):U=await n._OrtRun(c,E,f,x,O,F,D,v),U!==0&&Kt("failed to call OrtRun().");let W=[];for(let z=0;z<F;z++){let X=Number(n.getValue(D+z*i,"*"));if(X===y[z]){W.push(o[z]);continue}let J=n.stackSave(),q=n.stackAlloc(4*i),re=!1,oe,ne=0;try{n._OrtGetTensorData(X,q,q+i,q+2*i,q+3*i)!==0&&Kt(`Can't access output tensor data on index ${z}.`);let ye=i===4?"i32":"i64",Y=Number(n.getValue(q,ye));ne=n.getValue(q+i,"*");let H=n.getValue(q+i*2,"*"),R=Number(n.getValue(q+i*3,ye)),L=[];for(let ke=0;ke<R;ke++)L.push(Number(n.getValue(H+ke*i,ye)));n._OrtFree(H)!==0&&Kt("Can't free memory for tensor dims.");let ee=L.reduce((ke,Ie)=>ke*Ie,1);oe=Xs(Y);let ue=d?.outputPreferredLocations[s[z]];if(oe==="string"){if(ue==="gpu-buffer"||ue==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let ke=[];for(let Ie=0;Ie<ee;Ie++){let Le=n.getValue(ne+Ie*i,"*"),rt=n.getValue(ne+(Ie+1)*i,"*"),we=Ie===ee-1?void 0:rt-Le;ke.push(n.UTF8ToString(Le,we))}W.push([oe,L,ke,"cpu"])}else if(ue==="gpu-buffer"&&ee>0){let ke=n.jsepGetBuffer;if(!ke)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let Ie=ke(ne),Le=Bo(Y,ee);if(Le===void 0||!tu(oe))throw new Error(`Unsupported data type: ${oe}`);re=!0,W.push([oe,L,{gpuBuffer:Ie,download:n.jsepCreateDownloader(Ie,Le,oe),dispose:()=>{n._OrtReleaseTensor(X)!==0&&Kt("Can't release tensor.")}},"gpu-buffer"])}else if(ue==="ml-tensor"&&ee>0){let ke=n.webnnEnsureTensor,Ie=n.webnnIsInt64Supported;if(!ke||!Ie)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Bo(Y,ee)===void 0||!ru(oe))throw new Error(`Unsupported data type: ${oe}`);if(oe==="int64"&&!Ie(e))throw new Error('preferredLocation "ml-tensor" for int64 output is not supported by current WebNN Context.');let Le=await ke(e,ne,Y,L,!1);re=!0,W.push([oe,L,{mlTensor:Le,download:n.webnnCreateMLTensorDownloader(ne,oe),dispose:()=>{n.webnnReleaseTensorId(ne),n._OrtReleaseTensor(X)}},"ml-tensor"])}else{let ke=eu(oe),Ie=new ke(ee);new Uint8Array(Ie.buffer,Ie.byteOffset,Ie.byteLength).set(n.HEAPU8.subarray(ne,ne+Ie.byteLength)),W.push([oe,L,Ie,"cpu"])}}finally{n.stackRestore(J),oe==="string"&&ne&&n._free(ne),re||n._OrtReleaseTensor(X),n.webnnOnRunEnd?.(c)}}return d&&!g&&(n._OrtClearBoundOutputs(d.handle)!==0&&Kt("Can't clear bound outputs."),co.set(e,[c,_,u,d,g,!1])),W}finally{n.stackRestore(I),C.forEach(U=>n._OrtReleaseTensor(U)),y.forEach(U=>n._OrtReleaseTensor(U)),P.forEach(U=>n._free(U)),v!==0&&n._OrtReleaseRunOptions(v),b.forEach(U=>n._free(U))}},vu=e=>{let r=Jt(),t=co.get(e);if(!t)throw new Error("invalid session id");let s=t[0],o=r._OrtEndProfiling(s);o===0&&Kt("Can't get an profile file name."),r._OrtFree(o)},xu=e=>{let r=[];for(let t of e){let s=t[2];!Array.isArray(s)&&"buffer"in s&&r.push(s.buffer)}return r}}),uo,cs,ua,an,nn,ji,Sd,Vi,Do,Oo,Hb,v0,x0,y0,T0,P0,E0,k0,C0=Ve(()=>{"use strict";ks(),b0(),Vo(),Jd(),uo=()=>!!Zt.wasm.proxy&&typeof document<"u",ua=!1,an=!1,nn=!1,Vi=new Map,Do=(e,r)=>{let t=Vi.get(e);t?t.push(r):Vi.set(e,[r])},Oo=()=>{if(ua||!an||nn||!cs)throw new Error("worker not ready")},Hb=e=>{switch(e.data.type){case"init-wasm":ua=!1,e.data.err?(nn=!0,Sd[1](e.data.err)):(an=!0,Sd[0]()),ji&&(URL.revokeObjectURL(ji),ji=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let r=Vi.get(e.data.type);e.data.err?r.shift()[1](e.data.err):r.shift()[0](e.data.out);break}default:}},v0=async()=>{if(!an){if(ua)throw new Error("multiple calls to 'initWasm()' detected.");if(nn)throw new Error("previous call to 'initWasm()' failed.");if(ua=!0,uo())return new Promise((e,r)=>{cs?.terminate(),wv().then(([t,s])=>{try{cs=s,cs.onerror=a=>r(a),cs.onmessage=Hb,Sd=[e,r];let o={type:"init-wasm",in:Zt};!o.in.wasm.wasmPaths&&(t||Id)&&(o.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href}),cs.postMessage(o),ji=t}catch(o){r(o)}},r)});try{await Yd(Zt.wasm),await fu(Zt),an=!0}catch(e){throw nn=!0,e}finally{ua=!1}}},x0=async e=>{if(uo())return Oo(),new Promise((r,t)=>{Do("init-ep",[r,t]);let s={type:"init-ep",in:{epName:e,env:Zt}};cs.postMessage(s)});await gu(Zt,e)},y0=async e=>uo()?(Oo(),new Promise((r,t)=>{Do("copy-from",[r,t]);let s={type:"copy-from",in:{buffer:e}};cs.postMessage(s,[e.buffer])})):Ji(e),T0=async(e,r)=>{if(uo()){if(r?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return Oo(),new Promise((t,s)=>{Do("create",[t,s]);let o={type:"create",in:{model:e,options:{...r}}},a=[];e instanceof Uint8Array&&a.push(e.buffer),cs.postMessage(o,a)})}else return Mu(e,r)},P0=async e=>{if(uo())return Oo(),new Promise((r,t)=>{Do("release",[r,t]);let s={type:"release",in:e};cs.postMessage(s)});wu(e)},E0=async(e,r,t,s,o,a)=>{if(uo()){if(t.some(n=>n[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(o.some(n=>n))throw new Error("pre-allocated output tensor is not supported for proxy.");return Oo(),new Promise((n,i)=>{Do("run",[n,i]);let l=t,c={type:"run",in:{sessionId:e,inputIndices:r,inputs:l,outputIndices:s,options:a}};cs.postMessage(c,xu(l))})}else return bu(e,r,t,s,o,a)},k0=async e=>{if(uo())return Oo(),new Promise((r,t)=>{Do("end-profiling",[r,t]);let s={type:"end-profiling",in:e};cs.postMessage(s)});vu(e)}}),Fd,qb,S0,mE=Ve(()=>{"use strict";ks(),C0(),Mt(),Xd(),yv(),Fd=(e,r)=>{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 ${r()}`)}},qb=e=>{switch(e[3]){case"cpu":return new Ps(e[0],e[2],e[1]);case"gpu-buffer":{let r=e[0];if(!tu(r))throw new Error(`not supported data type: ${r} for deserializing GPU tensor`);let{gpuBuffer:t,download:s,dispose:o}=e[2];return Ps.fromGpuBuffer(t,{dataType:r,dims:e[1],download:s,dispose:o})}case"ml-tensor":{let r=e[0];if(!ru(r))throw new Error(`not supported data type: ${r} for deserializing MLTensor tensor`);let{mlTensor:t,download:s,dispose:o}=e[2];return Ps.fromMLTensor(t,{dataType:r,dims:e[1],download:s,dispose:o})}default:throw new Error(`invalid data location: ${e[3]}`)}},S0=class{async fetchModelAndCopyToWasmMemory(e){return y0(await su(e))}async loadModel(e,r){Es();let t;typeof e=="string"?t=await this.fetchModelAndCopyToWasmMemory(e):t=e,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await T0(t,r),us()}async dispose(){return P0(this.sessionId)}async run(e,r,t){Es();let s=[],o=[];Object.entries(e).forEach(u=>{let d=u[0],g=u[1],h=this.inputNames.indexOf(d);if(h===-1)throw new Error(`invalid input '${d}'`);s.push(g),o.push(h)});let a=[],n=[];Object.entries(r).forEach(u=>{let d=u[0],g=u[1],h=this.outputNames.indexOf(d);if(h===-1)throw new Error(`invalid output '${d}'`);a.push(g),n.push(h)});let i=s.map((u,d)=>Fd(u,()=>`input "${this.inputNames[o[d]]}"`)),l=a.map((u,d)=>u?Fd(u,()=>`output "${this.outputNames[n[d]]}"`):null),c=await E0(this.sessionId,o,i,n,l,t),_={};for(let u=0;u<c.length;u++)_[this.outputNames[n[u]]]=a[u]??qb(c[u]);return us(),_}startProfiling(){}endProfiling(){k0(this.sessionId)}}}),F0={};fa(F0,{OnnxruntimeWebAssemblyBackend:()=>Kd,initializeFlags:()=>Gd,wasmBackend:()=>I0});var Gd,Kd,I0,hE=Ve(()=>{"use strict";ks(),C0(),mE(),Gd=()=>{(typeof Zt.wasm.initTimeout!="number"||Zt.wasm.initTimeout<0)&&(Zt.wasm.initTimeout=0);let e=Zt.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.`),Zt.wasm.simd=!1),typeof Zt.wasm.proxy!="boolean"&&(Zt.wasm.proxy=!1),typeof Zt.wasm.trace!="boolean"&&(Zt.wasm.trace=!1),typeof Zt.wasm.numThreads!="number"||!Number.isInteger(Zt.wasm.numThreads)||Zt.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Zt.wasm.numThreads=1;else{let r=typeof navigator>"u"?tP("node:os").cpus().length:navigator.hardwareConcurrency;Zt.wasm.numThreads=Math.min(4,Math.ceil((r||1)/2))}},Kd=class{async init(e){Gd(),await v0(),await x0(e)}async createInferenceSessionHandler(e,r){let t=new S0;return await t.loadModel(e,r),t}},I0=new Kd});ks();ks();ks();var fE="1.22.0-dev.20250409-89f8206ba4",gE=pv;{let e=(hE(),pn(F0)).wasmBackend;zo("webgpu",e,5),zo("webnn",e,5),zo("cpu",e,10),zo("wasm",e,10)}Object.defineProperty(Zt.versions,"web",{value:fE,enumerable:!0});var ME={"onnxruntime-common":(e=>{e.exports=Ic}),"onnxruntime-web":(e=>{e.exports=yu}),"?2ce3":(()=>{}),"?7992":(()=>{}),"?5af5":(()=>{}),"?2b25":(()=>{}),"?db59":(()=>{}),"?383f":(()=>{}),"?fa4b":(()=>{}),"./node_modules/@huggingface/jinja/dist/index.js":((e,r,t)=>{t.r(r),t.d(r,{Environment:()=>pt,Interpreter:()=>Lt,Template:()=>Xr,parse:()=>ke,tokenize:()=>u});var s=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Comment:"Comment"}),o=class{constructor(k,Q){this.value=k,this.type=Q}};function a(k){return/\w/.test(k)}function n(k){return/[0-9]/.test(k)}function i(k){return/\s/.test(k)}var l=[["{%",s.OpenStatement],["%}",s.CloseStatement],["{{",s.OpenExpression],["}}",s.CloseExpression],["(",s.OpenParen],[")",s.CloseParen],["{",s.OpenCurlyBracket],["}",s.CloseCurlyBracket],["[",s.OpenSquareBracket],["]",s.CloseSquareBracket],[",",s.Comma],[".",s.Dot],[":",s.Colon],["|",s.Pipe],["<=",s.ComparisonBinaryOperator],[">=",s.ComparisonBinaryOperator],["==",s.ComparisonBinaryOperator],["!=",s.ComparisonBinaryOperator],["<",s.ComparisonBinaryOperator],[">",s.ComparisonBinaryOperator],["+",s.AdditiveBinaryOperator],["-",s.AdditiveBinaryOperator],["~",s.AdditiveBinaryOperator],["*",s.MultiplicativeBinaryOperator],["/",s.MultiplicativeBinaryOperator],["%",s.MultiplicativeBinaryOperator],["=",s.Equals]],c=new Map([["n",`
|
|
2829
2829
|
`],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function _(k,Q={}){return k.endsWith(`
|
|
2830
2830
|
`)&&(k=k.slice(0,-1)),Q.lstrip_blocks&&(k=k.replace(/^[ \t]*({[#%-])/gm,"$1")),Q.trim_blocks&&(k=k.replace(/([#%-]})\n/g,"$1")),k.replace(/{%\s*(end)?generation\s*%}/gs,"")}function u(k,Q={}){let N=[],K=_(k,Q),Z=0,ce=0,xe=qe=>{let wt="";for(;qe(K[Z]);){if(K[Z]==="\\"){if(++Z,Z>=K.length)throw new SyntaxError("Unexpected end of input");let tt=K[Z++],gt=c.get(tt);if(gt===void 0)throw new SyntaxError(`Unexpected escaped character: ${tt}`);wt+=gt;continue}if(wt+=K[Z++],Z>=K.length)throw new SyntaxError("Unexpected end of input")}return wt},et=()=>{let qe=N.at(-1);qe&&qe.type===s.Text&&(qe.value=qe.value.trimEnd(),qe.value===""&&N.pop())},ut=()=>{for(;Z<K.length&&i(K[Z]);)++Z};e:for(;Z<K.length;){let qe=N.at(-1)?.type;if(qe===void 0||qe===s.CloseStatement||qe===s.CloseExpression||qe===s.Comment){let tt="";for(;Z<K.length&&!(K[Z]==="{"&&(K[Z+1]==="%"||K[Z+1]==="{"||K[Z+1]==="#"));)tt+=K[Z++];if(tt.length>0){N.push(new o(tt,s.Text));continue}}if(K[Z]==="{"&&K[Z+1]==="#"){Z+=2;let tt=K[Z]==="-";tt&&++Z;let gt="";for(;K[Z]!=="#"||K[Z+1]!=="}";){if(Z+2>=K.length)throw new SyntaxError("Missing end of comment tag");gt+=K[Z++]}let Nt=gt.endsWith("-");Nt&&(gt=gt.slice(0,-1)),tt&&et(),N.push(new o(gt,s.Comment)),Z+=2,Nt&&ut();continue}if(K.slice(Z,Z+3)==="{%-"){et(),N.push(new o("{%",s.OpenStatement)),Z+=3;continue}if(K.slice(Z,Z+3)==="{{-"){et(),N.push(new o("{{",s.OpenExpression)),ce=0,Z+=3;continue}if(xe(i),K.slice(Z,Z+3)==="-%}"){N.push(new o("%}",s.CloseStatement)),Z+=3,ut();continue}if(K.slice(Z,Z+3)==="-}}"){N.push(new o("}}",s.CloseExpression)),Z+=3,ut();continue}let wt=K[Z];if(wt==="-"||wt==="+"){let tt=N.at(-1)?.type;if(tt===s.Text||tt===void 0)throw new SyntaxError(`Unexpected character: ${wt}`);switch(tt){case s.Identifier:case s.NumericLiteral:case s.StringLiteral:case s.CloseParen:case s.CloseSquareBracket:break;default:{++Z;let gt=xe(n);N.push(new o(`${wt}${gt}`,gt.length>0?s.NumericLiteral:s.UnaryOperator));continue}}}for(let[tt,gt]of l){if(tt==="}}"&&ce>0)continue;if(K.slice(Z,Z+tt.length)===tt){N.push(new o(tt,gt)),gt===s.OpenExpression?ce=0:gt===s.OpenCurlyBracket?++ce:gt===s.CloseCurlyBracket&&--ce,Z+=tt.length;continue e}}if(wt==="'"||wt==='"'){++Z;let tt=xe(gt=>gt!==wt);N.push(new o(tt,s.StringLiteral)),++Z;continue}if(n(wt)){let tt=xe(n);if(K[Z]==="."&&n(K[Z+1])){++Z;let gt=xe(n);tt=`${tt}.${gt}`}N.push(new o(tt,s.NumericLiteral));continue}if(a(wt)){let tt=xe(a);N.push(new o(tt,s.Identifier));continue}throw new SyntaxError(`Unexpected character: ${wt}`)}return N}var d=class{type="Statement"},g=class extends d{constructor(k){super(),this.body=k}type="Program"},h=class extends d{constructor(k,Q,N){super(),this.test=k,this.body=Q,this.alternate=N}type="If"},x=class extends d{constructor(k,Q,N,K){super(),this.loopvar=k,this.iterable=Q,this.body=N,this.defaultBlock=K}type="For"},F=class extends d{type="Break"},v=class extends d{type="Continue"},b=class extends d{constructor(k,Q,N){super(),this.assignee=k,this.value=Q,this.body=N}type="Set"},C=class extends d{constructor(k,Q,N){super(),this.name=k,this.args=Q,this.body=N}type="Macro"},y=class extends d{constructor(k){super(),this.value=k}type="Comment"},P=class extends d{type="Expression"},I=class extends P{constructor(k,Q,N){super(),this.object=k,this.property=Q,this.computed=N}type="MemberExpression"},f=class extends P{constructor(k,Q){super(),this.callee=k,this.args=Q}type="CallExpression"},E=class extends P{constructor(k){super(),this.value=k}type="Identifier"},D=class extends P{constructor(k){super(),this.value=k}type="Literal"},O=class extends D{type="IntegerLiteral"},U=class extends D{type="FloatLiteral"},W=class extends D{type="StringLiteral"},z=class extends D{type="ArrayLiteral"},X=class extends D{type="TupleLiteral"},J=class extends D{type="ObjectLiteral"},q=class extends P{constructor(k,Q,N){super(),this.operator=k,this.left=Q,this.right=N}type="BinaryExpression"},re=class extends P{constructor(k,Q){super(),this.operand=k,this.filter=Q}type="FilterExpression"},oe=class extends d{constructor(k,Q){super(),this.filter=k,this.body=Q}type="FilterStatement"},ne=class extends P{constructor(k,Q){super(),this.lhs=k,this.test=Q}type="SelectExpression"},ye=class extends P{constructor(k,Q,N){super(),this.operand=k,this.negate=Q,this.test=N}type="TestExpression"},Y=class extends P{constructor(k,Q){super(),this.operator=k,this.argument=Q}type="UnaryExpression"},H=class extends P{constructor(k=void 0,Q=void 0,N=void 0){super(),this.start=k,this.stop=Q,this.step=N}type="SliceExpression"},R=class extends P{constructor(k,Q){super(),this.key=k,this.value=Q}type="KeywordArgumentExpression"},L=class extends P{constructor(k){super(),this.argument=k}type="SpreadExpression"},ee=class extends d{constructor(k,Q,N){super(),this.call=k,this.callerArgs=Q,this.body=N}type="CallStatement"},ue=class extends P{constructor(k,Q,N){super(),this.condition=k,this.trueExpr=Q,this.falseExpr=N}type="Ternary"};function ke(k){let Q=new g([]),N=0;function K(ze,Ue){let at=k[N++];if(!at||at.type!==ze)throw new Error(`Parser Error: ${Ue}. ${at.type} !== ${ze}.`);return at}function Z(ze){if(!ut(ze))throw new SyntaxError(`Expected ${ze}`);++N}function ce(){switch(k[N].type){case s.Comment:return new y(k[N++].value);case s.Text:return qe();case s.OpenStatement:return wt();case s.OpenExpression:return tt();default:throw new SyntaxError(`Unexpected token type: ${k[N].type}`)}}function xe(...ze){return N+ze.length<=k.length&&ze.every((Ue,at)=>Ue===k[N+at].type)}function et(...ze){return k[N]?.type===s.OpenStatement&&k[N+1]?.type===s.Identifier&&ze.includes(k[N+1]?.value)}function ut(...ze){return N+ze.length<=k.length&&ze.every((Ue,at)=>k[N+at].type==="Identifier"&&Ue===k[N+at].value)}function qe(){return new W(K(s.Text,"Expected text token").value)}function wt(){if(K(s.OpenStatement,"Expected opening statement token"),k[N].type!==s.Identifier)throw new SyntaxError(`Unknown statement, got ${k[N].type}`);let ze=k[N].value,Ue;switch(ze){case"set":++N,Ue=gt();break;case"if":++N,Ue=Nt(),K(s.OpenStatement,"Expected {% token"),Z("endif"),K(s.CloseStatement,"Expected %} token");break;case"macro":++N,Ue=Qt(),K(s.OpenStatement,"Expected {% token"),Z("endmacro"),K(s.CloseStatement,"Expected %} token");break;case"for":++N,Ue=Or(),K(s.OpenStatement,"Expected {% token"),Z("endfor"),K(s.CloseStatement,"Expected %} token");break;case"call":{++N;let at=null;xe(s.OpenParen)&&(at=ar());let Ht=Wr();if(Ht.type!=="Identifier")throw new SyntaxError("Expected identifier following call statement");let js=ar();K(s.CloseStatement,"Expected closing statement token");let Ds=[];for(;!et("endcall");)Ds.push(ce());K(s.OpenStatement,"Expected '{%'"),Z("endcall"),K(s.CloseStatement,"Expected closing statement token");let Vs=new f(Ht,js);Ue=new ee(Vs,at,Ds);break}case"break":++N,K(s.CloseStatement,"Expected closing statement token"),Ue=new F;break;case"continue":++N,K(s.CloseStatement,"Expected closing statement token"),Ue=new v;break;case"filter":{++N;let at=Wr();at instanceof E&&xe(s.OpenParen)&&(at=Gr(at)),K(s.CloseStatement,"Expected closing statement token");let Ht=[];for(;!et("endfilter");)Ht.push(ce());K(s.OpenStatement,"Expected '{%'"),Z("endfilter"),K(s.CloseStatement,"Expected '%}'"),Ue=new oe(at,Ht);break}default:throw new SyntaxError(`Unknown statement type: ${ze}`)}return Ue}function tt(){K(s.OpenExpression,"Expected opening expression token");let ze=Cr();return K(s.CloseExpression,"Expected closing expression token"),ze}function gt(){let ze=ur(),Ue=null,at=[];if(xe(s.Equals))++N,Ue=ur();else{for(K(s.CloseStatement,"Expected %} token");!et("endset");)at.push(ce());K(s.OpenStatement,"Expected {% token"),Z("endset")}return K(s.CloseStatement,"Expected closing statement token"),new b(ze,Ue,at)}function Nt(){let ze=Cr();K(s.CloseStatement,"Expected closing statement token");let Ue=[],at=[];for(;!et("elif","else","endif");)Ue.push(ce());if(et("elif")){++N,++N;let Ht=Nt();at.push(Ht)}else if(et("else"))for(++N,++N,K(s.CloseStatement,"Expected closing statement token");!et("endif");)at.push(ce());return new h(ze,Ue,at)}function Qt(){let ze=Wr();if(ze.type!=="Identifier")throw new SyntaxError("Expected identifier following macro statement");let Ue=ar();K(s.CloseStatement,"Expected closing statement token");let at=[];for(;!et("endmacro");)at.push(ce());return new C(ze,Ue,at)}function ur(ze=!1){let Ue=ze?Wr:Cr,at=[Ue()],Ht=xe(s.Comma);for(;Ht&&(++N,at.push(Ue()),!!xe(s.Comma)););return Ht?new X(at):at[0]}function Or(){let ze=ur(!0);if(!(ze instanceof E||ze instanceof X))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${ze.type} instead`);if(!ut("in"))throw new SyntaxError("Expected `in` keyword following loop variable");++N;let Ue=Cr();K(s.CloseStatement,"Expected closing statement token");let at=[];for(;!et("endfor","else");)at.push(ce());let Ht=[];if(et("else"))for(++N,++N,K(s.CloseStatement,"Expected closing statement token");!et("endfor");)Ht.push(ce());return new x(ze,Ue,at,Ht)}function Cr(){return Lr()}function Lr(){let ze=_s();if(ut("if")){++N;let Ue=_s();if(ut("else")){++N;let at=Lr();return new ue(Ue,ze,at)}else return new ne(ze,Ue)}return ze}function _s(){let ze=Fs();for(;ut("or");){let Ue=k[N];++N;let at=Fs();ze=new q(Ue,ze,at)}return ze}function Fs(){let ze=gr();for(;ut("and");){let Ue=k[N];++N;let at=gr();ze=new q(Ue,ze,at)}return ze}function gr(){let ze;for(;ut("not");){let Ue=k[N];++N;let at=gr();ze=new Y(Ue,at)}return ze??Ns()}function Ns(){let ze=as();for(;;){let Ue;if(ut("not","in"))Ue=new o("not in",s.Identifier),N+=2;else if(ut("in"))Ue=k[N++];else if(xe(s.ComparisonBinaryOperator))Ue=k[N++];else break;let at=as();ze=new q(Ue,ze,at)}return ze}function as(){let ze=As();for(;xe(s.AdditiveBinaryOperator);){let Ue=k[N];++N;let at=As();ze=new q(Ue,ze,at)}return ze}function Nr(){let ze=Is(Wr());return xe(s.OpenParen)?Gr(ze):ze}function Gr(ze){let Ue=new f(ze,ar());return Ue=Is(Ue),xe(s.OpenParen)&&(Ue=Gr(Ue)),Ue}function ar(){K(s.OpenParen,"Expected opening parenthesis for arguments list");let ze=_r();return K(s.CloseParen,"Expected closing parenthesis for arguments list"),ze}function _r(){let ze=[];for(;!xe(s.CloseParen);){let Ue;if(k[N].type===s.MultiplicativeBinaryOperator&&k[N].value==="*"){++N;let at=Cr();Ue=new L(at)}else if(Ue=Cr(),xe(s.Equals)){if(++N,!(Ue instanceof E))throw new SyntaxError("Expected identifier for keyword argument");let at=Cr();Ue=new R(Ue,at)}ze.push(Ue),xe(s.Comma)&&++N}return ze}function ps(){let ze=[],Ue=!1;for(;!xe(s.CloseSquareBracket);)xe(s.Colon)?(ze.push(void 0),++N,Ue=!0):(ze.push(Cr()),xe(s.Colon)&&(++N,Ue=!0));if(ze.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if(Ue){if(ze.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new H(...ze)}return ze[0]}function Is(ze){for(;xe(s.Dot)||xe(s.OpenSquareBracket);){let Ue=k[N];++N;let at,Ht=Ue.type===s.OpenSquareBracket;if(Ht)at=ps(),K(s.CloseSquareBracket,"Expected closing square bracket");else if(at=Wr(),at.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");ze=new I(ze,at,Ht)}return ze}function As(){let ze=$s();for(;xe(s.MultiplicativeBinaryOperator);){let Ue=k[N++],at=$s();ze=new q(Ue,ze,at)}return ze}function $s(){let ze=ns();for(;ut("is");){++N;let Ue=ut("not");Ue&&++N;let at=Wr();if(!(at instanceof E))throw new SyntaxError("Expected identifier for the test");ze=new ye(ze,Ue,at)}return ze}function ns(){let ze=Nr();for(;xe(s.Pipe);){++N;let Ue=Wr();if(!(Ue instanceof E))throw new SyntaxError("Expected identifier for the filter");xe(s.OpenParen)&&(Ue=Gr(Ue)),ze=new re(ze,Ue)}return ze}function Wr(){let ze=k[N++];switch(ze.type){case s.NumericLiteral:{let Ue=ze.value;return Ue.includes(".")?new U(Number(Ue)):new O(Number(Ue))}case s.StringLiteral:{let Ue=ze.value;for(;xe(s.StringLiteral);)Ue+=k[N++].value;return new W(Ue)}case s.Identifier:return new E(ze.value);case s.OpenParen:{let Ue=ur();return K(s.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),Ue}case s.OpenSquareBracket:{let Ue=[];for(;!xe(s.CloseSquareBracket);)Ue.push(Cr()),xe(s.Comma)&&++N;return++N,new z(Ue)}case s.OpenCurlyBracket:{let Ue=new Map;for(;!xe(s.CloseCurlyBracket);){let at=Cr();K(s.Colon,"Expected colon between key and value in object literal");let Ht=Cr();Ue.set(at,Ht),xe(s.Comma)&&++N}return++N,new J(Ue)}default:throw new SyntaxError(`Unexpected token: ${ze.type}`)}}for(;N<k.length;)Q.body.push(ce());return Q}function Ie(k,Q,N=1){Q===void 0&&(Q=k,k=0);let K=[];for(let Z=k;Z<Q;Z+=N)K.push(Z);return K}function Le(k,Q,N,K=1){let Z=Math.sign(K);Z>=0?(Q=(Q??=0)<0?Math.max(k.length+Q,0):Math.min(Q,k.length),N=(N??=k.length)<0?Math.max(k.length+N,0):Math.min(N,k.length)):(Q=(Q??=k.length-1)<0?Math.max(k.length+Q,-1):Math.min(Q,k.length-1),N=(N??=-1)<-1?Math.max(k.length+N,-1):Math.min(N,k.length-1));let ce=[];for(let xe=Q;Z*xe<Z*N;xe+=K)ce.push(k[xe]);return ce}function rt(k){return k.replace(/\b\w/g,Q=>Q.toUpperCase())}function we(k){return A(new Date,k)}function A(k,Q){let N=new Intl.DateTimeFormat(void 0,{month:"long"}),K=new Intl.DateTimeFormat(void 0,{month:"short"}),Z=ce=>ce<10?"0"+ce:ce.toString();return Q.replace(/%[YmdbBHM%]/g,ce=>{switch(ce){case"%Y":return k.getFullYear().toString();case"%m":return Z(k.getMonth()+1);case"%d":return Z(k.getDate());case"%b":return K.format(k);case"%B":return N.format(k);case"%H":return Z(k.getHours());case"%M":return Z(k.getMinutes());case"%%":return"%";default:return ce}})}function le(k){return k.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ge(k,Q,N,K){if(K===0)return k;let Z=K==null||K<0?1/0:K,ce=Q.length===0?new RegExp("(?=)","gu"):new RegExp(le(Q),"gu");return k.replaceAll(ce,xe=>Z>0?(--Z,N):xe)}var be=class extends Error{},Ae=class extends Error{},ve=class{type="RuntimeValue";value;builtins=new Map;constructor(k=void 0){this.value=k}__bool__(){return new Te(!!this.value)}toString(){return String(this.value)}},pe=class extends ve{type="IntegerValue"},Pe=class extends ve{type="FloatValue";toString(){return this.value%1===0?this.value.toFixed(1):this.value.toString()}},fe=class extends ve{type="StringValue";builtins=new Map([["upper",new De(()=>new fe(this.value.toUpperCase()))],["lower",new De(()=>new fe(this.value.toLowerCase()))],["strip",new De(()=>new fe(this.value.trim()))],["title",new De(()=>new fe(rt(this.value)))],["capitalize",new De(()=>new fe(this.value.charAt(0).toUpperCase()+this.value.slice(1)))],["length",new pe(this.value.length)],["rstrip",new De(()=>new fe(this.value.trimEnd()))],["lstrip",new De(()=>new fe(this.value.trimStart()))],["startswith",new De(k=>{if(k.length===0)throw new Error("startswith() requires at least one argument");let Q=k[0];if(Q instanceof fe)return new Te(this.value.startsWith(Q.value));if(Q instanceof Ne){for(let N of Q.value){if(!(N instanceof fe))throw new Error("startswith() tuple elements must be strings");if(this.value.startsWith(N.value))return new Te(!0)}return new Te(!1)}throw new Error("startswith() argument must be a string or tuple of strings")})],["endswith",new De(k=>{if(k.length===0)throw new Error("endswith() requires at least one argument");let Q=k[0];if(Q instanceof fe)return new Te(this.value.endsWith(Q.value));if(Q instanceof Ne){for(let N of Q.value){if(!(N instanceof fe))throw new Error("endswith() tuple elements must be strings");if(this.value.endsWith(N.value))return new Te(!0)}return new Te(!1)}throw new Error("endswith() argument must be a string or tuple of strings")})],["split",new De(k=>{let Q=k[0]??new Qe;if(!(Q instanceof fe||Q instanceof Qe))throw new Error("sep argument must be a string or null");let N=k[1]??new pe(-1);if(!(N instanceof pe))throw new Error("maxsplit argument must be a number");let K=[];if(Q instanceof Qe){let Z=this.value.trimStart();for(let{0:ce,index:xe}of Z.matchAll(/\S+/g)){if(N.value!==-1&&K.length>=N.value&&xe!==void 0){K.push(ce+Z.slice(xe+ce.length));break}K.push(ce)}}else{if(Q.value==="")throw new Error("empty separator");K=this.value.split(Q.value),N.value!==-1&&K.length>N.value&&K.push(K.splice(N.value).join(Q.value))}return new Ne(K.map(Z=>new fe(Z)))})],["replace",new De(k=>{if(k.length<2)throw new Error("replace() requires at least two arguments");let Q=k[0],N=k[1];if(!(Q instanceof fe&&N instanceof fe))throw new Error("replace() arguments must be strings");let K;if(k.length>2?k[2].type==="KeywordArgumentsValue"?K=k[2].value.get("count")??new Qe:K=k[2]:K=new Qe,!(K instanceof pe||K instanceof Qe))throw new Error("replace() count argument must be a number or null");return new fe(ge(this.value,Q.value,N.value,K.value))})]])},Te=class extends ve{type="BooleanValue"};function We(k,Q,N,K=!0){let Z=N??0;switch(k.type){case"NullValue":return"null";case"UndefinedValue":return K?"null":"undefined";case"IntegerValue":case"FloatValue":case"StringValue":case"BooleanValue":return JSON.stringify(k.value);case"ArrayValue":case"ObjectValue":{let ce=Q?" ".repeat(Q):"",xe=`
|
|
2831
2831
|
`+ce.repeat(Z),et=xe+ce;if(k.type==="ArrayValue"){let ut=k.value.map(qe=>We(qe,Q,Z+1,K));return Q?`[${et}${ut.join(`,${et}`)}${xe}]`:`[${ut.join(", ")}]`}else{let ut=Array.from(k.value.entries()).map(([qe,wt])=>{let tt=`"${qe}": ${We(wt,Q,Z+1,K)}`;return Q?`${et}${tt}`:tt});return Q?`{${ut.join(",")}${xe}}`:`{${ut.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${k.type}`)}}var $e=class extends ve{type="ObjectValue";__bool__(){return new Te(this.value.size>0)}builtins=new Map([["get",new De(([k,Q])=>{if(!(k instanceof fe))throw new Error(`Object key must be a string: got ${k.type}`);return this.value.get(k.value)??Q??new Qe})],["items",new De(()=>this.items())],["keys",new De(()=>this.keys())],["values",new De(()=>this.values())],["dictsort",new De(k=>{let Q=new Map,N=k.filter(et=>et instanceof Re?(Q=et.value,!1):!0),K=N.at(0)??Q.get("case_sensitive")??new Te(!1);if(!(K instanceof Te))throw new Error("case_sensitive must be a boolean");let Z=N.at(1)??Q.get("by")??new fe("key");if(!(Z instanceof fe))throw new Error("by must be a string");if(!["key","value"].includes(Z.value))throw new Error("by must be either 'key' or 'value'");let ce=N.at(2)??Q.get("reverse")??new Te(!1);if(!(ce instanceof Te))throw new Error("reverse must be a boolean");let xe=Array.from(this.value.entries()).map(([et,ut])=>new Ne([new fe(et),ut])).sort((et,ut)=>{let qe=Z.value==="key"?0:1,wt=et.value[qe],tt=ut.value[qe],gt=At(wt,tt,K.value);return ce.value?-gt:gt});return new Ne(xe)})]]);items(){return new Ne(Array.from(this.value.entries()).map(([k,Q])=>new Ne([new fe(k),Q])))}keys(){return new Ne(Array.from(this.value.keys()).map(k=>new fe(k)))}values(){return new Ne(Array.from(this.value.values()))}toString(){return We(this,null,0,!1)}},Re=class extends $e{type="KeywordArgumentsValue"},Ne=class extends ve{type="ArrayValue";builtins=new Map([["length",new pe(this.value.length)]]);__bool__(){return new Te(this.value.length>0)}toString(){return We(this,null,0,!1)}},ot=class extends Ne{type="TupleValue"},De=class extends ve{type="FunctionValue"},Qe=class extends ve{type="NullValue"},je=class extends ve{type="UndefinedValue"},pt=class{constructor(k){this.parent=k}variables=new Map([["namespace",new De(k=>{if(k.length===0)return new $e(new Map);if(k.length!==1||!(k[0]instanceof $e))throw new Error("`namespace` expects either zero arguments or a single object argument");return k[0]})]]);tests=new Map([["boolean",k=>k.type==="BooleanValue"],["callable",k=>k instanceof De],["odd",k=>{if(!(k instanceof pe))throw new Error(`cannot odd on ${k.type}`);return k.value%2!==0}],["even",k=>{if(!(k instanceof pe))throw new Error(`cannot even on ${k.type}`);return k.value%2===0}],["false",k=>k.type==="BooleanValue"&&!k.value],["true",k=>k.type==="BooleanValue"&&k.value],["none",k=>k.type==="NullValue"],["string",k=>k.type==="StringValue"],["number",k=>k instanceof pe||k instanceof Pe],["integer",k=>k instanceof pe],["iterable",k=>k.type==="ArrayValue"||k.type==="StringValue"],["mapping",k=>k.type==="ObjectValue"],["lower",k=>{let Q=k.value;return k.type==="StringValue"&&Q===Q.toLowerCase()}],["upper",k=>{let Q=k.value;return k.type==="StringValue"&&Q===Q.toUpperCase()}],["none",k=>k.type==="NullValue"],["defined",k=>k.type!=="UndefinedValue"],["undefined",k=>k.type==="UndefinedValue"],["equalto",(k,Q)=>k.value===Q.value],["eq",(k,Q)=>k.value===Q.value]]);set(k,Q){return this.declareVariable(k,fr(Q))}declareVariable(k,Q){if(this.variables.has(k))throw new SyntaxError(`Variable already declared: ${k}`);return this.variables.set(k,Q),Q}setVariable(k,Q){return this.variables.set(k,Q),Q}resolve(k){if(this.variables.has(k))return this;if(this.parent)return this.parent.resolve(k);throw new Error(`Unknown variable: ${k}`)}lookupVariable(k){try{return this.resolve(k).variables.get(k)??new je}catch{return new je}}};function Ke(k){k.set("false",!1),k.set("true",!0),k.set("none",null),k.set("raise_exception",Q=>{throw new Error(Q)}),k.set("range",Ie),k.set("strftime_now",we),k.set("True",!0),k.set("False",!1),k.set("None",null)}function bt(k,Q){let N=Q.split("."),K=k;for(let Z of N)if(K instanceof $e)K=K.value.get(Z)??new je;else if(K instanceof Ne){let ce=parseInt(Z,10);if(!isNaN(ce)&&ce>=0&&ce<K.value.length)K=K.value[ce];else return new je}else return new je;return K}function At(k,Q,N=!1){if(k instanceof Qe&&Q instanceof Qe)return 0;if(k instanceof Qe||Q instanceof Qe)throw new Error(`Cannot compare ${k.type} with ${Q.type}`);if(k instanceof je&&Q instanceof je)return 0;if(k instanceof je||Q instanceof je)throw new Error(`Cannot compare ${k.type} with ${Q.type}`);let K=ce=>ce instanceof pe||ce instanceof Pe||ce instanceof Te,Z=ce=>ce instanceof Te?ce.value?1:0:ce.value;if(K(k)&&K(Q)){let ce=Z(k),xe=Z(Q);return ce<xe?-1:ce>xe?1:0}if(k.type!==Q.type)throw new Error(`Cannot compare different types: ${k.type} and ${Q.type}`);if(k.type==="StringValue"){let ce=k.value,xe=Q.value;return N||(ce=ce.toLowerCase(),xe=xe.toLowerCase()),ce<xe?-1:ce>xe?1:0}else throw new Error(`Cannot compare type: ${k.type}`)}var Lt=class{global;constructor(k){this.global=k??new pt}run(k){return this.evaluate(k,this.global)}evaluateBinaryExpression(k,Q){let N=this.evaluate(k.left,Q);switch(k.operator.value){case"and":return N.__bool__().value?this.evaluate(k.right,Q):N;case"or":return N.__bool__().value?N:this.evaluate(k.right,Q)}let K=this.evaluate(k.right,Q);switch(k.operator.value){case"==":return new Te(N.value==K.value);case"!=":return new Te(N.value!=K.value)}if(N instanceof je||K instanceof je){if(K instanceof je&&["in","not in"].includes(k.operator.value))return new Te(k.operator.value==="not in");throw new Error(`Cannot perform operation ${k.operator.value} on undefined values`)}else{if(N instanceof Qe||K instanceof Qe)throw new Error("Cannot perform operation on null values");if(k.operator.value==="~")return new fe(N.value.toString()+K.value.toString());if((N instanceof pe||N instanceof Pe)&&(K instanceof pe||K instanceof Pe)){let Z=N.value,ce=K.value;switch(k.operator.value){case"+":case"-":case"*":{let xe=k.operator.value==="+"?Z+ce:k.operator.value==="-"?Z-ce:Z*ce;return N instanceof Pe||K instanceof Pe?new Pe(xe):new pe(xe)}case"/":return new Pe(Z/ce);case"%":{let xe=Z%ce;return N instanceof Pe||K instanceof Pe?new Pe(xe):new pe(xe)}case"<":return new Te(Z<ce);case">":return new Te(Z>ce);case">=":return new Te(Z>=ce);case"<=":return new Te(Z<=ce)}}else if(N instanceof Ne&&K instanceof Ne){if(k.operator.value==="+")return new Ne(N.value.concat(K.value))}else if(K instanceof Ne){let Z=K.value.find(ce=>ce.value===N.value)!==void 0;switch(k.operator.value){case"in":return new Te(Z);case"not in":return new Te(!Z)}}}if((N instanceof fe||K instanceof fe)&&k.operator.value==="+")return new fe(N.value.toString()+K.value.toString());if(N instanceof fe&&K instanceof fe)switch(k.operator.value){case"in":return new Te(K.value.includes(N.value));case"not in":return new Te(!K.value.includes(N.value))}if(N instanceof fe&&K instanceof $e)switch(k.operator.value){case"in":return new Te(K.value.has(N.value));case"not in":return new Te(!K.value.has(N.value))}throw new SyntaxError(`Unknown operator "${k.operator.value}" between ${N.type} and ${K.type}`)}evaluateArguments(k,Q){let N=[],K=new Map;for(let Z of k)if(Z.type==="SpreadExpression"){let ce=Z,xe=this.evaluate(ce.argument,Q);if(!(xe instanceof Ne))throw new Error(`Cannot unpack non-iterable type: ${xe.type}`);for(let et of xe.value)N.push(et)}else if(Z.type==="KeywordArgumentExpression"){let ce=Z;K.set(ce.key.value,this.evaluate(ce.value,Q))}else{if(K.size>0)throw new Error("Positional arguments must come before keyword arguments");N.push(this.evaluate(Z,Q))}return[N,K]}applyFilter(k,Q,N){if(Q.type==="Identifier"){let K=Q;if(K.value==="tojson")return new fe(We(k));if(k instanceof Ne)switch(K.value){case"list":return k;case"first":return k.value[0];case"last":return k.value[k.value.length-1];case"length":return new pe(k.value.length);case"reverse":return new Ne(k.value.slice().reverse());case"sort":return new Ne(k.value.slice().sort((Z,ce)=>At(Z,ce,!1)));case"join":return new fe(k.value.map(Z=>Z.value).join(""));case"string":return new fe(We(k,null,0,!1));case"unique":{let Z=new Set,ce=[];for(let xe of k.value)Z.has(xe.value)||(Z.add(xe.value),ce.push(xe));return new Ne(ce)}default:throw new Error(`Unknown ArrayValue filter: ${K.value}`)}else if(k instanceof fe)switch(K.value){case"length":case"upper":case"lower":case"title":case"capitalize":{let Z=k.builtins.get(K.value);if(Z instanceof De)return Z.value([],N);if(Z instanceof pe)return Z;throw new Error(`Unknown StringValue filter: ${K.value}`)}case"trim":return new fe(k.value.trim());case"indent":return new fe(k.value.split(`
|
|
@@ -2835,7 +2835,7 @@ ${a}`,i=t.createShaderModule({code:n,label:e.name});Ot("verbose",()=>`[WebGPU] $
|
|
|
2835
2835
|
`))}case"replace":{let ce=k.builtins.get("replace");if(!(ce instanceof De))throw new Error("replace filter not available");let[xe,et]=this.evaluateArguments(K.args,N);return ce.value([...xe,new Re(et)],N)}}throw new Error(`Unknown StringValue filter: ${Z}`)}else if(k instanceof $e){let ce=k.builtins.get(Z);if(ce&&ce instanceof De){let[xe,et]=this.evaluateArguments(K.args,N);return et.size>0&&xe.push(new Re(et)),ce.value(xe,N)}throw new Error(`Unknown ObjectValue filter: ${Z}`)}else throw new Error(`Cannot apply filter "${Z}" to type: ${k.type}`)}throw new Error(`Unknown filter: ${Q.type}`)}evaluateFilterExpression(k,Q){let N=this.evaluate(k.operand,Q);return this.applyFilter(N,k.filter,Q)}evaluateTestExpression(k,Q){let N=this.evaluate(k.operand,Q),K=Q.tests.get(k.test.value);if(!K)throw new Error(`Unknown test: ${k.test.value}`);let Z=K(N);return new Te(k.negate?!Z:Z)}evaluateSelectExpression(k,Q){return this.evaluate(k.test,Q).__bool__().value?this.evaluate(k.lhs,Q):new je}evaluateUnaryExpression(k,Q){let N=this.evaluate(k.argument,Q);if(k.operator.value==="not")return new Te(!N.value);throw new SyntaxError(`Unknown operator: ${k.operator.value}`)}evaluateTernaryExpression(k,Q){return this.evaluate(k.condition,Q).__bool__().value?this.evaluate(k.trueExpr,Q):this.evaluate(k.falseExpr,Q)}evalProgram(k,Q){return this.evaluateBlock(k.body,Q)}evaluateBlock(k,Q){let N="";for(let K of k){let Z=this.evaluate(K,Q);Z.type!=="NullValue"&&Z.type!=="UndefinedValue"&&(N+=Z.toString())}return new fe(N)}evaluateIdentifier(k,Q){return Q.lookupVariable(k.value)}evaluateCallExpression(k,Q){let[N,K]=this.evaluateArguments(k.args,Q);K.size>0&&N.push(new Re(K));let Z=this.evaluate(k.callee,Q);if(Z.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${Z.type}`);return Z.value(N,Q)}evaluateSliceExpression(k,Q,N){if(!(k instanceof Ne||k instanceof fe))throw new Error("Slice object must be an array or string");let K=this.evaluate(Q.start,N),Z=this.evaluate(Q.stop,N),ce=this.evaluate(Q.step,N);if(!(K instanceof pe||K instanceof je))throw new Error("Slice start must be numeric or undefined");if(!(Z instanceof pe||Z instanceof je))throw new Error("Slice stop must be numeric or undefined");if(!(ce instanceof pe||ce instanceof je))throw new Error("Slice step must be numeric or undefined");return k instanceof Ne?new Ne(Le(k.value,K.value,Z.value,ce.value)):new fe(Le(Array.from(k.value),K.value,Z.value,ce.value).join(""))}evaluateMemberExpression(k,Q){let N=this.evaluate(k.object,Q),K;if(k.computed){if(k.property.type==="SliceExpression")return this.evaluateSliceExpression(N,k.property,Q);K=this.evaluate(k.property,Q)}else K=new fe(k.property.value);let Z;if(N instanceof $e){if(!(K instanceof fe))throw new Error(`Cannot access property with non-string: got ${K.type}`);Z=N.value.get(K.value)??N.builtins.get(K.value)}else if(N instanceof Ne||N instanceof fe)if(K instanceof pe)Z=N.value.at(K.value),N instanceof fe&&(Z=new fe(N.value.at(K.value)));else if(K instanceof fe)Z=N.builtins.get(K.value);else throw new Error(`Cannot access property with non-string/non-number: got ${K.type}`);else{if(!(K instanceof fe))throw new Error(`Cannot access property with non-string: got ${K.type}`);Z=N.builtins.get(K.value)}return Z instanceof ve?Z:new je}evaluateSet(k,Q){let N=k.value?this.evaluate(k.value,Q):this.evaluateBlock(k.body,Q);if(k.assignee.type==="Identifier"){let K=k.assignee.value;Q.setVariable(K,N)}else if(k.assignee.type==="TupleLiteral"){let K=k.assignee;if(!(N instanceof Ne))throw new Error(`Cannot unpack non-iterable type in set: ${N.type}`);let Z=N.value;if(Z.length!==K.value.length)throw new Error(`Too ${K.value.length>Z.length?"few":"many"} items to unpack in set`);for(let ce=0;ce<K.value.length;++ce){let xe=K.value[ce];if(xe.type!=="Identifier")throw new Error(`Cannot unpack to non-identifier in set: ${xe.type}`);Q.setVariable(xe.value,Z[ce])}}else if(k.assignee.type==="MemberExpression"){let K=k.assignee,Z=this.evaluate(K.object,Q);if(!(Z instanceof $e))throw new Error("Cannot assign to member of non-object");if(K.property.type!=="Identifier")throw new Error("Cannot assign to member with non-identifier property");Z.value.set(K.property.value,N)}else throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(k.assignee)}`);return new Qe}evaluateIf(k,Q){let N=this.evaluate(k.test,Q);return this.evaluateBlock(N.__bool__().value?k.body:k.alternate,Q)}evaluateFor(k,Q){let N=new pt(Q),K,Z;if(k.iterable.type==="SelectExpression"){let qe=k.iterable;Z=this.evaluate(qe.lhs,N),K=qe.test}else Z=this.evaluate(k.iterable,N);if(!(Z instanceof Ne||Z instanceof $e))throw new Error(`Expected iterable or object type in for loop: got ${Z.type}`);Z instanceof $e&&(Z=Z.keys());let ce=[],xe=[];for(let qe=0;qe<Z.value.length;++qe){let wt=new pt(N),tt=Z.value[qe],gt;if(k.loopvar.type==="Identifier")gt=Nt=>Nt.setVariable(k.loopvar.value,tt);else if(k.loopvar.type==="TupleLiteral"){let Nt=k.loopvar;if(tt.type!=="ArrayValue")throw new Error(`Cannot unpack non-iterable type: ${tt.type}`);let Qt=tt;if(Nt.value.length!==Qt.value.length)throw new Error(`Too ${Nt.value.length>Qt.value.length?"few":"many"} items to unpack`);gt=ur=>{for(let Or=0;Or<Nt.value.length;++Or){if(Nt.value[Or].type!=="Identifier")throw new Error(`Cannot unpack non-identifier type: ${Nt.value[Or].type}`);ur.setVariable(Nt.value[Or].value,Qt.value[Or])}}}else throw new Error(`Invalid loop variable(s): ${k.loopvar.type}`);K&&(gt(wt),!this.evaluate(K,wt).__bool__().value)||(ce.push(tt),xe.push(gt))}let et="",ut=!0;for(let qe=0;qe<ce.length;++qe){let wt=new Map([["index",new pe(qe+1)],["index0",new pe(qe)],["revindex",new pe(ce.length-qe)],["revindex0",new pe(ce.length-qe-1)],["first",new Te(qe===0)],["last",new Te(qe===ce.length-1)],["length",new pe(ce.length)],["previtem",qe>0?ce[qe-1]:new je],["nextitem",qe<ce.length-1?ce[qe+1]:new je]]);N.setVariable("loop",new $e(wt)),xe[qe](N);try{let tt=this.evaluateBlock(k.body,N);et+=tt.value}catch(tt){if(tt instanceof Ae)continue;if(tt instanceof be)break;throw tt}ut=!1}if(ut){let qe=this.evaluateBlock(k.defaultBlock,N);et+=qe.value}return new fe(et)}evaluateMacro(k,Q){return Q.setVariable(k.name.value,new De((N,K)=>{let Z=new pt(K);N=N.slice();let ce;N.at(-1)?.type==="KeywordArgumentsValue"&&(ce=N.pop());for(let xe=0;xe<k.args.length;++xe){let et=k.args[xe],ut=N[xe];if(et.type==="Identifier"){let qe=et;if(!ut)throw new Error(`Missing positional argument: ${qe.value}`);Z.setVariable(qe.value,ut)}else if(et.type==="KeywordArgumentExpression"){let qe=et,wt=ut??ce?.value.get(qe.key.value)??this.evaluate(qe.value,Z);Z.setVariable(qe.key.value,wt)}else throw new Error(`Unknown argument type: ${et.type}`)}return this.evaluateBlock(k.body,Z)})),new Qe}evaluateCallStatement(k,Q){let N=new De((et,ut)=>{let qe=new pt(ut);if(k.callerArgs)for(let wt=0;wt<k.callerArgs.length;++wt){let tt=k.callerArgs[wt];if(tt.type!=="Identifier")throw new Error(`Caller parameter must be an identifier, got ${tt.type}`);qe.setVariable(tt.value,et[wt]??new je)}return this.evaluateBlock(k.body,qe)}),[K,Z]=this.evaluateArguments(k.call.args,Q);K.push(new Re(Z));let ce=this.evaluate(k.call.callee,Q);if(ce.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${ce.type}`);let xe=new pt(Q);return xe.setVariable("caller",N),ce.value(K,xe)}evaluateFilterStatement(k,Q){let N=this.evaluateBlock(k.body,Q);return this.applyFilter(N,k.filter,Q)}evaluate(k,Q){if(!k)return new je;switch(k.type){case"Program":return this.evalProgram(k,Q);case"Set":return this.evaluateSet(k,Q);case"If":return this.evaluateIf(k,Q);case"For":return this.evaluateFor(k,Q);case"Macro":return this.evaluateMacro(k,Q);case"CallStatement":return this.evaluateCallStatement(k,Q);case"Break":throw new be;case"Continue":throw new Ae;case"IntegerLiteral":return new pe(k.value);case"FloatLiteral":return new Pe(k.value);case"StringLiteral":return new fe(k.value);case"ArrayLiteral":return new Ne(k.value.map(N=>this.evaluate(N,Q)));case"TupleLiteral":return new ot(k.value.map(N=>this.evaluate(N,Q)));case"ObjectLiteral":{let N=new Map;for(let[K,Z]of k.value){let ce=this.evaluate(K,Q);if(!(ce instanceof fe))throw new Error(`Object keys must be strings: got ${ce.type}`);N.set(ce.value,this.evaluate(Z,Q))}return new $e(N)}case"Identifier":return this.evaluateIdentifier(k,Q);case"CallExpression":return this.evaluateCallExpression(k,Q);case"MemberExpression":return this.evaluateMemberExpression(k,Q);case"UnaryExpression":return this.evaluateUnaryExpression(k,Q);case"BinaryExpression":return this.evaluateBinaryExpression(k,Q);case"FilterExpression":return this.evaluateFilterExpression(k,Q);case"FilterStatement":return this.evaluateFilterStatement(k,Q);case"TestExpression":return this.evaluateTestExpression(k,Q);case"SelectExpression":return this.evaluateSelectExpression(k,Q);case"Ternary":return this.evaluateTernaryExpression(k,Q);case"Comment":return new Qe;default:throw new SyntaxError(`Unknown node type: ${k.type}`)}}};function fr(k){switch(typeof k){case"number":return Number.isInteger(k)?new pe(k):new Pe(k);case"string":return new fe(k);case"boolean":return new Te(k);case"undefined":return new je;case"object":return k===null?new Qe:Array.isArray(k)?new Ne(k.map(fr)):new $e(new Map(Object.entries(k).map(([Q,N])=>[Q,fr(N)])));case"function":return new De((Q,N)=>{let K=k(...Q.map(Z=>Z.value))??null;return fr(K)});default:throw new Error(`Cannot convert to runtime value: ${k}`)}}var zt=`
|
|
2836
2836
|
`,yr="{%- ",zs=" -%}";function Ys(k){switch(k.operator.type){case"MultiplicativeBinaryOperator":return 4;case"AdditiveBinaryOperator":return 3;case"ComparisonBinaryOperator":return 2;case"Identifier":return k.operator.value==="and"?1:k.operator.value==="in"||k.operator.value==="not in"?2:0}return 0}function Zs(k,Q=" "){let N=typeof Q=="number"?" ".repeat(Q):Q;return Dr(k.body,0,N).replace(/\n$/,"")}function or(...k){return yr+k.join(" ")+zs}function Dr(k,Q,N){return k.map(K=>Yr(K,Q,N)).join(zt)}function Yr(k,Q,N){let K=N.repeat(Q);switch(k.type){case"Program":return Dr(k.body,Q,N);case"If":return Rs(k,Q,N);case"For":return ft(k,Q,N);case"Set":return Cs(k,Q,N);case"Macro":return qt(k,Q,N);case"Break":return K+or("break");case"Continue":return K+or("continue");case"CallStatement":return Ss(k,Q,N);case"FilterStatement":return Qr(k,Q,N);case"Comment":return K+"{# "+k.value+" #}";default:return K+"{{- "+St(k)+" -}}"}}function Rs(k,Q,N){let K=N.repeat(Q),Z=[],ce=k;for(;ce&&(Z.push({test:ce.test,body:ce.body}),ce.alternate.length===1&&ce.alternate[0].type==="If");)ce=ce.alternate[0];let xe=K+or("if",St(Z[0].test))+zt+Dr(Z[0].body,Q+1,N);for(let et=1;et<Z.length;++et)xe+=zt+K+or("elif",St(Z[et].test))+zt+Dr(Z[et].body,Q+1,N);return ce&&ce.alternate.length>0&&(xe+=zt+K+or("else")+zt+Dr(ce.alternate,Q+1,N)),xe+=zt+K+or("endif"),xe}function ft(k,Q,N){let K=N.repeat(Q),Z="";if(k.iterable.type==="SelectExpression"){let xe=k.iterable;Z=`${St(xe.lhs)} if ${St(xe.test)}`}else Z=St(k.iterable);let ce=K+or("for",St(k.loopvar),"in",Z)+zt+Dr(k.body,Q+1,N);return k.defaultBlock.length>0&&(ce+=zt+K+or("else")+zt+Dr(k.defaultBlock,Q+1,N)),ce+=zt+K+or("endfor"),ce}function Cs(k,Q,N){let K=N.repeat(Q),Z=St(k.assignee),ce=k.value?St(k.value):"",xe=K+or("set",`${Z}${k.value?" = "+ce:""}`);return k.body.length===0?xe:xe+zt+Dr(k.body,Q+1,N)+zt+K+or("endset")}function qt(k,Q,N){let K=N.repeat(Q),Z=k.args.map(St).join(", ");return K+or("macro",`${k.name.value}(${Z})`)+zt+Dr(k.body,Q+1,N)+zt+K+or("endmacro")}function Ss(k,Q,N){let K=N.repeat(Q),Z=k.callerArgs&&k.callerArgs.length>0?`(${k.callerArgs.map(St).join(", ")})`:"",ce=St(k.call),xe=K+or(`call${Z}`,ce)+zt;return xe+=Dr(k.body,Q+1,N)+zt,xe+=K+or("endcall"),xe}function Qr(k,Q,N){let K=N.repeat(Q),Z=k.filter.type==="Identifier"?k.filter.value:St(k.filter),ce=K+or("filter",Z)+zt;return ce+=Dr(k.body,Q+1,N)+zt,ce+=K+or("endfilter"),ce}function St(k,Q=-1){switch(k.type){case"SpreadExpression":return`*${St(k.argument)}`;case"Identifier":return k.value;case"IntegerLiteral":return`${k.value}`;case"FloatLiteral":return`${k.value}`;case"StringLiteral":return JSON.stringify(k.value);case"BinaryExpression":{let N=k,K=Ys(N),Z=St(N.left,K),ce=St(N.right,K+1),xe=`${Z} ${N.operator.value} ${ce}`;return K<Q?`(${xe})`:xe}case"UnaryExpression":{let N=k;return N.operator.value+(N.operator.value==="not"?" ":"")+St(N.argument,1/0)}case"CallExpression":{let N=k,K=N.args.map(St).join(", ");return`${St(N.callee)}(${K})`}case"MemberExpression":{let N=k,K=St(N.object);["Identifier","MemberExpression","CallExpression","StringLiteral","IntegerLiteral","FloatLiteral","ArrayLiteral","TupleLiteral","ObjectLiteral"].includes(N.object.type)||(K=`(${K})`);let Z=St(N.property);return!N.computed&&N.property.type!=="Identifier"&&(Z=`(${Z})`),N.computed?`${K}[${Z}]`:`${K}.${Z}`}case"FilterExpression":{let N=k,K=St(N.operand,1/0);return N.filter.type==="CallExpression"?`${K} | ${St(N.filter)}`:`${K} | ${N.filter.value}`}case"SelectExpression":{let N=k;return`${St(N.lhs)} if ${St(N.test)}`}case"TestExpression":{let N=k;return`${St(N.operand)} is${N.negate?" not":""} ${N.test.value}`}case"ArrayLiteral":case"TupleLiteral":{let N=k.value.map(St),K=k.type==="ArrayLiteral"?"[]":"()";return`${K[0]}${N.join(", ")}${K[1]}`}case"ObjectLiteral":return`{${Array.from(k.value.entries()).map(([K,Z])=>`${St(K)}: ${St(Z)}`).join(", ")}}`;case"SliceExpression":{let N=k,K=N.start?St(N.start):"",Z=N.stop?St(N.stop):"",ce=N.step?`:${St(N.step)}`:"";return`${K}:${Z}${ce}`}case"KeywordArgumentExpression":{let N=k;return`${N.key.value}=${St(N.value)}`}case"Ternary":{let N=k,K=`${St(N.trueExpr)} if ${St(N.condition,0)} else ${St(N.falseExpr)}`;return Q>-1?`(${K})`:K}default:throw new Error(`Unknown expression type: ${k.type}`)}}var Xr=class{parsed;constructor(k){let Q=u(k,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=ke(Q)}render(k){let Q=new pt;if(Ke(Q),k)for(let[Z,ce]of Object.entries(k))Q.set(Z,ce);return new Lt(Q).run(this.parsed).value}format(k){return Zs(this.parsed,k?.indent||" ")}}}),"./src/backends/onnx.js":((e,r,t)=>{var s;t.r(r),t.d(r,{Tensor:()=>i.Tensor,createInferenceSession:()=>F,deviceToExecutionProviders:()=>h,isONNXProxy:()=>I,isONNXTensor:()=>y,runInferenceSession:()=>C});var o=t("./src/env.js"),a=t("?2ce3"),n=t("onnxruntime-web"),i=t("onnxruntime-common");let l=Object.freeze({auto:null,gpu:null,cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:{name:"webnn",deviceType:"cpu"},"webnn-npu":{name:"webnn",deviceType:"npu"},"webnn-gpu":{name:"webnn",deviceType:"gpu"},"webnn-cpu":{name:"webnn",deviceType:"cpu"}}),c=[],_,u,d=Symbol.for("onnxruntime");if(d in globalThis)u=globalThis[d];else if(o.apis.IS_NODE_ENV){switch(u=a??(s||(s=t.t(a,2))),process.platform){case"win32":c.push("dml");break;case"linux":process.arch==="x64"&&c.push("cuda");break;case"darwin":break}c.push("cpu"),_=["cpu"]}else u=n,o.apis.IS_WEBNN_AVAILABLE&&c.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),o.apis.IS_WEBGPU_AVAILABLE&&c.push("webgpu"),c.push("wasm"),_=["wasm"];let g=u.InferenceSession;function h(f=null){if(!f)return _;switch(f){case"auto":return c;case"gpu":return c.filter(E=>["webgpu","cuda","dml","webnn-gpu"].includes(E))}if(c.includes(f))return[l[f]??f];throw new Error(`Unsupported device: "${f}". Should be one of: ${c.join(", ")}.`)}let x=null;async function F(f,E,D){x&&await x;let O=g.create(f,E);x??=O;let U=await O;return U.config=D,U}let v=Promise.resolve(),b=o.apis.IS_BROWSER_ENV||o.apis.IS_WEBWORKER_ENV;async function C(f,E){let D=()=>f.run(E);return await(b?v=v.then(D):D())}function y(f){return f instanceof u.Tensor}let P=u?.env;P?.wasm&&(!(typeof ServiceWorkerGlobalScope<"u"&&self instanceof ServiceWorkerGlobalScope)&&!P.wasm.wasmPaths&&(P.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${o.env.version}/dist/`),P.wasm.proxy=!1),P?.webgpu&&(P.webgpu.powerPreference="high-performance");function I(){return P?.wasm?.proxy}o.env.backends.onnx=P}),"./src/base/feature_extraction_utils.js":((e,r,t)=>{t.r(r),t.d(r,{FeatureExtractor:()=>n,validate_audio_inputs:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/generic.js"),a=t("./src/utils/hub.js");class n extends o.Callable{constructor(c){super(),this.config=c}static async from_pretrained(c,_={}){let u=await(0,a.getModelJSON)(c,s.FEATURE_EXTRACTOR_NAME,!0,_);return new this(u)}}function i(l,c){if(!(l instanceof Float32Array||l instanceof Float64Array))throw new Error(`${c} expects input to be a Float32Array or a Float64Array, but got ${l?.constructor?.name??typeof l} instead. If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.`)}}),"./src/base/image_processors_utils.js":((e,r,t)=>{t.r(r),t.d(r,{ImageProcessor:()=>P,center_to_corners_format:()=>d,post_process_instance_segmentation:()=>y,post_process_object_detection:()=>g,post_process_panoptic_segmentation:()=>C,post_process_semantic_segmentation:()=>h});var s=t("./src/utils/generic.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js"),n=t("./src/utils/image.js"),i=t("./src/utils/core.js"),l=t("./src/utils/hub.js"),c=t("./src/utils/constants.js");function _(I,f,E=0,D=null){let O=I/f,U=(0,a.bankers_round)(O)*f;return D!==null&&U>D&&(U=Math.floor(O)*f),U<E&&(U=Math.ceil(O)*f),U}function u([I,f],E){return[Math.max(Math.floor(I/E),1)*E,Math.max(Math.floor(f/E),1)*E]}function d([I,f,E,D]){return[I-E/2,f-D/2,I+E/2,f+D/2]}function g(I,f=.5,E=null,D=!1){let O=I.logits,U=I.pred_boxes,[W,z,X]=O.dims;if(E!==null&&E.length!==W)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let J=[];for(let q=0;q<W;++q){let re=E!==null?E[q]:null,oe={boxes:[],classes:[],scores:[]},ne=O[q],ye=U[q];for(let Y=0;Y<z;++Y){let H=ne[Y],R=[],L;if(D){L=H.sigmoid().data;for(let ee=0;ee<L.length;++ee)L[ee]>f&&R.push(ee)}else{let ee=(0,a.max)(H.data)[1];if(ee===X-1||(L=(0,a.softmax)(H.data),L[ee]<f))continue;R.push(ee)}for(let ee of R){let ue=ye[Y].data;ue=d(ue),re!==null&&(ue=ue.map((ke,Ie)=>ke*re[(Ie+1)%2])),oe.boxes.push(ue),oe.classes.push(ee),oe.scores.push(L[ee])}}J.push(oe)}return J}function h(I,f=null){let E=I.logits,D=E.dims[0];if(f!==null&&f.length!==D)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let O=[];for(let U=0;U<D;++U){let W=f!==null?f[U]:null,z=E[U];W!==null&&(z=(0,o.interpolate)(z,W,"bilinear",!1));let[X,J]=W??z.dims.slice(-2),q=new o.Tensor("int32",new Int32Array(X*J),[X,J]),re=z[0].data,oe=q.data;for(let Y=1;Y<z.dims[0];++Y){let H=z[Y].data;for(let R=0;R<H.length;++R)H[R]>re[R]&&(re[R]=H[R],oe[R]=Y)}let ne=new Array(z.dims[0]);for(let Y=0;Y<oe.length;++Y){let H=oe[Y];ne[H]=H}let ye=ne.filter(Y=>Y!==void 0);O.push({segmentation:q,labels:ye})}return O}function x(I,f,E,D){let O=[],U=[],W=[];for(let z=0;z<I.dims[0];++z){let X=I[z],J=f[z],q=(0,a.max)(X.data)[1];if(q===D)continue;let oe=(0,a.softmax)(X.data)[q];oe>E&&(O.push(J),U.push(oe),W.push(q))}return[O,U,W]}function F(I,f,E,D=.5,O=.8){let U=[],W=0,z=0,X=f[E].data;for(let q=0;q<I.length;++q)I[q]===E&&(U.push(q),++W),X[q]>=D&&++z;let J=W>0&&z>0;return J&&(J=W/z>O),[J,U]}function v(I,f,E,D,O,U=null,W=null){let[z,X]=W??I[0].dims,J=new o.Tensor("int32",new Int32Array(z*X),[z,X]),q=[];if(W!==null)for(let Y=0;Y<I.length;++Y)I[Y]=(0,o.interpolate)(I[Y],W,"bilinear",!1);let re=new Int32Array(I[0].data.length),oe=new Float32Array(I[0].data.length);for(let Y=0;Y<I.length;++Y){let H=f[Y],R=I[Y].data;for(let L=0;L<R.length;++L)R[L]*=H,R[L]>oe[L]&&(re[L]=Y,oe[L]=R[L])}let ne=0,ye=J.data;for(let Y=0;Y<E.length;++Y){let H=E[Y],[R,L]=F(re,I,Y,D,O);if(R){++ne;for(let ee of L)ye[ee]=ne;q.push({id:ne,label_id:H,score:f[Y]})}}return[J,q]}function b(I,f,E=28,D=3136,O=784*1280){if(I<E||f<E)throw new Error(`height:${I} or width:${f} must be larger than factor:${E}`);if(Math.max(I,f)/Math.min(I,f)>200)throw new Error(`absolute aspect ratio must be smaller than 200, got ${Math.max(I,f)/Math.min(I,f)}`);let U=Math.round(I/E)*E,W=Math.round(f/E)*E;if(U*W>O){let z=Math.sqrt(I*f/O);U=Math.floor(I/z/E)*E,W=Math.floor(f/z/E)*E}else if(U*W<D){let z=Math.sqrt(D/(I*f));U=Math.ceil(I*z/E)*E,W=Math.ceil(f*z/E)*E}return[U,W]}function C(I,f=.5,E=.5,D=.8,O=null,U=null){O===null&&(console.warn("`label_ids_to_fuse` unset. No instance will be fused."),O=new Set);let W=I.class_queries_logits??I.logits,X=(I.masks_queries_logits??I.pred_masks).sigmoid(),[J,q,re]=W.dims;if(re-=1,U!==null&&U.length!==J)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let oe=[];for(let ne=0;ne<J;++ne){let ye=U!==null?U[ne]:null,Y=W[ne],H=X[ne],[R,L,ee]=x(Y,H,f,re);if(ee.length===0){let[Ie,Le]=ye??H.dims.slice(-2),rt=new o.Tensor("int32",new Int32Array(Ie*Le).fill(-1),[Ie,Le]);oe.push({segmentation:rt,segments_info:[]});continue}let[ue,ke]=v(R,L,ee,E,D,O,ye);oe.push({segmentation:ue,segments_info:ke})}return oe}function y(I,f=.5,E=null){throw new Error("`post_process_instance_segmentation` is not yet implemented.")}class P extends s.Callable{constructor(f){super(),this.image_mean=f.image_mean??f.mean,this.image_std=f.image_std??f.std,this.resample=f.resample??2,this.do_rescale=f.do_rescale??!0,this.rescale_factor=f.rescale_factor??1/255,this.do_normalize=f.do_normalize,this.do_thumbnail=f.do_thumbnail,this.size=f.size??f.image_size,this.do_resize=f.do_resize??this.size!==void 0,this.size_divisibility=f.size_divisibility??f.size_divisor,this.do_center_crop=f.do_center_crop,this.crop_size=f.crop_size,this.do_convert_rgb=f.do_convert_rgb??!0,this.do_crop_margin=f.do_crop_margin,this.pad_size=f.pad_size,this.do_pad=f.do_pad,this.min_pixels=f.min_pixels,this.max_pixels=f.max_pixels,this.do_pad&&!this.pad_size&&this.size&&this.size.width!==void 0&&this.size.height!==void 0&&(this.pad_size=this.size),this.do_flip_channel_order=f.do_flip_channel_order??!1,this.config=f}async thumbnail(f,E,D=2){let O=f.height,U=f.width,W=E.height,z=E.width,X=Math.min(O,W),J=Math.min(U,z);return X===O&&J===U?f:(O>U?J=Math.floor(U*X/O):U>O&&(X=Math.floor(O*J/U)),await f.resize(J,X,{resample:D}))}async crop_margin(f,E=200){let D=f.clone().grayscale(),O=(0,a.min)(D.data)[0],W=(0,a.max)(D.data)[0]-O;if(W===0)return f;let z=E/255,X=D.width,J=D.height,q=0,re=0,oe=D.data;for(let ne=0;ne<D.height;++ne){let ye=ne*D.width;for(let Y=0;Y<D.width;++Y)(oe[ye+Y]-O)/W<z&&(X=Math.min(X,Y),J=Math.min(J,ne),q=Math.max(q,Y),re=Math.max(re,ne))}return f=await f.crop([X,J,q,re]),f}pad_image(f,E,D,{mode:O="constant",center:U=!1,constant_values:W=0}={}){let[z,X,J]=E,q,re;if(typeof D=="number"?(q=D,re=D):D==="square"?q=re=Math.max(z,X):(q=D.width,re=D.height),q!==X||re!==z){let oe=new Float32Array(q*re*J);if(Array.isArray(W))for(let Y=0;Y<oe.length;++Y)oe[Y]=W[Y%J];else W!==0&&oe.fill(W);let[ne,ye]=U?[Math.floor((q-X)/2),Math.floor((re-z)/2)]:[0,0];for(let Y=0;Y<z;++Y){let H=(Y+ye)*q,R=Y*X;for(let L=0;L<X;++L){let ee=(H+L+ne)*J,ue=(R+L)*J;for(let ke=0;ke<J;++ke)oe[ee+ke]=f[ue+ke]}}if(O==="symmetric"){if(U)throw new Error("`center` padding is not supported when `mode` is set to `symmetric`.");let Y=z-1,H=X-1;for(let R=0;R<re;++R){let L=R*q,ee=(0,i.calculateReflectOffset)(R,Y)*X;for(let ue=0;ue<q;++ue){if(R<z&&ue<X)continue;let ke=(L+ue)*J,Ie=(ee+(0,i.calculateReflectOffset)(ue,H))*J;for(let Le=0;Le<J;++Le)oe[ke+Le]=f[Ie+Le]}}}f=oe,E=[re,q,J]}return[f,E]}rescale(f){for(let E=0;E<f.length;++E)f[E]=this.rescale_factor*f[E]}get_resize_output_image_size(f,E){let[D,O]=f.size,U,W;if(this.do_thumbnail){let{height:z,width:X}=E;U=Math.min(z,X)}else Number.isInteger(E)?(U=E,W=this.config.max_size??U):E!==void 0&&(U=E.shortest_edge,W=E.longest_edge);if(U!==void 0||W!==void 0){let z=U===void 0?1:Math.max(U/D,U/O),X=D*z,J=O*z,q=W===void 0?1:Math.min(W/X,W/J),re=Math.floor(Number((X*q).toFixed(2))),oe=Math.floor(Number((J*q).toFixed(2)));return this.size_divisibility!==void 0&&([re,oe]=u([re,oe],this.size_divisibility)),[re,oe]}else if(E!==void 0&&E.width!==void 0&&E.height!==void 0){let z=E.width,X=E.height;if(this.config.keep_aspect_ratio&&this.config.ensure_multiple_of){let J=X/O,q=z/D;Math.abs(1-q)<Math.abs(1-J)?J=q:q=J,X=_(J*O,this.config.ensure_multiple_of),z=_(q*D,this.config.ensure_multiple_of)}return[z,X]}else{if(this.size_divisibility!==void 0)return u([D,O],this.size_divisibility);if(this.min_pixels!==void 0&&this.max_pixels!==void 0){let z=this.config.patch_size*this.config.merge_size;return b(O,D,z,this.min_pixels,this.max_pixels)}else throw new Error(`Could not resize image due to unsupported \`this.size\` option in config: ${JSON.stringify(E)}`)}}async resize(f){let[E,D]=this.get_resize_output_image_size(f,this.size);return await f.resize(E,D,{resample:this.resample})}async preprocess(f,{do_normalize:E=null,do_pad:D=null,do_convert_rgb:O=null,do_convert_grayscale:U=null,do_flip_channel_order:W=null}={}){this.do_crop_margin&&(f=await this.crop_margin(f));let[z,X]=f.size;if(O??this.do_convert_rgb?f=f.rgb():U&&(f=f.grayscale()),this.do_resize&&(f=await this.resize(f)),this.do_thumbnail&&(f=await this.thumbnail(f,this.size,this.resample)),this.do_center_crop){let ne,ye;Number.isInteger(this.crop_size)?(ne=this.crop_size,ye=this.crop_size):(ne=this.crop_size.width,ye=this.crop_size.height),f=await f.center_crop(ne,ye)}let J=[f.height,f.width],q=Float32Array.from(f.data),re=[f.height,f.width,f.channels];if(this.do_rescale&&this.rescale(q),E??this.do_normalize){let ne=this.image_mean;Array.isArray(this.image_mean)||(ne=new Array(f.channels).fill(ne));let ye=this.image_std;if(Array.isArray(this.image_std)||(ye=new Array(f.channels).fill(ye)),ne.length!==f.channels||ye.length!==f.channels)throw new Error(`When set to arrays, the length of \`image_mean\` (${ne.length}) and \`image_std\` (${ye.length}) must match the number of channels in the image (${f.channels}).`);for(let Y=0;Y<q.length;Y+=f.channels)for(let H=0;H<f.channels;++H)q[Y+H]=(q[Y+H]-ne[H])/ye[H]}if(D??this.do_pad){if(this.pad_size)[q,re]=this.pad_image(q,[f.height,f.width,f.channels],this.pad_size);else if(this.size_divisibility){let[ne,ye]=u([re[1],re[0]],this.size_divisibility);[q,re]=this.pad_image(q,re,{width:ne,height:ye})}}if(W??this.do_flip_channel_order){if(re[2]!==3)throw new Error("Flipping channel order is only supported for RGB images.");for(let ne=0;ne<q.length;ne+=3){let ye=q[ne];q[ne]=q[ne+2],q[ne+2]=ye}}let oe=new o.Tensor("float32",q,re).permute(2,0,1);return{original_size:[X,z],reshaped_input_size:J,pixel_values:oe}}async _call(f,...E){Array.isArray(f)||(f=[f]);let D=await Promise.all(f.map(U=>this.preprocess(U)));return{pixel_values:(0,o.stack)(D.map(U=>U.pixel_values),0),original_sizes:D.map(U=>U.original_size),reshaped_input_sizes:D.map(U=>U.reshaped_input_size)}}static async from_pretrained(f,E={}){let D=await(0,l.getModelJSON)(f,c.IMAGE_PROCESSOR_NAME,!0,E);return new this(D)}}}),"./src/base/processing_utils.js":((e,r,t)=>{t.r(r),t.d(r,{Processor:()=>n});var s=t("./src/utils/constants.js"),o=t("./src/utils/generic.js"),a=t("./src/utils/hub.js");class n extends o.Callable{static classes=["image_processor_class","tokenizer_class","feature_extractor_class"];static uses_processor_config=!1;static uses_chat_template_file=!1;constructor(l,c,_){super(),this.config=l,this.components=c,this.chat_template=_}get image_processor(){return this.components.image_processor}get tokenizer(){return this.components.tokenizer}get feature_extractor(){return this.components.feature_extractor}apply_chat_template(l,c={}){if(!this.tokenizer)throw new Error("Unable to apply chat template without a tokenizer.");return this.tokenizer.apply_chat_template(l,{tokenize:!1,chat_template:this.chat_template??void 0,...c})}batch_decode(...l){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.batch_decode(...l)}decode(...l){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.decode(...l)}async _call(l,...c){for(let _ of[this.image_processor,this.feature_extractor,this.tokenizer])if(_)return _(l,...c);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(l,c={}){let[_,u,d]=await Promise.all([this.uses_processor_config?(0,a.getModelJSON)(l,s.PROCESSOR_NAME,!0,c):{},Promise.all(this.classes.filter(g=>g in this).map(async g=>{let h=await this[g].from_pretrained(l,c);return[g.replace(/_class$/,""),h]})).then(Object.fromEntries),this.uses_chat_template_file?(0,a.getModelText)(l,s.CHAT_TEMPLATE_NAME,!0,c):null]);return new this(_,u,d)}}}),"./src/configs.js":((e,r,t)=>{t.r(r),t.d(r,{AutoConfig:()=>_,PretrainedConfig:()=>c,getCacheShapes:()=>i});var s=t("./src/utils/core.js"),o=t("./src/utils/hub.js");async function a(u,d){return await(0,o.getModelJSON)(u,"config.json",!0,d)}function n(u){let d={},g={};switch(u.model_type){case"llava":case"paligemma":case"gemma3":case"florence2":case"llava_onevision":case"idefics3":case"ultravox":case"voxtral":case"smolvlm":case"gemma3n":case"mistral3":g=n(u.text_config);break;case"moondream1":g=n(u.phi_config);break;case"musicgen":g=n(u.decoder);break;case"multi_modality":g=n(u.language_config);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":d.num_heads="n_head",d.num_layers="n_layer",d.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"falcon":case"modernbert-decoder":d.num_heads="num_attention_heads",d.num_layers="num_hidden_layers",d.hidden_size="hidden_size";break;case"llama":case"llama4_text":case"nanochat":case"arcee":case"lfm2":case"smollm3":case"olmo":case"olmo2":case"mobilellm":case"granite":case"granitemoehybrid":case"cohere":case"mistral":case"starcoder2":case"qwen2":case"qwen2_vl":case"phi":case"phi3":case"phi3_v":case"llava_qwen2":d.num_heads="num_key_value_heads",d.num_layers="num_hidden_layers",d.hidden_size="hidden_size",d.num_attention_heads="num_attention_heads",d.dim_kv="head_dim";break;case"qwen3":case"gemma":case"gemma2":case"vaultgemma":case"gemma3_text":case"gemma3n_text":case"glm":case"helium":case"ernie4_5":case"ministral":case"ministral3":d.num_heads="num_key_value_heads",d.num_layers="num_hidden_layers",d.dim_kv="head_dim";break;case"openelm":d.num_heads="num_kv_heads",d.num_layers="num_transformer_layers",d.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":d.num_heads="num_heads",d.num_layers="num_layers",d.hidden_size="hidden_size";break;case"bloom":d.num_heads="n_head",d.num_layers="n_layer",d.hidden_size="hidden_size";break;case"mpt":d.num_heads="n_heads",d.num_layers="n_layers",d.hidden_size="d_model";break;case"exaone":d.num_heads="num_key_value_heads",d.num_layers="num_layers",d.dim_kv="head_dim",d.num_attention_heads="num_attention_heads";break;case"t5":case"mt5":case"longt5":d.num_decoder_layers="num_decoder_layers",d.num_decoder_heads="num_heads",d.decoder_dim_kv="d_kv",d.num_encoder_layers="num_layers",d.num_encoder_heads="num_heads",d.encoder_dim_kv="d_kv";break;case"bart":case"mbart":case"marian":case"whisper":case"lite-whisper":case"m2m_100":case"blenderbot":case"blenderbot-small":case"florence2_language":d.num_decoder_layers="decoder_layers",d.num_decoder_heads="decoder_attention_heads",d.decoder_hidden_size="d_model",d.num_encoder_layers="encoder_layers",d.num_encoder_heads="encoder_attention_heads",d.encoder_hidden_size="d_model";break;case"speecht5":d.num_decoder_layers="decoder_layers",d.num_decoder_heads="decoder_attention_heads",d.decoder_hidden_size="hidden_size",d.num_encoder_layers="encoder_layers",d.num_encoder_heads="encoder_attention_heads",d.encoder_hidden_size="hidden_size";break;case"trocr":d.num_encoder_layers=d.num_decoder_layers="decoder_layers",d.num_encoder_heads=d.num_decoder_heads="decoder_attention_heads",d.encoder_hidden_size=d.decoder_hidden_size="d_model";break;case"musicgen_decoder":d.num_encoder_layers=d.num_decoder_layers="num_hidden_layers",d.num_encoder_heads=d.num_decoder_heads="num_attention_heads",d.encoder_hidden_size=d.decoder_hidden_size="hidden_size";break;case"moonshine":d.num_decoder_layers="decoder_num_hidden_layers",d.num_decoder_heads="decoder_num_key_value_heads",d.num_encoder_layers="encoder_num_hidden_layers",d.num_encoder_heads="encoder_num_key_value_heads",d.encoder_hidden_size=d.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":let x=n(u.decoder),F="num_decoder_layers"in x,v=(0,s.pick)(u,["model_type","is_encoder_decoder"]);return F?(v.num_decoder_layers=x.num_decoder_layers,v.num_decoder_heads=x.num_decoder_heads,v.decoder_hidden_size=x.decoder_hidden_size,v.num_encoder_layers=x.num_encoder_layers,v.num_encoder_heads=x.num_encoder_heads,v.encoder_hidden_size=x.encoder_hidden_size):(v.num_layers=x.num_layers,v.num_heads=x.num_heads,v.hidden_size=x.hidden_size),v}let h={...g,...(0,s.pick)(u,["model_type","multi_query","is_encoder_decoder"])};for(let x in d)h[x]=u[d[x]];return h}function i(u,d){if(u.model_type==="lfm2"){let g=d?.prefix??"past_key_values",h=g==="present"?"present":"past",x={},{layer_types:F,num_attention_heads:v,num_key_value_heads:b,hidden_size:C,conv_L_cache:y}=u,P=C/v,I=d?.batch_size??1;for(let f=0;f<F.length;++f)if(F[f]==="full_attention")for(let E of["key","value"])x[`${g}.${f}.${E}`]=[I,b,0,P];else if(F[f]==="conv")x[`${h}_conv.${f}`]=[I,C,y];else throw new Error(`Unsupported layer type: ${F[f]}`);return x}return l(u,d)}function l(u,{prefix:d="past_key_values",batch_size:g=1}={}){let h={},x=u.normalized_config;if(x.is_encoder_decoder&&"num_encoder_heads"in x&&"num_decoder_heads"in x){let F=x.encoder_dim_kv??x.encoder_hidden_size/x.num_encoder_heads,v=x.decoder_dim_kv??x.decoder_hidden_size/x.num_decoder_heads,b=[g,x.num_encoder_heads,0,F],C=[g,x.num_decoder_heads,0,v];for(let y=0;y<x.num_decoder_layers;++y)h[`${d}.${y}.encoder.key`]=b,h[`${d}.${y}.encoder.value`]=b,h[`${d}.${y}.decoder.key`]=C,h[`${d}.${y}.decoder.value`]=C}else{let F=x.num_heads,v=x.num_layers,b=x.dim_kv??x.hidden_size/(x.num_attention_heads??F);if(x.model_type==="falcon"){let C=[g*F,0,b];for(let y=0;y<v;++y)h[`${d}.${y}.key`]=C,h[`${d}.${y}.value`]=C}else if(x.multi_query){let C=[g*F,0,2*b];for(let y=0;y<v;++y)h[`${d}.${y}.key_value`]=C}else if(x.model_type==="bloom"){let C=[g*F,b,0],y=[g*F,0,b];for(let P=0;P<v;++P)h[`${d}.${P}.key`]=C,h[`${d}.${P}.value`]=y}else if(x.model_type==="openelm")for(let C=0;C<v;++C){let y=[g,F[C],0,b];h[`${d}.${C}.key`]=y,h[`${d}.${C}.value`]=y}else{let C=[g,F,0,b];for(let y=0;y<v;++y)h[`${d}.${y}.key`]=C,h[`${d}.${y}.value`]=C}}return h}class c{model_type=null;is_encoder_decoder=!1;max_position_embeddings;"transformers.js_config";constructor(d){Object.assign(this,d),this.normalized_config=n(this)}static async from_pretrained(d,{progress_callback:g=null,config:h=null,cache_dir:x=null,local_files_only:F=!1,revision:v="main"}={}){h&&!(h instanceof c)&&(h=new c(h));let b=h??await a(d,{progress_callback:g,config:h,cache_dir:x,local_files_only:F,revision:v});return new this(b)}}class _{static async from_pretrained(...d){return c.from_pretrained(...d)}}}),"./src/env.js":((e,r,t)=>{t.r(r),t.d(r,{apis:()=>b,env:()=>E});var s=t("?db59"),o=t("?383f"),a=t("?fa4b");let n="3.8.1",i=typeof window<"u"&&typeof window.document<"u",l=typeof self<"u"&&["DedicatedWorkerGlobalScope","ServiceWorkerGlobalScope","SharedWorkerGlobalScope"].includes(self.constructor?.name),c=typeof self<"u"&&"caches"in self,_=typeof navigator<"u"&&"gpu"in navigator,u=typeof navigator<"u"&&"ml"in navigator,d=typeof process<"u",g=d&&process?.release?.name==="node",h=!D(s),x=!D(o),F=typeof globalThis.Deno<"u",v=typeof globalThis.Bun<"u",b=Object.freeze({IS_BROWSER_ENV:i,IS_WEBWORKER_ENV:l,IS_WEB_CACHE_AVAILABLE:c,IS_WEBGPU_AVAILABLE:_,IS_WEBNN_AVAILABLE:u,IS_PROCESS_AVAILABLE:d,IS_NODE_ENV:g,IS_FS_AVAILABLE:h,IS_PATH_AVAILABLE:x}),C=h&&x,y="./";if(C){let O=Object(import.meta).url;O?y=o.dirname(o.dirname(a.fileURLToPath(O))):typeof __dirname<"u"&&(y=o.dirname(__dirname))}let P=C?o.join(y,"/.cache/"):null,I="/models/",f=C?o.join(y,I):I,E={version:n,backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!(i||l),localModelPath:f,useFS:h,useBrowserCache:c&&!F,useFSCache:h,cacheDir:P,useCustomCache:!1,customCache:null};function D(O){return Object.keys(O).length===0}}),"./src/generation/configuration_utils.js":((e,r,t)=>{t.r(r),t.d(r,{GenerationConfig:()=>o});var s=t("./src/utils/core.js");class o{max_length=20;max_new_tokens=null;min_length=0;min_new_tokens=null;early_stopping=!1;max_time=null;do_sample=!1;num_beams=1;num_beam_groups=1;penalty_alpha=null;use_cache=!0;temperature=1;top_k=50;top_p=1;typical_p=1;epsilon_cutoff=0;eta_cutoff=0;diversity_penalty=0;repetition_penalty=1;encoder_repetition_penalty=1;length_penalty=1;no_repeat_ngram_size=0;bad_words_ids=null;force_words_ids=null;renormalize_logits=!1;constraints=null;forced_bos_token_id=null;forced_eos_token_id=null;remove_invalid_values=!1;exponential_decay_length_penalty=null;suppress_tokens=null;streamer=null;begin_suppress_tokens=null;forced_decoder_ids=null;guidance_scale=null;num_return_sequences=1;output_attentions=!1;output_hidden_states=!1;output_scores=!1;return_dict_in_generate=!1;pad_token_id=null;bos_token_id=null;eos_token_id=null;encoder_no_repeat_ngram_size=0;decoder_start_token_id=null;generation_kwargs={};constructor(n){Object.assign(this,(0,s.pick)(n,Object.getOwnPropertyNames(this)))}}}),"./src/generation/logits_process.js":((e,r,t)=>{t.r(r),t.d(r,{ClassifierFreeGuidanceLogitsProcessor:()=>b,ForcedBOSTokenLogitsProcessor:()=>c,ForcedEOSTokenLogitsProcessor:()=>_,LogitsProcessor:()=>n,LogitsProcessorList:()=>l,LogitsWarper:()=>i,MinLengthLogitsProcessor:()=>x,MinNewTokensLengthLogitsProcessor:()=>F,NoBadWordsLogitsProcessor:()=>v,NoRepeatNGramLogitsProcessor:()=>g,RepetitionPenaltyLogitsProcessor:()=>h,SuppressTokensAtBeginLogitsProcessor:()=>u,TemperatureLogitsWarper:()=>C,TopKLogitsWarper:()=>P,TopPLogitsWarper:()=>y,WhisperTimeStampLogitsProcessor:()=>d});var s=t("./src/utils/generic.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js");class n extends s.Callable{_call(f,E){throw Error("`_call` should be implemented in a subclass")}}class i extends s.Callable{_call(f,E){throw Error("`_call` should be implemented in a subclass")}}class l extends s.Callable{constructor(){super(),this.processors=[]}push(f){this.processors.push(f)}extend(f){this.processors.push(...f)}_call(f,E){let D=E;for(let O of this.processors)D=O(f,D);return D}[Symbol.iterator](){return this.processors.values()}}class c extends n{constructor(f){super(),this.bos_token_id=f}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length===1){let O=E[D].data;O.fill(-1/0),O[this.bos_token_id]=0}return E}}class _ extends n{constructor(f,E){super(),this.max_length=f,this.eos_token_id=Array.isArray(E)?E:[E]}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length===this.max_length-1){let O=E[D].data;O.fill(-1/0);for(let U of this.eos_token_id)O[U]=0}return E}}class u extends n{constructor(f,E){super(),this.begin_suppress_tokens=f,this.begin_index=E}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length===this.begin_index){let O=E[D].data;for(let U of this.begin_suppress_tokens)O[U]=-1/0}return E}}class d extends n{constructor(f,E){super(),this.eos_token_id=Array.isArray(f.eos_token_id)?f.eos_token_id[0]:f.eos_token_id,this.no_timestamps_token_id=f.no_timestamps_token_id,this.timestamp_begin=this.no_timestamps_token_id+1,this.begin_index=E.length,E.at(-1)===this.no_timestamps_token_id&&(this.begin_index-=1),this.max_initial_timestamp_index=f.max_initial_timestamp_index}_call(f,E){for(let D=0;D<f.length;++D){let O=E[D].data;if(O[this.no_timestamps_token_id]=-1/0,f[D].length===this.begin_index-1){O.fill(-1/0),O[this.timestamp_begin]=0;continue}let U=f[D].slice(this.begin_index),W=U.length>=1&&U[U.length-1]>=this.timestamp_begin,z=U.length<2||U[U.length-2]>=this.timestamp_begin;if(W&&(z?O.subarray(this.timestamp_begin).fill(-1/0):O.subarray(0,this.eos_token_id).fill(-1/0)),f[D].length===this.begin_index&&this.max_initial_timestamp_index!==null){let re=this.timestamp_begin+this.max_initial_timestamp_index;O.subarray(re+1).fill(-1/0)}let X=(0,a.log_softmax)(O),J=Math.log(X.subarray(this.timestamp_begin).map(Math.exp).reduce((re,oe)=>re+oe)),q=(0,a.max)(X.subarray(0,this.timestamp_begin))[0];J>q&&O.subarray(0,this.timestamp_begin).fill(-1/0)}return E}}class g extends n{constructor(f){super(),this.no_repeat_ngram_size=f}getNgrams(f){let E=f.length,D=[];for(let U=0;U<E+1-this.no_repeat_ngram_size;++U){let W=[];for(let z=0;z<this.no_repeat_ngram_size;++z)W.push(f[U+z]);D.push(W.map(Number))}let O=new Map;for(let U of D){let W=U.slice(0,U.length-1),z=JSON.stringify(W),X=O.get(z)??[];X.push(U[U.length-1]),O.set(z,X)}return O}getGeneratedNgrams(f,E){let D=E.slice(E.length+1-this.no_repeat_ngram_size,E.length);return f.get(JSON.stringify(D.map(Number)))??[]}calcBannedNgramTokens(f){let E=[];if(f.length+1<this.no_repeat_ngram_size)return E;{let D=this.getNgrams(f);return this.getGeneratedNgrams(D,f)}}_call(f,E){for(let D=0;D<f.length;++D){let O=E[D].data,U=this.calcBannedNgramTokens(f[D]);for(let W of U)O[W]=-1/0}return E}}class h extends n{constructor(f){super(),this.penalty=f}_call(f,E){for(let D=0;D<f.length;++D){let O=E[D].data;for(let U of new Set(f[D])){let W=Number(U);O[W]<0?O[W]*=this.penalty:O[W]/=this.penalty}}return E}}class x extends n{constructor(f,E){super(),this.min_length=f,this.eos_token_id=Array.isArray(E)?E:[E]}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length<this.min_length){let O=E[D].data;for(let U of this.eos_token_id)O[U]=-1/0}return E}}class F extends n{constructor(f,E,D){super(),this.prompt_length_to_skip=f,this.min_new_tokens=E,this.eos_token_id=Array.isArray(D)?D:[D]}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length-this.prompt_length_to_skip<this.min_new_tokens){let U=E[D].data;for(let W of this.eos_token_id)U[W]=-1/0}return E}}class v extends n{constructor(f,E){super(),this.bad_words_ids=f,this.eos_token_id=Array.isArray(E)?E:[E]}_call(f,E){for(let D=0;D<f.length;++D){let O=E[D].data,U=f[D];for(let W of this.bad_words_ids){if(U.length<W.length-1)continue;let z=!0;for(let X=1;X<=W.length-1;++X)if(W.at(-X-1)!=U.at(-X)){z=!1;break}z&&(O[W.at(-1)]=-1/0)}}return E}}class b extends n{constructor(f){if(super(),f<=1)throw new Error(`Require guidance scale >1 to use the classifier free guidance processor, got guidance scale ${f}.`);this.guidance_scale=f}_call(f,E){if(E.dims[0]!==2*f.length)throw new Error(`Logits should have twice the batch size of the input ids, the first half of batches corresponding to the conditional inputs, and the second half of batches corresponding to the unconditional inputs. Got batch size ${E.dims[0]} for the logits and ${f.length} for the input ids.`);let D=f.length,O=E.slice([0,D],null),U=E.slice([D,E.dims[0]],null);for(let W=0;W<U.data.length;++W)U.data[W]+=(O.data[W]-U.data[W])*this.guidance_scale;return U}}class C extends i{constructor(f){if(super(),typeof f!="number"||f<=0){let E=`\`temperature\` (=${f}) must be a strictly positive float, otherwise your next token scores will be invalid.`;f===0&&(E+=" If you're looking for greedy decoding strategies, set `do_sample=false`.")}this.temperature=f}_call(f,E){let D=E.data;for(let O=0;O<D.length;++O)D[O]/=this.temperature;return E}}class y extends i{constructor(f,{filter_value:E=-1/0,min_tokens_to_keep:D=1}={}){if(super(),f<0||f>1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${f}`);if(!Number.isInteger(D)||D<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${D}`);this.top_p=f,this.filter_value=E,this.min_tokens_to_keep=D}}class P extends i{constructor(f,{filter_value:E=-1/0,min_tokens_to_keep:D=1}={}){if(super(),!Number.isInteger(f)||f<0)throw new Error(`\`top_k\` must be a positive integer, but is ${f}`);this.top_k=Math.max(f,D),this.filter_value=E}}}),"./src/generation/logits_sampler.js":((e,r,t)=>{t.r(r),t.d(r,{LogitsSampler:()=>i});var s=t("./src/utils/generic.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js"),n=t("./src/generation/configuration_utils.js");class i extends s.Callable{constructor(d){super(),this.generation_config=d}async _call(d){return this.sample(d)}async sample(d){throw Error("sample should be implemented in subclasses.")}getLogits(d,g){let h=d.dims.at(-1),x=d.data;if(g===-1)x=x.slice(-h);else{let F=g*h;x=x.slice(F,F+h)}return x}randomSelect(d){let g=0;for(let x=0;x<d.length;++x)g+=d[x];let h=Math.random()*g;for(let x=0;x<d.length;++x)if(h-=d[x],h<=0)return x;return 0}static getSampler(d){if(d.do_sample)return new c(d);if(d.num_beams>1)return new _(d);if(d.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${d.num_return_sequences}.`);return new l(d)}}class l extends i{async sample(d){let g=(0,a.max)(d.data)[1];return[[BigInt(g),0]]}}class c extends i{async sample(d){let g=d.dims.at(-1);this.generation_config.top_k>0&&(g=Math.min(this.generation_config.top_k,g));let[h,x]=await(0,o.topk)(d,g),F=(0,a.softmax)(h.data);return Array.from({length:this.generation_config.num_beams},()=>{let v=this.randomSelect(F);return[x.data[v],Math.log(F[v])]})}}class _ extends i{async sample(d){let g=d.dims.at(-1);this.generation_config.top_k>0&&(g=Math.min(this.generation_config.top_k,g));let[h,x]=await(0,o.topk)(d,g),F=(0,a.softmax)(h.data);return Array.from({length:this.generation_config.num_beams},(v,b)=>[x.data[b],Math.log(F[b])])}}}),"./src/generation/stopping_criteria.js":((e,r,t)=>{t.r(r),t.d(r,{EosTokenCriteria:()=>i,InterruptableStoppingCriteria:()=>l,MaxLengthCriteria:()=>n,StoppingCriteria:()=>o,StoppingCriteriaList:()=>a});var s=t("./src/utils/generic.js");class o extends s.Callable{_call(_,u){throw Error("StoppingCriteria needs to be subclassed")}}class a extends s.Callable{constructor(){super(),this.criteria=[]}push(_){this.criteria.push(_)}extend(_){_ instanceof a?_=_.criteria:_ instanceof o&&(_=[_]),this.criteria.push(..._)}_call(_,u){let d=new Array(_.length).fill(!1);for(let g of this.criteria){let h=g(_,u);for(let x=0;x<d.length;++x)d[x]||=h[x]}return d}[Symbol.iterator](){return this.criteria.values()}}class n extends o{constructor(_,u=null){super(),this.max_length=_,this.max_position_embeddings=u}_call(_){return _.map(u=>u.length>=this.max_length)}}class i extends o{constructor(_){super(),Array.isArray(_)||(_=[_]),this.eos_token_id=_}_call(_,u){return _.map(d=>{let g=d.at(-1);return this.eos_token_id.some(h=>g==h)})}}class l extends o{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(_,u){return new Array(_.length).fill(this.interrupted)}}}),"./src/generation/streamers.js":((e,r,t)=>{t.r(r),t.d(r,{BaseStreamer:()=>n,TextStreamer:()=>l,WhisperTextStreamer:()=>c});var s=t("./src/utils/core.js"),o=t("./src/tokenizers.js"),a=t("./src/env.js");class n{put(u){throw Error("Not implemented")}end(){throw Error("Not implemented")}}let i=a.apis.IS_PROCESS_AVAILABLE?_=>process.stdout.write(_):_=>console.log(_);class l extends n{constructor(u,{skip_prompt:d=!1,callback_function:g=null,token_callback_function:h=null,skip_special_tokens:x=!0,decode_kwargs:F={},...v}={}){super(),this.tokenizer=u,this.skip_prompt=d,this.callback_function=g??i,this.token_callback_function=h,this.decode_kwargs={skip_special_tokens:x,...F,...v},this.token_cache=[],this.print_len=0,this.next_tokens_are_prompt=!0}put(u){if(u.length>1)throw Error("TextStreamer only supports batch size of 1");let d=this.next_tokens_are_prompt;if(d&&(this.next_tokens_are_prompt=!1,this.skip_prompt))return;let g=u[0];this.token_callback_function?.(g),this.token_cache=(0,s.mergeArrays)(this.token_cache,g);let h=this.tokenizer.decode(this.token_cache,this.decode_kwargs),x;d||h.endsWith(`
|
|
2837
2837
|
`)?(x=h.slice(this.print_len),this.token_cache=[],this.print_len=0):h.length>0&&(0,o.is_chinese_char)(h.charCodeAt(h.length-1))?(x=h.slice(this.print_len),this.print_len+=x.length):(x=h.slice(this.print_len,h.lastIndexOf(" ")+1),this.print_len+=x.length),this.on_finalized_text(x,!1)}end(){let u;this.token_cache.length>0?(u=this.tokenizer.decode(this.token_cache,this.decode_kwargs).slice(this.print_len),this.token_cache=[],this.print_len=0):u="",this.next_tokens_are_prompt=!0,this.on_finalized_text(u,!0)}on_finalized_text(u,d){u.length>0&&this.callback_function?.(u),d&&this.callback_function===i&&a.apis.IS_PROCESS_AVAILABLE&&this.callback_function?.(`
|
|
2838
|
-
`)}}class c extends l{constructor(u,{skip_prompt:d=!1,callback_function:g=null,token_callback_function:h=null,on_chunk_start:x=null,on_chunk_end:F=null,on_finalize:v=null,time_precision:b=.02,skip_special_tokens:C=!0,decode_kwargs:y={}}={}){super(u,{skip_prompt:d,skip_special_tokens:C,callback_function:g,token_callback_function:h,decode_kwargs:y}),this.timestamp_begin=u.timestamp_begin,this.on_chunk_start=x,this.on_chunk_end=F,this.on_finalize=v,this.time_precision=b,this.waiting_for_timestamp=!1}put(u){if(u.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");let d=u[0];if(d.length===1){let g=Number(d[0])-this.timestamp_begin;if(g>=0){let h=g*this.time_precision;this.waiting_for_timestamp?this.on_chunk_end?.(h):this.on_chunk_start?.(h),this.waiting_for_timestamp=!this.waiting_for_timestamp,this.token_callback_function?.(d);return}}return super.put(u)}end(){super.end(),this.on_finalize?.()}}}),"./src/models.js":((e,r,t)=>{t.r(r),t.d(r,{ASTForAudioClassification:()=>Cn,ASTModel:()=>kn,ASTPreTrainedModel:()=>Uo,AlbertForMaskedLM:()=>He,AlbertForQuestionAnswering:()=>Ze,AlbertForSequenceClassification:()=>Xe,AlbertModel:()=>Ye,AlbertPreTrainedModel:()=>Ce,ArceeForCausalLM:()=>Wn,ArceeModel:()=>Gs,ArceePreTrainedModel:()=>xr,AutoModel:()=>X0,AutoModelForAudioClassification:()=>hT,AutoModelForAudioFrameClassification:()=>gT,AutoModelForAudioTextToText:()=>ET,AutoModelForCTC:()=>mT,AutoModelForCausalLM:()=>sT,AutoModelForDepthEstimation:()=>vT,AutoModelForDocumentQuestionAnswering:()=>MT,AutoModelForImageClassification:()=>iT,AutoModelForImageFeatureExtraction:()=>TT,AutoModelForImageMatting:()=>wT,AutoModelForImageSegmentation:()=>lT,AutoModelForImageTextToText:()=>PT,AutoModelForImageToImage:()=>bT,AutoModelForMaskGeneration:()=>pT,AutoModelForMaskedLM:()=>oT,AutoModelForNormalEstimation:()=>xT,AutoModelForObjectDetection:()=>uT,AutoModelForPoseEstimation:()=>yT,AutoModelForQuestionAnswering:()=>aT,AutoModelForSemanticSegmentation:()=>cT,AutoModelForSeq2SeqLM:()=>Z0,AutoModelForSequenceClassification:()=>J0,AutoModelForSpeechSeq2Seq:()=>eT,AutoModelForTextToSpectrogram:()=>tT,AutoModelForTextToWaveform:()=>rT,AutoModelForTokenClassification:()=>Y0,AutoModelForUniversalSegmentation:()=>dT,AutoModelForVision2Seq:()=>nT,AutoModelForXVector:()=>fT,AutoModelForZeroShotObjectDetection:()=>_T,BartForConditionalGeneration:()=>Yt,BartForSequenceClassification:()=>vr,BartModel:()=>Zr,BartPretrainedModel:()=>Pr,BaseModelOutput:()=>ge,BeitForImageClassification:()=>G_,BeitModel:()=>U_,BeitPreTrainedModel:()=>Il,BertForMaskedLM:()=>ve,BertForQuestionAnswering:()=>fe,BertForSequenceClassification:()=>pe,BertForTokenClassification:()=>Pe,BertModel:()=>Ae,BertPreTrainedModel:()=>be,BlenderbotForConditionalGeneration:()=>wr,BlenderbotModel:()=>pr,BlenderbotPreTrainedModel:()=>lr,BlenderbotSmallForConditionalGeneration:()=>Ws,BlenderbotSmallModel:()=>Kr,BlenderbotSmallPreTrainedModel:()=>er,BloomForCausalLM:()=>p_,BloomModel:()=>__,BloomPreTrainedModel:()=>wl,CLIPModel:()=>qo,CLIPPreTrainedModel:()=>fs,CLIPSegForImageSegmentation:()=>fo,CLIPSegModel:()=>es,CLIPSegPreTrainedModel:()=>so,CLIPTextModel:()=>Rn,CLIPTextModelWithProjection:()=>Ea,CLIPVisionModel:()=>Nn,CLIPVisionModelWithProjection:()=>ka,CamembertForMaskedLM:()=>ce,CamembertForQuestionAnswering:()=>ut,CamembertForSequenceClassification:()=>xe,CamembertForTokenClassification:()=>et,CamembertModel:()=>Z,CamembertPreTrainedModel:()=>K,CausalLMOutput:()=>ao,CausalLMOutputWithPast:()=>CT,ChineseCLIPModel:()=>ho,ChineseCLIPPreTrainedModel:()=>Fa,ClapAudioModelWithProjection:()=>lh,ClapModel:()=>nh,ClapPreTrainedModel:()=>Jn,ClapTextModelWithProjection:()=>ih,CodeGenForCausalLM:()=>V,CodeGenModel:()=>B,CodeGenPreTrainedModel:()=>$,CohereForCausalLM:()=>Gu,CohereModel:()=>Uu,CoherePreTrainedModel:()=>cl,ConvBertForMaskedLM:()=>ft,ConvBertForQuestionAnswering:()=>Ss,ConvBertForSequenceClassification:()=>Cs,ConvBertForTokenClassification:()=>qt,ConvBertModel:()=>Rs,ConvBertPreTrainedModel:()=>Yr,ConvNextForImageClassification:()=>Rp,ConvNextModel:()=>zp,ConvNextPreTrainedModel:()=>Kl,ConvNextV2ForImageClassification:()=>jp,ConvNextV2Model:()=>Np,ConvNextV2PreTrainedModel:()=>Hl,DFineForObjectDetection:()=>op,DFineModel:()=>sp,DFinePreTrainedModel:()=>Bl,DINOv3ConvNextModel:()=>Qp,DINOv3ConvNextPreTrainedModel:()=>qp,DINOv3ViTModel:()=>Hp,DINOv3ViTPreTrainedModel:()=>Kp,DPTForDepthEstimation:()=>bp,DPTModel:()=>wp,DPTPreTrainedModel:()=>Wl,DacDecoderModel:()=>Xh,DacDecoderOutput:()=>Hh,DacEncoderModel:()=>Qh,DacEncoderOutput:()=>Kh,DacModel:()=>qh,DacPreTrainedModel:()=>oi,DebertaForMaskedLM:()=>tt,DebertaForQuestionAnswering:()=>Qt,DebertaForSequenceClassification:()=>gt,DebertaForTokenClassification:()=>Nt,DebertaModel:()=>wt,DebertaPreTrainedModel:()=>qe,DebertaV2ForMaskedLM:()=>Cr,DebertaV2ForQuestionAnswering:()=>Fs,DebertaV2ForSequenceClassification:()=>Lr,DebertaV2ForTokenClassification:()=>_s,DebertaV2Model:()=>Or,DebertaV2PreTrainedModel:()=>ur,DecisionTransformerModel:()=>Sh,DecisionTransformerPreTrainedModel:()=>Ch,DeiTForImageClassification:()=>cp,DeiTModel:()=>lp,DeiTPreTrainedModel:()=>Rl,DepthAnythingForDepthEstimation:()=>xp,DepthAnythingPreTrainedModel:()=>vp,DepthProForDepthEstimation:()=>kp,DepthProPreTrainedModel:()=>Ep,DetrForObjectDetection:()=>H_,DetrForSegmentation:()=>Al,DetrModel:()=>K_,DetrObjectDetectionOutput:()=>$l,DetrPreTrainedModel:()=>Un,DetrSegmentationOutput:()=>q_,Dinov2ForImageClassification:()=>Wp,Dinov2Model:()=>Vp,Dinov2PreTrainedModel:()=>ql,Dinov2WithRegistersForImageClassification:()=>Gp,Dinov2WithRegistersModel:()=>Up,Dinov2WithRegistersPreTrainedModel:()=>Ql,DistilBertForMaskedLM:()=>ar,DistilBertForQuestionAnswering:()=>Gr,DistilBertForSequenceClassification:()=>as,DistilBertForTokenClassification:()=>Nr,DistilBertModel:()=>Ns,DistilBertPreTrainedModel:()=>gr,DonutSwinModel:()=>Bp,DonutSwinPreTrainedModel:()=>Lp,EdgeTamModel:()=>nm,EfficientNetForImageClassification:()=>hh,EfficientNetModel:()=>mh,EfficientNetPreTrainedModel:()=>cc,ElectraForMaskedLM:()=>Xr,ElectraForQuestionAnswering:()=>N,ElectraForSequenceClassification:()=>k,ElectraForTokenClassification:()=>Q,ElectraModel:()=>St,ElectraPreTrainedModel:()=>Qr,Ernie4_5ForCausalLM:()=>th,Ernie4_5Model:()=>eh,Ernie4_5PreTrainedModel:()=>oc,EsmForMaskedLM:()=>Is,EsmForSequenceClassification:()=>As,EsmForTokenClassification:()=>$s,EsmModel:()=>ps,EsmPreTrainedModel:()=>_r,ExaoneForCausalLM:()=>$u,ExaoneModel:()=>Au,ExaonePreTrainedModel:()=>sl,FalconForCausalLM:()=>ah,FalconModel:()=>oh,FalconPreTrainedModel:()=>nc,FastViTForImageClassification:()=>$_,FastViTModel:()=>A_,FastViTPreTrainedModel:()=>El,Florence2ForConditionalGeneration:()=>$n,Florence2PreTrainedModel:()=>An,GLPNForDepthEstimation:()=>Op,GLPNModel:()=>Dp,GLPNPreTrainedModel:()=>Gl,GPT2LMHeadModel:()=>Da,GPT2Model:()=>$a,GPT2PreTrainedModel:()=>go,GPTBigCodeForCausalLM:()=>T,GPTBigCodeModel:()=>m,GPTBigCodePreTrainedModel:()=>ta,GPTJForCausalLM:()=>Ra,GPTJModel:()=>za,GPTJPreTrainedModel:()=>ea,GPTNeoForCausalLM:()=>Mo,GPTNeoModel:()=>La,GPTNeoPreTrainedModel:()=>Yo,GPTNeoXForCausalLM:()=>Ba,GPTNeoXModel:()=>Zo,GPTNeoXPreTrainedModel:()=>wo,Gemma2ForCausalLM:()=>Qu,Gemma2Model:()=>qu,Gemma2PreTrainedModel:()=>ul,Gemma3ForCausalLM:()=>Zu,Gemma3Model:()=>Yu,Gemma3PreTrainedModel:()=>pl,Gemma3nForConditionalGeneration:()=>Ta,Gemma3nPreTrainedModel:()=>Bn,GemmaForCausalLM:()=>Hu,GemmaModel:()=>Ku,GemmaPreTrainedModel:()=>dl,GlmForCausalLM:()=>Iu,GlmModel:()=>Fu,GlmPreTrainedModel:()=>rl,GraniteForCausalLM:()=>ju,GraniteModel:()=>Nu,GraniteMoeHybridForCausalLM:()=>Wu,GraniteMoeHybridModel:()=>Vu,GraniteMoeHybridPreTrainedModel:()=>ll,GranitePreTrainedModel:()=>il,GroundingDinoForObjectDetection:()=>Jp,GroundingDinoPreTrainedModel:()=>Xp,GroupViTModel:()=>I_,GroupViTPreTrainedModel:()=>F_,HeliumForCausalLM:()=>Su,HeliumModel:()=>Cu,HeliumPreTrainedModel:()=>tl,HieraForImageClassification:()=>up,HieraModel:()=>dp,HieraPreTrainedModel:()=>Nl,HubertForCTC:()=>$m,HubertForSequenceClassification:()=>Dm,HubertModel:()=>Am,HubertPreTrainedModel:()=>B0,IJepaForImageClassification:()=>v_,IJepaModel:()=>b_,IJepaPreTrainedModel:()=>yl,Idefics3ForConditionalGeneration:()=>hs,Idefics3PreTrainedModel:()=>mo,ImageMattingOutput:()=>Cf,JAISLMHeadModel:()=>Oa,JAISModel:()=>Jo,JAISPreTrainedModel:()=>Xo,JinaCLIPModel:()=>Vn,JinaCLIPPreTrainedModel:()=>ct,JinaCLIPTextModel:()=>Ia,JinaCLIPVisionModel:()=>Aa,Lfm2ForCausalLM:()=>Pu,Lfm2Model:()=>Tu,Lfm2PreTrainedModel:()=>Zi,LiteWhisperForConditionalGeneration:()=>Sn,Llama4ForCausalLM:()=>nt,Llama4PreTrainedModel:()=>Je,LlamaForCausalLM:()=>Be,LlamaModel:()=>Ee,LlamaPreTrainedModel:()=>ie,LlavaForConditionalGeneration:()=>ro,LlavaOnevisionForConditionalGeneration:()=>xa,LlavaPreTrainedModel:()=>va,LlavaQwen2ForCausalLM:()=>ya,LongT5ForConditionalGeneration:()=>Br,LongT5Model:()=>nr,LongT5PreTrainedModel:()=>Mr,M2M100ForConditionalGeneration:()=>um,M2M100Model:()=>dm,M2M100PreTrainedModel:()=>Yl,MBartForCausalLM:()=>is,MBartForConditionalGeneration:()=>ms,MBartForSequenceClassification:()=>Fr,MBartModel:()=>Jr,MBartPreTrainedModel:()=>Sr,MPNetForMaskedLM:()=>Ds,MPNetForQuestionAnswering:()=>de,MPNetForSequenceClassification:()=>Vs,MPNetForTokenClassification:()=>Wo,MPNetModel:()=>js,MPNetPreTrainedModel:()=>Ht,MT5ForConditionalGeneration:()=>zr,MT5Model:()=>Tr,MT5PreTrainedModel:()=>ir,MarianMTModel:()=>cm,MarianModel:()=>lm,MarianPreTrainedModel:()=>Jl,MaskFormerForInstanceSegmentation:()=>$p,MaskFormerModel:()=>Ap,MaskFormerPreTrainedModel:()=>Ul,MaskedLMOutput:()=>Ir,Metric3DForDepthEstimation:()=>Sp,Metric3DPreTrainedModel:()=>Cp,Metric3Dv2ForDepthEstimation:()=>Ip,Metric3Dv2PreTrainedModel:()=>Fp,MgpstrForSceneTextRecognition:()=>Dh,MgpstrModelOutput:()=>Ah,MgpstrPreTrainedModel:()=>$h,MimiDecoderModel:()=>Gh,MimiDecoderOutput:()=>Vh,MimiEncoderModel:()=>Uh,MimiEncoderOutput:()=>jh,MimiModel:()=>Wh,MimiPreTrainedModel:()=>si,Ministral3ForCausalLM:()=>Zm,Ministral3Model:()=>Ym,Ministral3PreTrainedModel:()=>sc,MinistralForCausalLM:()=>Jm,MinistralModel:()=>Xm,MinistralPreTrainedModel:()=>rc,Mistral3ForConditionalGeneration:()=>Ln,MistralForCausalLM:()=>Qm,MistralModel:()=>qm,MistralPreTrainedModel:()=>tc,MobileBertForMaskedLM:()=>ze,MobileBertForQuestionAnswering:()=>at,MobileBertForSequenceClassification:()=>Ue,MobileBertModel:()=>Wr,MobileBertPreTrainedModel:()=>ns,MobileLLMForCausalLM:()=>Ou,MobileLLMModel:()=>Du,MobileLLMPreTrainedModel:()=>ol,MobileNetV1ForImageClassification:()=>gh,MobileNetV1ForSemanticSegmentation:()=>Mh,MobileNetV1Model:()=>fh,MobileNetV1PreTrainedModel:()=>Zn,MobileNetV2ForImageClassification:()=>bh,MobileNetV2ForSemanticSegmentation:()=>vh,MobileNetV2Model:()=>wh,MobileNetV2PreTrainedModel:()=>ei,MobileNetV3ForImageClassification:()=>yh,MobileNetV3ForSemanticSegmentation:()=>Th,MobileNetV3Model:()=>xh,MobileNetV3PreTrainedModel:()=>ti,MobileNetV4ForImageClassification:()=>Eh,MobileNetV4ForSemanticSegmentation:()=>kh,MobileNetV4Model:()=>Ph,MobileNetV4PreTrainedModel:()=>ri,MobileViTForImageClassification:()=>B_,MobileViTModel:()=>L_,MobileViTPreTrainedModel:()=>kl,MobileViTV2ForImageClassification:()=>R_,MobileViTV2Model:()=>z_,MobileViTV2PreTrainedModel:()=>Cl,ModelOutput:()=>le,ModernBertDecoderForCausalLM:()=>Lt,ModernBertDecoderModel:()=>At,ModernBertDecoderPreTrainedModel:()=>bt,ModernBertForMaskedLM:()=>je,ModernBertForSequenceClassification:()=>pt,ModernBertForTokenClassification:()=>Ke,ModernBertModel:()=>Qe,ModernBertPreTrainedModel:()=>De,Moondream1ForConditionalGeneration:()=>In,MoonshineForConditionalGeneration:()=>Fn,MoonshineModel:()=>Yi,MoonshinePreTrainedModel:()=>Ko,MptForCausalLM:()=>h_,MptModel:()=>m_,MptPreTrainedModel:()=>bl,MultiModalityCausalLM:()=>Ih,MultiModalityPreTrainedModel:()=>Fh,MusicgenForCausalLM:()=>j0,MusicgenForConditionalGeneration:()=>uc,MusicgenModel:()=>N0,MusicgenPreTrainedModel:()=>dc,NanoChatForCausalLM:()=>Wt,NanoChatModel:()=>Dt,NanoChatPreTrainedModel:()=>Tt,NeoBertForMaskedLM:()=>$e,NeoBertForQuestionAnswering:()=>ot,NeoBertForSequenceClassification:()=>Re,NeoBertForTokenClassification:()=>Ne,NeoBertModel:()=>We,NeoBertPreTrainedModel:()=>Te,NomicBertModel:()=>zt,NomicBertPreTrainedModel:()=>fr,OPTForCausalLM:()=>g_,OPTModel:()=>f_,OPTPreTrainedModel:()=>vl,Olmo2ForCausalLM:()=>Ru,Olmo2Model:()=>zu,Olmo2PreTrainedModel:()=>nl,OlmoForCausalLM:()=>Bu,OlmoModel:()=>Lu,OlmoPreTrainedModel:()=>al,OpenELMForCausalLM:()=>t_,OpenELMModel:()=>e_,OpenELMPreTrainedModel:()=>ml,OwlViTForObjectDetection:()=>j_,OwlViTModel:()=>N_,OwlViTPreTrainedModel:()=>Sl,Owlv2ForObjectDetection:()=>W_,Owlv2Model:()=>V_,Owlv2PreTrainedModel:()=>Fl,PaliGemmaForConditionalGeneration:()=>On,PaliGemmaPreTrainedModel:()=>Dn,ParakeetForCTC:()=>gm,ParakeetPreTrainedModel:()=>fm,PatchTSMixerForPrediction:()=>zh,PatchTSMixerModel:()=>Bh,PatchTSMixerPreTrainedModel:()=>pc,PatchTSTForPrediction:()=>Lh,PatchTSTModel:()=>Oh,PatchTSTPreTrainedModel:()=>_c,Phi3ForCausalLM:()=>u_,Phi3Model:()=>d_,Phi3PreTrainedModel:()=>Ml,Phi3VForCausalLM:()=>Pa,Phi3VPreTrainedModel:()=>zn,PhiForCausalLM:()=>c_,PhiModel:()=>l_,PhiPreTrainedModel:()=>gl,PreTrainedModel:()=>A,PretrainedMixin:()=>Ut,PvtForImageClassification:()=>P_,PvtModel:()=>T_,PvtPreTrainedModel:()=>Tl,PyAnnoteForAudioFrameClassification:()=>wm,PyAnnoteModel:()=>Mm,PyAnnotePreTrainedModel:()=>Zl,QuestionAnsweringModelOutput:()=>jr,Qwen2ForCausalLM:()=>s_,Qwen2Model:()=>r_,Qwen2PreTrainedModel:()=>hl,Qwen2VLForConditionalGeneration:()=>i_,Qwen2VLPreTrainedModel:()=>n_,Qwen3ForCausalLM:()=>a_,Qwen3Model:()=>o_,Qwen3PreTrainedModel:()=>fl,RFDetrForObjectDetection:()=>tp,RFDetrModel:()=>ep,RFDetrObjectDetectionOutput:()=>rp,RFDetrPreTrainedModel:()=>Ll,RTDetrForObjectDetection:()=>X_,RTDetrModel:()=>Q_,RTDetrObjectDetectionOutput:()=>Na,RTDetrPreTrainedModel:()=>Dl,RTDetrV2ForObjectDetection:()=>Y_,RTDetrV2Model:()=>J_,RTDetrV2ObjectDetectionOutput:()=>Z_,RTDetrV2PreTrainedModel:()=>Ol,ResNetForImageClassification:()=>pp,ResNetModel:()=>_p,ResNetPreTrainedModel:()=>jl,RoFormerForMaskedLM:()=>Ys,RoFormerForQuestionAnswering:()=>Dr,RoFormerForSequenceClassification:()=>Zs,RoFormerForTokenClassification:()=>or,RoFormerModel:()=>zs,RoFormerPreTrainedModel:()=>yr,RobertaForMaskedLM:()=>fn,RobertaForQuestionAnswering:()=>Mn,RobertaForSequenceClassification:()=>fa,RobertaForTokenClassification:()=>gn,RobertaModel:()=>hn,RobertaPreTrainedModel:()=>Os,Sam2ImageSegmentationOutput:()=>om,Sam2Model:()=>Hn,Sam2PreTrainedModel:()=>am,Sam3TrackerModel:()=>im,SamImageSegmentationOutput:()=>sm,SamModel:()=>rm,SamPreTrainedModel:()=>tm,SapiensForDepthEstimation:()=>Tp,SapiensForNormalEstimation:()=>Pp,SapiensForSemanticSegmentation:()=>yp,SapiensPreTrainedModel:()=>Kn,SegformerForImageClassification:()=>dh,SegformerForSemanticSegmentation:()=>uh,SegformerModel:()=>R0,SegformerPreTrainedModel:()=>Yn,Seq2SeqLMOutput:()=>kT,SequenceClassifierOutput:()=>Pt,SiglipModel:()=>Ca,SiglipPreTrainedModel:()=>Qo,SiglipTextModel:()=>jn,SiglipVisionModel:()=>Sa,SmolLM3ForCausalLM:()=>ku,SmolLM3Model:()=>Eu,SmolLM3PreTrainedModel:()=>el,SmolVLMForConditionalGeneration:()=>Ho,SnacDecoderModel:()=>Zh,SnacEncoderModel:()=>Yh,SnacModel:()=>Jh,SnacPreTrainedModel:()=>ai,SpeechT5ForSpeechToText:()=>Vm,SpeechT5ForTextToSpeech:()=>Wm,SpeechT5HifiGan:()=>Um,SpeechT5Model:()=>z0,SpeechT5PreTrainedModel:()=>Xn,SqueezeBertForMaskedLM:()=>te,SqueezeBertForQuestionAnswering:()=>me,SqueezeBertForSequenceClassification:()=>se,SqueezeBertModel:()=>G,SqueezeBertPreTrainedModel:()=>S,StableLmForCausalLM:()=>ph,StableLmModel:()=>_h,StableLmPreTrainedModel:()=>lc,Starcoder2ForCausalLM:()=>sh,Starcoder2Model:()=>rh,Starcoder2PreTrainedModel:()=>ac,StyleTextToSpeech2Model:()=>jm,StyleTextToSpeech2PreTrainedModel:()=>Nm,SupertonicForConditionalGeneration:()=>ec,SupertonicPreTrainedModel:()=>Gm,Swin2SRForImageSuperResolution:()=>Mp,Swin2SRModel:()=>gp,Swin2SRPreTrainedModel:()=>Vl,SwinForImageClassification:()=>hp,SwinForSemanticSegmentation:()=>fp,SwinModel:()=>mp,SwinPreTrainedModel:()=>Gn,T5ForConditionalGeneration:()=>Xt,T5Model:()=>yt,T5PreTrainedModel:()=>It,TableTransformerForObjectDetection:()=>np,TableTransformerModel:()=>ap,TableTransformerObjectDetectionOutput:()=>ip,TableTransformerPreTrainedModel:()=>zl,TokenClassifierOutput:()=>Er,TrOCRForCausalLM:()=>Hm,TrOCRPreTrainedModel:()=>Km,UltravoxModel:()=>mc,UltravoxPreTrainedModel:()=>Rh,UniSpeechForCTC:()=>ym,UniSpeechForSequenceClassification:()=>Tm,UniSpeechModel:()=>xm,UniSpeechPreTrainedModel:()=>qn,UniSpeechSatForAudioFrameClassification:()=>Cm,UniSpeechSatForCTC:()=>Em,UniSpeechSatForSequenceClassification:()=>km,UniSpeechSatModel:()=>Pm,UniSpeechSatPreTrainedModel:()=>ja,VaultGemmaForCausalLM:()=>Ju,VaultGemmaModel:()=>Xu,VaultGemmaPreTrainedModel:()=>_l,ViTForImageClassification:()=>w_,ViTMAEModel:()=>k_,ViTMAEPreTrainedModel:()=>E_,ViTMSNForImageClassification:()=>S_,ViTMSNModel:()=>C_,ViTMSNPreTrainedModel:()=>Pl,ViTModel:()=>M_,ViTPreTrainedModel:()=>xl,VisionEncoderDecoderModel:()=>ba,VitMatteForImageMatting:()=>O_,VitMattePreTrainedModel:()=>D_,VitPoseForPoseEstimation:()=>y_,VitPosePreTrainedModel:()=>x_,VitsModel:()=>ic,VitsModelOutput:()=>Sf,VitsPreTrainedModel:()=>ch,VoxtralForConditionalGeneration:()=>Nh,Wav2Vec2BertForCTC:()=>Fm,Wav2Vec2BertForSequenceClassification:()=>Im,Wav2Vec2BertModel:()=>Sm,Wav2Vec2BertPreTrainedModel:()=>Qn,Wav2Vec2ForAudioFrameClassification:()=>hm,Wav2Vec2ForCTC:()=>pm,Wav2Vec2ForSequenceClassification:()=>mm,Wav2Vec2Model:()=>_m,Wav2Vec2PreTrainedModel:()=>oo,WavLMForAudioFrameClassification:()=>Rm,WavLMForCTC:()=>Lm,WavLMForSequenceClassification:()=>Bm,WavLMForXVector:()=>zm,WavLMModel:()=>Om,WavLMPreTrainedModel:()=>ra,WeSpeakerResNetModel:()=>vm,WeSpeakerResNetPreTrainedModel:()=>bm,WhisperForConditionalGeneration:()=>Us,WhisperModel:()=>wa,WhisperPreTrainedModel:()=>Go,XLMForQuestionAnswering:()=>yn,XLMForSequenceClassification:()=>vn,XLMForTokenClassification:()=>xn,XLMModel:()=>wn,XLMPreTrainedModel:()=>eo,XLMRobertaForMaskedLM:()=>Pn,XLMRobertaForQuestionAnswering:()=>Ma,XLMRobertaForSequenceClassification:()=>En,XLMRobertaForTokenClassification:()=>ga,XLMRobertaModel:()=>Tn,XLMRobertaPreTrainedModel:()=>to,XLMWithLMHeadModel:()=>bn,XVectorOutput:()=>kf,YolosForObjectDetection:()=>Zp,YolosModel:()=>Yp,YolosObjectDetectionOutput:()=>em,YolosPreTrainedModel:()=>Xl});var s=t("./src/configs.js"),o=t("./src/backends/onnx.js"),a=t("./src/utils/dtypes.js"),n=t("./src/utils/generic.js"),i=t("./src/utils/core.js"),l=t("./src/utils/hub.js"),c=t("./src/utils/constants.js"),_=t("./src/generation/logits_process.js"),u=t("./src/generation/configuration_utils.js"),d=t("./src/utils/tensor.js"),g=t("./src/utils/image.js"),h=t("./src/utils/maths.js"),x=t("./src/generation/stopping_criteria.js"),F=t("./src/generation/logits_sampler.js"),v=t("./src/env.js"),b=t("./src/models/whisper/generation_whisper.js"),C=t("./src/models/whisper/common_whisper.js");let y={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5,ImageTextToText:6,Musicgen:7,MultiModality:8,Phi3V:9,AudioTextToText:10,AutoEncoder:11,ImageAudioTextToText:12,Supertonic:13},P=new Map,I=new Map,f=new Map;async function E(M,w,j){let ae=j.config?.["transformers.js_config"]??{},_e=j.device??ae.device;_e&&typeof _e!="string"&&(_e.hasOwnProperty(w)?_e=_e[w]:(console.warn(`device not specified for "${w}". Using the default device.`),_e=null));let he=_e??(v.apis.IS_NODE_ENV?"cpu":"wasm"),Se=(0,o.deviceToExecutionProviders)(he),Oe=ae.device_config??{};Oe.hasOwnProperty(he)&&(ae={...ae,...Oe[he]});let Ge=j.dtype??ae.dtype;if(typeof Ge!="string"&&(Ge&&Ge.hasOwnProperty(w)?Ge=Ge[w]:(Ge=a.DEFAULT_DEVICE_DTYPE_MAPPING[he]??a.DATA_TYPES.fp32,console.warn(`dtype not specified for "${w}". Using the default dtype (${Ge}) for this device (${he}).`))),Ge===a.DATA_TYPES.auto){let Ft=ae.dtype;typeof Ft!="string"&&(Ft=Ft?.[w]),Ft&&Ft!==a.DATA_TYPES.auto&&a.DATA_TYPES.hasOwnProperty(Ft)?Ge=Ft:Ge=a.DEFAULT_DEVICE_DTYPE_MAPPING[he]??a.DATA_TYPES.fp32}let st=Ge;if(a.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(st)){if(st===a.DATA_TYPES.fp16&&he==="webgpu"&&!await(0,a.isWebGpuFp16Supported)())throw new Error(`The device (${he}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${st}. Should be one of: ${Object.keys(a.DATA_TYPES).join(", ")}`);let vt=ae.kv_cache_dtype,xt=vt?typeof vt=="string"?vt:vt[st]??"float32":void 0;if(xt&&!["float32","float16"].includes(xt))throw new Error(`Invalid kv_cache_dtype: ${xt}. Should be one of: float32, float16`);let Et={dtype:st,kv_cache_dtype:xt,device:he},mt=a.DEFAULT_DTYPE_SUFFIX_MAPPING[st],Bt=`${w}${mt}.onnx`,ht=`${j.subfolder??""}/${Bt}`,_t={...j.session_options};_t.executionProviders??=Se;let $t=ae.free_dimension_overrides;$t?_t.freeDimensionOverrides??=$t:he.startsWith("webnn")&&!_t.freeDimensionOverrides&&console.warn(`WebNN does not currently support dynamic shapes and requires 'free_dimension_overrides' to be set in config.json, preferably as a field within config["transformers.js_config"]["device_config"]["${he}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);let Gt=v.apis.IS_NODE_ENV&&v.env.useFSCache,tr=(0,l.getModelFile)(M,ht,!0,j,Gt),sr=j.use_external_data_format??ae.use_external_data_format,mr=[];if(sr){let Ft;typeof sr=="object"?sr.hasOwnProperty(Bt)?Ft=sr[Bt]:sr.hasOwnProperty(w)?Ft=sr[w]:Ft=!1:Ft=sr;let cr=+Ft;if(cr>l.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${cr}) exceeds the maximum allowed value (${l.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let Ar=0;Ar<cr;++Ar){let bo=`${Bt}_data${Ar===0?"":"_"+Ar}`,Hr=`${j.subfolder??""}/${bo}`;mr.push(new Promise(async(gs,oa)=>{let aa=await(0,l.getModelFile)(M,Hr,!0,j,Gt);gs(aa instanceof Uint8Array?{path:bo,data:aa}:bo)}))}}else _t.externalData!==void 0&&(mr=_t.externalData.map(async Ft=>{if(typeof Ft.data=="string"){let cr=await(0,l.getModelFile)(M,Ft.data,!0,j);return{...Ft,data:cr}}return Ft}));if(mr.length>0){let Ft=await Promise.all(mr);v.apis.IS_NODE_ENV||(_t.externalData=Ft)}if(he==="webgpu"){let Ft=(0,s.getCacheShapes)(j.config,{prefix:"present"});if(Object.keys(Ft).length>0&&!(0,o.isONNXProxy)()){let cr={};for(let Ar in Ft)cr[Ar]="gpu-buffer";_t.preferredOutputLocation=cr}}return{buffer_or_path:await tr,session_options:_t,session_config:Et}}async function D(M,w,j){return Object.fromEntries(await Promise.all(Object.keys(w).map(async ae=>{let{buffer_or_path:_e,session_options:he,session_config:Se}=await E(M,w[ae],j),Oe=await(0,o.createInferenceSession)(_e,he,Se);return[ae,Oe]})))}async function O(M,w,j){return Object.fromEntries(await Promise.all(Object.keys(w).map(async ae=>{let _e=await(0,l.getModelJSON)(M,w[ae],!1,j);return[ae,_e]})))}function U(M,w){let j=Object.create(null),ae=[];for(let Se of M.inputNames){let Oe=w[Se];if(!(Oe instanceof d.Tensor)){ae.push(Se);continue}j[Se]=(0,o.isONNXProxy)()?Oe.clone():Oe}if(ae.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${ae.join(", ")}.`);let _e=Object.keys(w).length,he=M.inputNames.length;if(_e>he){let Se=Object.keys(w).filter(Oe=>!M.inputNames.includes(Oe));console.warn(`WARNING: Too many inputs were provided (${_e} > ${he}). The following inputs will be ignored: "${Se.join(", ")}".`)}return j}async function W(M,w){let j=U(M,w);try{let ae=Object.fromEntries(Object.entries(j).map(([he,Se])=>[he,Se.ort_tensor])),_e=await(0,o.runInferenceSession)(M,ae);return z(_e)}catch(ae){let _e=Object.fromEntries(Object.entries(j).map(([he,Se])=>{let Oe={type:Se.type,dims:Se.dims,location:Se.location};return Oe.location!=="gpu-buffer"&&(Oe.data=Se.data),[he,Oe]}));throw console.error(`An error occurred during model execution: "${ae}".`),console.error("Inputs given to model:",_e),ae}}function z(M){for(let w in M)(0,o.isONNXTensor)(M[w])?M[w]=new d.Tensor(M[w]):typeof M[w]=="object"&&z(M[w]);return M}function X(M){if(M instanceof d.Tensor)return M;if(M.length===0)throw Error("items must be non-empty");if(Array.isArray(M[0])){if(M.some(w=>w.length!==M[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new d.Tensor("int64",BigInt64Array.from(M.flat().map(w=>BigInt(w))),[M.length,M[0].length])}else return new d.Tensor("int64",BigInt64Array.from(M.map(w=>BigInt(w))),[1,M.length])}function J(M){return new d.Tensor("bool",[M],[1])}async function q(M,w){let{encoder_outputs:j,input_ids:ae,decoder_input_ids:_e,...he}=w;if(!j){let Oe=(0,i.pick)(w,M.sessions.model.inputNames);j=(await re(M,Oe)).last_hidden_state}return he.input_ids=_e,he.encoder_hidden_states=j,M.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(he.encoder_attention_mask=w.attention_mask),await ne(M,he,!0)}async function re(M,w){let j=M.sessions.model,ae=(0,i.pick)(w,j.inputNames);if(j.inputNames.includes("inputs_embeds")&&!ae.inputs_embeds){if(!w.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");ae.inputs_embeds=await M.encode_text({input_ids:w.input_ids})}if(j.inputNames.includes("token_type_ids")&&!ae.token_type_ids){if(!ae.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");ae.token_type_ids=(0,d.zeros_like)(ae.input_ids)}if(j.inputNames.includes("pixel_mask")&&!ae.pixel_mask){if(!ae.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");let _e=ae.pixel_values.dims;ae.pixel_mask=(0,d.ones)([_e[0],_e[2],_e[3]])}return await W(j,ae)}async function oe(M,w){let j=await M.encode(w);return await M.decode(j)}async function ne(M,w,j=!1){let ae=M.sessions[j?"decoder_model_merged":"model"],{past_key_values:_e,...he}=w;if(ae.inputNames.includes("use_cache_branch")&&(he.use_cache_branch=J(!!_e)),ae.inputNames.includes("position_ids")&&he.attention_mask&&!he.position_ids){let Oe=["paligemma","gemma3_text","gemma3"].includes(M.config.model_type)?1:0;he.position_ids=ke(he,_e,Oe)}M.addPastKeyValues(he,_e);let Se=(0,i.pick)(he,ae.inputNames);return await W(ae,Se)}function ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e}){let he=ae.tolist().map(st=>st.reduce((vt,xt,Et)=>(xt==M&&vt.push(Et),vt),[])),Se=he.reduce((st,vt)=>st+vt.length,0),Oe=j.dims[0];if(Se!==Oe)throw new Error(`Number of tokens and features do not match: tokens: ${Se}, features ${Oe}`);let Ge=0;for(let st=0;st<he.length;++st){let vt=he[st],xt=w[st];for(let Et=0;Et<vt.length;++Et)xt[vt[Et]].data.set(j[Ge++].data)}return{inputs_embeds:w,attention_mask:_e}}function Y({image_token_id:M,inputs_embeds:w,image_features:j,input_ids:ae,attention_mask:_e}){return ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e})}function H({audio_token_id:M,inputs_embeds:w,audio_features:j,input_ids:ae,attention_mask:_e}){return ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e})}async function R(M,{encode_function:w,merge_function:j,modality_input_name:ae,modality_output_name:_e,input_ids:he=null,attention_mask:Se=null,position_ids:Oe=null,inputs_embeds:Ge=null,past_key_values:st=null,generation_config:vt=null,logits_processor:xt=null,...Et}){let mt=Et[ae];if(!Ge){if(Ge=await M.encode_text({input_ids:he,...Et}),mt&&he.dims[1]!==1){let ht=await w({[ae]:mt,...Et});({inputs_embeds:Ge,attention_mask:Se}=j({[_e]:ht,inputs_embeds:Ge,input_ids:he,attention_mask:Se}))}else if(st&&mt&&he.dims[1]===1){let ht=he.dims[1],_t=Object.values(st)[0].dims.at(-2);Se=(0,d.cat)([(0,d.ones)([he.dims[0],_t]),Se.slice(null,[Se.dims[1]-ht,Se.dims[1]])],1)}}if(!Oe&&M.config.model_type==="qwen2_vl"){let{image_grid_thw:ht,video_grid_thw:_t}=Et;[Oe]=M.get_rope_index(he,ht,_t,Se)}return await ne(M,{inputs_embeds:Ge,past_key_values:st,attention_mask:Se,position_ids:Oe,generation_config:vt,logits_processor:xt},!0)}async function L(M,w){return await R(M,{...w,modality_input_name:"audio_values",modality_output_name:"audio_features",encode_function:M.encode_audio.bind(M),merge_function:M._merge_input_ids_with_audio_features.bind(M)})}async function ee(M,w){return await R(M,{...w,modality_input_name:"pixel_values",modality_output_name:"image_features",encode_function:M.encode_image.bind(M),merge_function:M._merge_input_ids_with_image_features.bind(M)})}function ue(M,w=0){let[j,ae]=M.dims,_e=M.data,he=new BigInt64Array(_e.length);for(let Se=0;Se<j;++Se){let Oe=Se*ae,Ge=BigInt(w);for(let st=0;st<ae;++st){let vt=Oe+st;_e[vt]===0n?he[vt]=BigInt(1):(he[vt]=Ge,Ge+=_e[vt])}}return{data:he,dims:M.dims}}function ke(M,w=null,j=0){let{input_ids:ae,inputs_embeds:_e,attention_mask:he}=M,{data:Se,dims:Oe}=ue(he,j),Ge=new d.Tensor("int64",Se,Oe);if(w){let st=-(ae??_e).dims.at(1);Ge=Ge.slice(null,[st,null])}return Ge}function Ie(M,w,j,ae){let _e=j.past_key_values?Object.values(j.past_key_values)[0].dims.at(-2):0;if(!j.attention_mask){let he;for(let Se of["input_ids","inputs_embeds","position_ids"])if(j[Se]){he=j[Se].dims;break}if(!he)throw new Error("attention_mask is not provided, and unable to infer its shape from model inputs.");j.attention_mask=(0,d.ones)([he[0],_e+he[1]])}if(j.past_key_values){let{input_ids:he,attention_mask:Se}=j;Se&&Se.dims[1]>he.dims[1]||_e<he.dims[1]&&(j.input_ids=he.slice(null,[_e,null]))}return j}function Le(M,w,j,ae){return j.past_key_values&&(w=w.map(_e=>[_e.at(-1)])),{...j,decoder_input_ids:X(w)}}function rt(M,...w){return M.config.is_encoder_decoder?Le(M,...w):Ie(M,...w)}function we(M,w,j,ae){let _e=!!j.past_key_values;return ae.guidance_scale!==null&&ae.guidance_scale>1&&(_e?j.input_ids=(0,d.cat)([j.input_ids,j.input_ids],0):(j.input_ids=(0,d.cat)([j.input_ids,(0,d.full_like)(j.input_ids,BigInt(ae.pad_token_id))],0),j.attention_mask=(0,d.cat)([j.attention_mask,(0,d.full_like)(j.attention_mask,0n)],0))),(_e||!j.pixel_values)&&(j.pixel_values=(0,d.full)([0,0,3,384,384],1)),_e&&(j.images_seq_mask=new d.Tensor("bool",new Array(1).fill(!0).fill(!1,0,1),[1,1]),j.images_emb_mask=new d.Tensor("bool",new Array(0).fill(!1),[1,1,0])),j}class A extends n.Callable{main_input_name="input_ids";forward_params=["input_ids","attention_mask"];constructor(w,j,ae){super(),this.config=w,this.sessions=j,this.configs=ae;let _e=f.get(this.constructor),he=P.get(_e);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,he){case y.DecoderOnly:this.can_generate=!0,this._forward=ne,this._prepare_inputs_for_generation=Ie;break;case y.Seq2Seq:case y.Vision2Seq:case y.Musicgen:this.can_generate=!0,this._forward=q,this._prepare_inputs_for_generation=Le;break;case y.EncoderDecoder:this._forward=q;break;case y.ImageTextToText:this.can_generate=!0,this._forward=ee,this._prepare_inputs_for_generation=rt;break;case y.AudioTextToText:this.can_generate=!0,this._forward=L,this._prepare_inputs_for_generation=rt;break;case y.Phi3V:case y.ImageAudioTextToText:this.can_generate=!0,this._prepare_inputs_for_generation=rt;break;case y.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=we;break;case y.AutoEncoder:this._forward=oe;break;default:this._forward=re;break}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){let w=[];for(let j of Object.values(this.sessions))j?.handler?.dispose&&w.push(j.handler.dispose());return await Promise.all(w)}static async from_pretrained(w,{progress_callback:j=null,config:ae=null,cache_dir:_e=null,local_files_only:he=!1,revision:Se="main",model_file_name:Oe=null,subfolder:Ge="onnx",device:st=null,dtype:vt=null,use_external_data_format:xt=null,session_options:Et={}}={}){let mt={progress_callback:j,config:ae,cache_dir:_e,local_files_only:he,revision:Se,model_file_name:Oe,subfolder:Ge,device:st,dtype:vt,use_external_data_format:xt,session_options:Et},Bt=f.get(this),ht=P.get(Bt);ae=mt.config=await s.AutoConfig.from_pretrained(w,mt);let _t;if(ht===y.DecoderOnly)_t=await Promise.all([D(w,{model:mt.model_file_name??"model"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.Seq2Seq||ht===y.Vision2Seq)_t=await Promise.all([D(w,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.MaskGeneration)_t=await Promise.all([D(w,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},mt)]);else if(ht===y.EncoderDecoder)_t=await Promise.all([D(w,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt)]);else if(ht===y.ImageTextToText){let $t={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};ae.is_encoder_decoder&&($t.model="encoder_model"),_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.AudioTextToText){let $t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.ImageAudioTextToText){let $t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.Musicgen)_t=await Promise.all([D(w,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.MultiModality)_t=await Promise.all([D(w,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"language_model",lm_head:"lm_head",gen_head:"gen_head",gen_img_embeds:"gen_img_embeds",image_decode:"image_decode"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.Phi3V)_t=await Promise.all([D(w,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.AutoEncoder)_t=await Promise.all([D(w,{encoder_model:"encoder_model",decoder_model:"decoder_model"},mt)]);else if(ht===y.Supertonic)_t=await Promise.all([D(w,{text_encoder:"text_encoder",latent_denoiser:"latent_denoiser",voice_decoder:"voice_decoder"},mt)]);else{if(ht!==y.EncoderOnly){let $t=Bt??ae?.model_type;$t!=="custom"&&console.warn(`Model type for '${$t}' not found, assuming encoder-only architecture. Please report this at ${c.GITHUB_ISSUE_URL}.`)}_t=await Promise.all([D(w,{model:mt.model_file_name??"model"},mt)])}return new this(ae,..._t)}async _call(w){return await this.forward(w)}async forward(w){return await this._forward(this,w)}get generation_config(){return this.configs?.generation_config??null}_get_logits_processor(w,j,ae=null){let _e=new _.LogitsProcessorList;if(w.repetition_penalty!==null&&w.repetition_penalty!==1&&_e.push(new _.RepetitionPenaltyLogitsProcessor(w.repetition_penalty)),w.no_repeat_ngram_size!==null&&w.no_repeat_ngram_size>0&&_e.push(new _.NoRepeatNGramLogitsProcessor(w.no_repeat_ngram_size)),w.bad_words_ids!==null&&_e.push(new _.NoBadWordsLogitsProcessor(w.bad_words_ids,w.eos_token_id)),w.min_length!==null&&w.eos_token_id!==null&&w.min_length>0&&_e.push(new _.MinLengthLogitsProcessor(w.min_length,w.eos_token_id)),w.min_new_tokens!==null&&w.eos_token_id!==null&&w.min_new_tokens>0&&_e.push(new _.MinNewTokensLengthLogitsProcessor(j,w.min_new_tokens,w.eos_token_id)),w.forced_bos_token_id!==null&&_e.push(new _.ForcedBOSTokenLogitsProcessor(w.forced_bos_token_id)),w.forced_eos_token_id!==null&&_e.push(new _.ForcedEOSTokenLogitsProcessor(w.max_length,w.forced_eos_token_id)),w.begin_suppress_tokens!==null){let he=j>1||w.forced_bos_token_id===null?j:j+1;_e.push(new _.SuppressTokensAtBeginLogitsProcessor(w.begin_suppress_tokens,he))}return w.guidance_scale!==null&&w.guidance_scale>1&&_e.push(new _.ClassifierFreeGuidanceLogitsProcessor(w.guidance_scale)),w.temperature===0&&w.do_sample&&(console.warn("`do_sample` changed to false because `temperature: 0` implies greedy sampling (always selecting the most likely token), which is incompatible with `do_sample: true`."),w.do_sample=!1),w.do_sample&&w.temperature!==null&&w.temperature!==1&&_e.push(new _.TemperatureLogitsWarper(w.temperature)),ae!==null&&_e.extend(ae),_e}_prepare_generation_config(w,j,ae=u.GenerationConfig){let _e={...this.config};for(let Se of["decoder","generator","text_config"])Se in _e&&Object.assign(_e,_e[Se]);let he=new ae(_e);return Object.assign(he,this.generation_config??{}),w&&Object.assign(he,w),j&&Object.assign(he,(0,i.pick)(j,Object.getOwnPropertyNames(he))),he}_get_stopping_criteria(w,j=null){let ae=new x.StoppingCriteriaList;return w.max_length!==null&&ae.push(new x.MaxLengthCriteria(w.max_length,this.config.max_position_embeddings??null)),w.eos_token_id!==null&&ae.push(new x.EosTokenCriteria(w.eos_token_id)),j&&ae.extend(j),ae}_validate_model_class(){if(!this.can_generate){let w=[gc,Mc,fc,hc],j=f.get(this.constructor),ae=new Set,_e=this.config.model_type;for(let Se of w){let Oe=Se.get(_e);Oe&&ae.add(Oe[0])}let he=`The current model class (${j}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw ae.size>0&&(he+=` Please use the following class instead: ${[...ae].join(", ")}`),Error(he)}}prepare_inputs_for_generation(...w){return this._prepare_inputs_for_generation(this,...w)}_update_model_kwargs_for_generation({generated_input_ids:w,outputs:j,model_inputs:ae,is_encoder_decoder:_e}){return ae.past_key_values=this.getPastKeyValues(j,ae.past_key_values),ae.input_ids=new d.Tensor("int64",w.flat(),[w.length,1]),_e?"decoder_attention_mask"in ae:ae.attention_mask=(0,d.cat)([ae.attention_mask,(0,d.ones)([ae.attention_mask.dims[0],1])],1),ae.position_ids=null,ae}_prepare_model_inputs({inputs:w,bos_token_id:j,model_kwargs:ae}){let _e=(0,i.pick)(ae,this.forward_params),he=this.main_input_name;if(he in _e){if(w)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else _e[he]=w;return{inputs_tensor:_e[he],model_inputs:_e,model_input_name:he}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:w,model_inputs:j,model_input_name:ae,generation_config:_e}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!j.inputs_embeds&&"_prepare_inputs_embeds"in this){let{input_ids:Se,pixel_values:Oe,attention_mask:Ge,...st}=j,vt=await this._prepare_inputs_embeds(j);j={...st,...(0,i.pick)(vt,["inputs_embeds","attention_mask"])}}let{last_hidden_state:he}=await re(this,j);if(_e.guidance_scale!==null&&_e.guidance_scale>1)he=(0,d.cat)([he,(0,d.full_like)(he,0)],0),"attention_mask"in j&&(j.attention_mask=(0,d.cat)([j.attention_mask,(0,d.zeros_like)(j.attention_mask)],0));else if(j.decoder_input_ids){let Se=X(j.decoder_input_ids).dims[0];if(Se!==he.dims[0]){if(he.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${he.dims[0]}) than the decoder inputs (${Se}).`);he=(0,d.cat)(Array.from({length:Se},()=>he),0)}}return j.encoder_outputs=he,j}_prepare_decoder_input_ids_for_generation({batch_size:w,model_input_name:j,model_kwargs:ae,decoder_start_token_id:_e,bos_token_id:he,generation_config:Se}){let{decoder_input_ids:Oe,...Ge}=ae;if(!(Oe instanceof d.Tensor)){if(Oe)Array.isArray(Oe[0])||(Oe=Array.from({length:w},()=>Oe));else if(_e??=he,this.config.model_type==="musicgen")Oe=Array.from({length:w*this.config.decoder.num_codebooks},()=>[_e]);else if(Array.isArray(_e)){if(_e.length!==w)throw new Error(`\`decoder_start_token_id\` expcted to have length ${w} but got ${_e.length}`);Oe=_e}else Oe=Array.from({length:w},()=>[_e]);Oe=X(Oe)}return ae.decoder_attention_mask=(0,d.ones_like)(Oe),{input_ids:Oe,model_inputs:Ge}}async generate({inputs:w=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:_e=null,streamer:he=null,...Se}){this._validate_model_class(),j=this._prepare_generation_config(j,Se);let{inputs_tensor:Oe,model_inputs:Ge,model_input_name:st}=this._prepare_model_inputs({inputs:w,model_kwargs:Se}),vt=this.config.is_encoder_decoder;vt&&("encoder_outputs"in Ge||(Ge=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:Oe,model_inputs:Ge,model_input_name:st,generation_config:j})));let xt;vt?{input_ids:xt,model_inputs:Ge}=this._prepare_decoder_input_ids_for_generation({batch_size:Ge[st].dims.at(0),model_input_name:st,model_kwargs:Ge,decoder_start_token_id:j.decoder_start_token_id,bos_token_id:j.bos_token_id,generation_config:j}):xt=Ge[st];let Et=xt.dims.at(-1);j.max_new_tokens!==null&&(j.max_length=Et+j.max_new_tokens);let mt=this._get_logits_processor(j,Et,ae),Bt=this._get_stopping_criteria(j,_e),ht=Ge[st].dims.at(0),_t=F.LogitsSampler.getSampler(j),$t=new Array(ht).fill(0),Gt=xt.tolist();he&&he.put(Gt);let tr,sr={};for(;;){if(Ge=this.prepare_inputs_for_generation(Gt,Ge,j),tr=await this.forward(Ge),j.output_attentions&&j.return_dict_in_generate){let Hr=this.getAttentions(tr);for(let gs in Hr)gs in sr||(sr[gs]=[]),sr[gs].push(Hr[gs])}let Ft=tr.logits.slice(null,-1,null),cr=mt(Gt,Ft),Ar=[];for(let Hr=0;Hr<cr.dims.at(0);++Hr){let gs=cr[Hr],oa=await _t(gs);for(let[aa,ni]of oa){let Va=BigInt(aa);$t[Hr]+=ni,Gt[Hr].push(Va),Ar.push([Va]);break}}if(he&&he.put(Ar),Bt(Gt).every(Hr=>Hr))break;Ge=this._update_model_kwargs_for_generation({generated_input_ids:Ar,outputs:tr,model_inputs:Ge,is_encoder_decoder:vt})}he&&he.end();let mr=this.getPastKeyValues(tr,Ge.past_key_values,!0),br=new d.Tensor("int64",Gt.flat(),[Gt.length,Gt[0].length]);if(j.return_dict_in_generate)return{sequences:br,past_key_values:mr,...sr};for(let Ft of Object.values(tr))Ft.location==="gpu-buffer"&&Ft.dispose();return br}getPastKeyValues(w,j,ae=!1){let _e=Object.create(null);for(let he in w)if(he.startsWith("present")){let Se=he.replace("present_conv","past_conv").replace("present","past_key_values"),Oe=he.includes("encoder");if(Oe&&j?_e[Se]=j[Se]:_e[Se]=w[he],j&&(!Oe||ae)){let Ge=j[Se];Ge.location==="gpu-buffer"&&Ge.dispose()}}return _e}getAttentions(w){let j={};for(let ae of["cross_attentions","encoder_attentions","decoder_attentions"])for(let _e in w)_e.startsWith(ae)&&(ae in j||(j[ae]=[]),j[ae].push(w[_e]));return j}addPastKeyValues(w,j){if(j)Object.assign(w,j);else{let ae=this.sessions.decoder_model_merged??this.sessions.model,_e=(w[this.main_input_name]??w.attention_mask)?.dims?.[0]??1,he=ae?.config?.kv_cache_dtype??"float32",Se=he==="float16"?d.DataTypeMap.float16:d.DataTypeMap.float32,Oe=(0,s.getCacheShapes)(this.config,{batch_size:_e});for(let Ge in Oe){let st=Oe[Ge].reduce((vt,xt)=>vt*xt,1);w[Ge]=new d.Tensor(he,new Se(st),Oe[Ge])}}}async encode_image({pixel_values:w}){return(await W(this.sessions.vision_encoder,{pixel_values:w})).image_features}async encode_text({input_ids:w}){return(await W(this.sessions.embed_tokens,{input_ids:w})).inputs_embeds}async encode_audio({audio_values:w}){return(await W(this.sessions.audio_encoder,{audio_values:w})).audio_features}}class le{}class ge extends le{constructor({last_hidden_state:w,hidden_states:j=null,attentions:ae=null}){super(),this.last_hidden_state=w,this.hidden_states=j,this.attentions=ae}}class be extends A{}class Ae extends be{}class ve extends be{async _call(w){return new Ir(await super._call(w))}}class pe extends be{async _call(w){return new Pt(await super._call(w))}}class Pe extends be{async _call(w){return new Er(await super._call(w))}}class fe extends be{async _call(w){return new jr(await super._call(w))}}class Te extends A{}class We extends Te{}class $e extends Te{async _call(w){return new Ir(await super._call(w))}}class Re extends Te{async _call(w){return new Pt(await super._call(w))}}class Ne extends Te{async _call(w){return new Er(await super._call(w))}}class ot extends Te{async _call(w){return new jr(await super._call(w))}}class De extends A{}class Qe extends De{}class je extends De{async _call(w){return new Ir(await super._call(w))}}class pt extends De{async _call(w){return new Pt(await super._call(w))}}class Ke extends De{async _call(w){return new Er(await super._call(w))}}class bt extends A{}class At extends bt{}class Lt extends bt{}class fr extends A{}class zt extends fr{}class yr extends A{}class zs extends yr{}class Ys extends yr{async _call(w){return new Ir(await super._call(w))}}class Zs extends yr{async _call(w){return new Pt(await super._call(w))}}class or extends yr{async _call(w){return new Er(await super._call(w))}}class Dr extends yr{async _call(w){return new jr(await super._call(w))}}class Yr extends A{}class Rs extends Yr{}class ft extends Yr{async _call(w){return new Ir(await super._call(w))}}class Cs extends Yr{async _call(w){return new Pt(await super._call(w))}}class qt extends Yr{async _call(w){return new Er(await super._call(w))}}class Ss extends Yr{async _call(w){return new jr(await super._call(w))}}class Qr extends A{}class St extends Qr{}class Xr extends Qr{async _call(w){return new Ir(await super._call(w))}}class k extends Qr{async _call(w){return new Pt(await super._call(w))}}class Q extends Qr{async _call(w){return new Er(await super._call(w))}}class N extends Qr{async _call(w){return new jr(await super._call(w))}}class K extends A{}class Z extends K{}class ce extends K{async _call(w){return new Ir(await super._call(w))}}class xe extends K{async _call(w){return new Pt(await super._call(w))}}class et extends K{async _call(w){return new Er(await super._call(w))}}class ut extends K{async _call(w){return new jr(await super._call(w))}}class qe extends A{}class wt extends qe{}class tt extends qe{async _call(w){return new Ir(await super._call(w))}}class gt extends qe{async _call(w){return new Pt(await super._call(w))}}class Nt extends qe{async _call(w){return new Er(await super._call(w))}}class Qt extends qe{async _call(w){return new jr(await super._call(w))}}class ur extends A{}class Or extends ur{}class Cr extends ur{async _call(w){return new Ir(await super._call(w))}}class Lr extends ur{async _call(w){return new Pt(await super._call(w))}}class _s extends ur{async _call(w){return new Er(await super._call(w))}}class Fs extends ur{async _call(w){return new jr(await super._call(w))}}class gr extends A{}class Ns extends gr{}class as extends gr{async _call(w){return new Pt(await super._call(w))}}class Nr extends gr{async _call(w){return new Er(await super._call(w))}}class Gr extends gr{async _call(w){return new jr(await super._call(w))}}class ar extends gr{async _call(w){return new Ir(await super._call(w))}}class _r extends A{}class ps extends _r{}class Is extends _r{async _call(w){return new Ir(await super._call(w))}}class As extends _r{async _call(w){return new Pt(await super._call(w))}}class $s extends _r{async _call(w){return new Er(await super._call(w))}}class ns extends A{}class Wr extends ns{}class ze extends ns{async _call(w){return new Ir(await super._call(w))}}class Ue extends ns{async _call(w){return new Pt(await super._call(w))}}class at extends ns{async _call(w){return new jr(await super._call(w))}}class Ht extends A{}class js extends Ht{}class Ds extends Ht{async _call(w){return new Ir(await super._call(w))}}class Vs extends Ht{async _call(w){return new Pt(await super._call(w))}}class Wo extends Ht{async _call(w){return new Er(await super._call(w))}}class de extends Ht{async _call(w){return new jr(await super._call(w))}}class S extends A{}class G extends S{}class te extends S{async _call(w){return new Ir(await super._call(w))}}class se extends S{async _call(w){return new Pt(await super._call(w))}}class me extends S{async _call(w){return new jr(await super._call(w))}}class Ce extends A{}class Ye extends Ce{}class Xe extends Ce{async _call(w){return new Pt(await super._call(w))}}class Ze extends Ce{async _call(w){return new jr(await super._call(w))}}class He extends Ce{async _call(w){return new Ir(await super._call(w))}}class It extends A{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"]}class yt extends It{}class Xt extends It{}class Mr extends A{}class nr extends Mr{}class Br extends Mr{}class ir extends A{}class Tr extends ir{}class zr extends ir{}class Pr extends A{}class Zr extends Pr{}class Yt extends Pr{}class vr extends Pr{async _call(w){return new Pt(await super._call(w))}}class Sr extends A{}class Jr extends Sr{}class ms extends Sr{}class Fr extends Sr{async _call(w){return new Pt(await super._call(w))}}class is extends Sr{}class lr extends A{}class pr extends lr{}class wr extends lr{}class er extends A{}class Kr extends er{}class Ws extends er{}class Os extends A{}class hn extends Os{}class fn extends Os{async _call(w){return new Ir(await super._call(w))}}class fa extends Os{async _call(w){return new Pt(await super._call(w))}}class gn extends Os{async _call(w){return new Er(await super._call(w))}}class Mn extends Os{async _call(w){return new jr(await super._call(w))}}class eo extends A{}class wn extends eo{}class bn extends eo{async _call(w){return new Ir(await super._call(w))}}class vn extends eo{async _call(w){return new Pt(await super._call(w))}}class xn extends eo{async _call(w){return new Er(await super._call(w))}}class yn extends eo{async _call(w){return new jr(await super._call(w))}}class to extends A{}class Tn extends to{}class Pn extends to{async _call(w){return new Ir(await super._call(w))}}class En extends to{async _call(w){return new Pt(await super._call(w))}}class ga extends to{async _call(w){return new Er(await super._call(w))}}class Ma extends to{async _call(w){return new jr(await super._call(w))}}class Uo extends A{}class kn extends Uo{}class Cn extends Uo{}class Go extends A{requires_attention_mask=!1;main_input_name="input_features";forward_params=["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"]}class wa extends Go{}class Us extends Go{_prepare_generation_config(w,j){return super._prepare_generation_config(w,j,b.WhisperGenerationConfig)}_retrieve_init_tokens(w){let j=[w.decoder_start_token_id],ae=w.language,_e=w.task;if(w.is_multilingual){ae||(console.warn("No language specified - defaulting to English (en)."),ae="en");let Se=`<|${(0,C.whisper_language_to_code)(ae)}|>`;j.push(w.lang_to_id[Se]),j.push(w.task_to_id[_e??"transcribe"])}else if(ae||_e)throw new Error("Cannot specify `task` or `language` for an English-only model. If the model is intended to be multilingual, pass `is_multilingual=true` to generate, or update the generation config.");return!w.return_timestamps&&w.no_timestamps_token_id&&j.at(-1)!==w.no_timestamps_token_id?j.push(w.no_timestamps_token_id):w.return_timestamps&&j.at(-1)===w.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),j.pop()),j.filter(he=>he!=null)}async generate({inputs:w=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:_e=null,...he}){j=this._prepare_generation_config(j,he);let Se=he.decoder_input_ids??this._retrieve_init_tokens(j);if(j.return_timestamps&&(ae??=new _.LogitsProcessorList,ae.push(new _.WhisperTimeStampLogitsProcessor(j,Se))),j.begin_suppress_tokens&&(ae??=new _.LogitsProcessorList,ae.push(new _.SuppressTokensAtBeginLogitsProcessor(j.begin_suppress_tokens,Se.length))),j.return_token_timestamps){if(!j.alignment_heads)throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");j.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),j.output_attentions=!0,j.return_dict_in_generate=!0}let Oe=await super.generate({inputs:w,generation_config:j,logits_processor:ae,decoder_input_ids:Se,...he});return j.return_token_timestamps&&(Oe.token_timestamps=this._extract_token_timestamps(Oe,j.alignment_heads,j.num_frames)),Oe}_extract_token_timestamps(w,j,ae=null,_e=.02){if(!w.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");ae==null&&console.warn("`num_frames` has not been set, meaning the entire audio will be analyzed. This may lead to inaccurate token-level timestamps for short audios (< 30 seconds).");let he=this.config.median_filter_width;he===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),he=7);let Se=w.cross_attentions,Oe=Array.from({length:this.config.decoder_layers},(ht,_t)=>(0,d.cat)(Se.map($t=>$t[_t]),2)),Ge=(0,d.stack)(j.map(([ht,_t])=>{if(ht>=Oe.length)throw new Error(`Layer index ${ht} is out of bounds for cross attentions (length ${Oe.length}).`);return ae?Oe[ht].slice(null,_t,null,[0,ae]):Oe[ht].slice(null,_t)})).transpose(1,0,2,3),[st,vt]=(0,d.std_mean)(Ge,-2,0,!0),xt=Ge.clone();for(let ht=0;ht<xt.dims[0];++ht){let _t=xt[ht];for(let $t=0;$t<_t.dims[0];++$t){let Gt=_t[$t],tr=st[ht][$t][0].data,sr=vt[ht][$t][0].data;for(let mr=0;mr<Gt.dims[0];++mr){let br=Gt[mr].data;for(let Ft=0;Ft<br.length;++Ft)br[Ft]=(br[Ft]-sr[Ft])/tr[Ft];br.set((0,h.medianFilter)(br,he))}}}let Et=[(0,d.mean)(xt,1)],mt=w.sequences.dims,Bt=new d.Tensor("float32",new Float32Array(mt[0]*mt[1]),mt);for(let ht=0;ht<mt[0];++ht){let _t=Et[ht].neg().squeeze_(0),[$t,Gt]=(0,h.dynamic_time_warping)(_t.tolist()),tr=Array.from({length:$t.length-1},(br,Ft)=>$t[Ft+1]-$t[Ft]),sr=(0,i.mergeArrays)([1],tr).map(br=>!!br),mr=[];for(let br=0;br<sr.length;++br)sr[br]&&mr.push(Gt[br]*_e);Bt[ht].data.set(mr,1)}return Bt}}class Sn extends Us{}class Ko extends A{requires_attention_mask=!1;main_input_name="input_values";forward_params=["input_values","decoder_input_ids","past_key_values"]}class Yi extends Ko{}class Fn extends Ko{}class ba extends A{main_input_name="pixel_values";forward_params=["pixel_values","decoder_input_ids","encoder_hidden_states","past_key_values"]}class va extends A{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class ro extends va{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class xa extends ro{}class In extends ro{}class An extends A{forward_params=["input_ids","inputs_embeds","attention_mask","pixel_values","encoder_outputs","decoder_input_ids","decoder_inputs_embeds","decoder_attention_mask","past_key_values"];main_input_name="inputs_embeds"}class $n extends An{_merge_input_ids_with_image_features({inputs_embeds:w,image_features:j,input_ids:ae,attention_mask:_e}){return{inputs_embeds:(0,d.cat)([j,w],1),attention_mask:(0,d.cat)([(0,d.ones)(j.dims.slice(0,2)),_e],1)}}async _prepare_inputs_embeds({input_ids:w,pixel_values:j,inputs_embeds:ae,attention_mask:_e}){if(!w&&!j)throw new Error("Either `input_ids` or `pixel_values` should be provided.");let he,Se;return w&&(he=await this.encode_text({input_ids:w})),j&&(Se=await this.encode_image({pixel_values:j})),he&&Se?{inputs_embeds:ae,attention_mask:_e}=this._merge_input_ids_with_image_features({inputs_embeds:he,image_features:Se,input_ids:w,attention_mask:_e}):ae=he||Se,{inputs_embeds:ae,attention_mask:_e}}async forward({input_ids:w,pixel_values:j,attention_mask:ae,decoder_input_ids:_e,decoder_attention_mask:he,encoder_outputs:Se,past_key_values:Oe,inputs_embeds:Ge,decoder_inputs_embeds:st}){if(Ge||({inputs_embeds:Ge,attention_mask:ae}=await this._prepare_inputs_embeds({input_ids:w,pixel_values:j,inputs_embeds:Ge,attention_mask:ae})),!Se){let{last_hidden_state:Et}=await re(this,{inputs_embeds:Ge,attention_mask:ae});Se=Et}if(!st){if(!_e)throw new Error("Either `decoder_input_ids` or `decoder_inputs_embeds` should be provided.");st=await this.encode_text({input_ids:_e})}return await ne(this,{inputs_embeds:st,attention_mask:he,encoder_attention_mask:ae,encoder_hidden_states:Se,past_key_values:Oe},!0)}}class Dn extends A{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class On extends Dn{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class ya extends va{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class Ln extends ya{}class Bn extends A{forward_params=["input_ids","attention_mask","inputs_embeds","per_layer_inputs","position_ids","pixel_values","input_features","input_features_mask","past_key_values"]}class Ta extends Bn{async forward({input_ids:w=null,attention_mask:j=null,pixel_values:ae=null,input_features:_e=null,input_features_mask:he=null,position_ids:Se=null,inputs_embeds:Oe=null,per_layer_inputs:Ge=null,past_key_values:st=null,generation_config:vt=null,logits_processor:xt=null,...Et}){if((!Oe||!Ge)&&({inputs_embeds:Oe,per_layer_inputs:Ge}=await W(this.sessions.embed_tokens,{input_ids:w}),w.dims[1]!==1)){if(ae){let{image_features:Bt}=await W(this.sessions.vision_encoder,{pixel_values:ae});({inputs_embeds:Oe,attention_mask:j}=this._merge_input_ids_with_image_features({image_features:Bt,inputs_embeds:Oe,input_ids:w,attention_mask:j}))}if(_e){let{audio_features:Bt}=await W(this.sessions.audio_encoder,{input_features:_e,input_features_mask:he});({inputs_embeds:Oe,attention_mask:j}=this._merge_input_ids_with_audio_features({audio_features:Bt,inputs_embeds:Oe,input_ids:w,attention_mask:j}))}}return await ne(this,{inputs_embeds:Oe,per_layer_inputs:Ge,past_key_values:st,attention_mask:j,position_ids:Se,generation_config:vt,logits_processor:xt},!0)}_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_id,...w,image_features:ae})}_merge_input_ids_with_audio_features(w){let j=w.audio_features.dims.at(-1),ae=w.audio_features.view(-1,j);return H({audio_token_id:this.config.audio_token_id,...w,audio_features:ae})}}class mo extends A{forward_params=["input_ids","attention_mask","pixel_values","pixel_attention_mask","position_ids","past_key_values"]}class hs extends mo{async encode_image({pixel_values:w,pixel_attention_mask:j}){return(await W(this.sessions.vision_encoder,{pixel_values:w,pixel_attention_mask:j})).image_features}_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_id,...w,image_features:ae})}}class Ho extends hs{}class zn extends A{forward_params=["input_ids","inputs_embeds","attention_mask","position_ids","pixel_values","image_sizes","past_key_values"]}class Pa extends zn{async forward({input_ids:w=null,attention_mask:j=null,pixel_values:ae=null,image_sizes:_e=null,position_ids:he=null,inputs_embeds:Se=null,past_key_values:Oe=null,generation_config:Ge=null,logits_processor:st=null,...vt}){if(!Se){let Et;if(ae&&w.dims[1]!==1){if(!_e)throw new Error("`image_sizes` must be provided when `pixel_values` is provided.");({image_features:Et}=await W(this.sessions.vision_encoder,{pixel_values:ae,image_sizes:_e}))}else{let mt=this.config.normalized_config.hidden_size;Et=new d.Tensor("float32",[],[0,mt])}({inputs_embeds:Se}=await W(this.sessions.prepare_inputs_embeds,{input_ids:w,image_features:Et}))}return await ne(this,{inputs_embeds:Se,past_key_values:Oe,attention_mask:j,position_ids:he,generation_config:Ge,logits_processor:st},!1)}}class fs extends A{}class qo extends fs{}class Rn extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Ea extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Nn extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class ka extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Qo extends A{}class Ca extends Qo{}class jn extends Qo{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Sa extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Fa extends A{}class ho extends Fa{}class ct extends A{}class Vn extends ct{async forward(w){let j=!w.input_ids,ae=!w.pixel_values;if(j&&ae)throw new Error("Either `input_ids` or `pixel_values` should be provided.");if(j&&(w.input_ids=(0,d.ones)([w.pixel_values.dims[0],1])),ae){let{image_size:st}=this.config.vision_config;w.pixel_values=(0,d.full)([0,3,st,st],0)}let{text_embeddings:_e,image_embeddings:he,l2norm_text_embeddings:Se,l2norm_image_embeddings:Oe}=await super.forward(w),Ge={};return j||(Ge.text_embeddings=_e,Ge.l2norm_text_embeddings=Se),ae||(Ge.image_embeddings=he,Ge.l2norm_image_embeddings=Oe),Ge}}class Ia extends ct{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Aa extends ct{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class so extends A{}class es extends so{}class fo extends so{}class go extends A{}class $a extends go{}class Da extends go{}class Xo extends A{}class Jo extends Xo{}class Oa extends Xo{}class Yo extends A{}class La extends Yo{}class Mo extends Yo{}class wo extends A{}class Zo extends wo{}class Ba extends wo{}class ea extends A{}class za extends ea{}class Ra extends ea{}class ta extends A{}class m extends ta{}class T extends ta{}class $ extends A{}class B extends ${}class V extends ${}class ie extends A{}class Ee extends ie{}class Be extends ie{}class Je extends A{}class nt extends Je{}class Tt extends A{}class Dt extends Tt{}class Wt extends Tt{}class xr extends A{}class Gs extends xr{}class Wn extends xr{}class Zi extends A{}class Tu extends Zi{}class Pu extends Zi{}class el extends A{}class Eu extends el{}class ku extends el{}class tl extends A{}class Cu extends tl{}class Su extends tl{}class rl extends A{}class Fu extends rl{}class Iu extends rl{}class sl extends A{}class Au extends sl{}class $u extends sl{}class ol extends A{}class Du extends ol{}class Ou extends ol{}class al extends A{}class Lu extends al{}class Bu extends al{}class nl extends A{}class zu extends nl{}class Ru extends nl{}class il extends A{}class Nu extends il{}class ju extends il{}class ll extends A{}class Vu extends ll{}class Wu extends ll{}class cl extends A{}class Uu extends cl{}class Gu extends cl{}class dl extends A{}class Ku extends dl{}class Hu extends dl{}class ul extends A{}class qu extends ul{}class Qu extends ul{}class _l extends A{}class Xu extends _l{}class Ju extends _l{}class pl extends A{}class Yu extends pl{}class Zu extends pl{}class ml extends A{}class e_ extends ml{}class t_ extends ml{}class hl extends A{}class r_ extends hl{}class s_ extends hl{}class fl extends A{}class o_ extends fl{}class a_ extends fl{}class n_ extends A{forward_params=["input_ids","attention_mask","position_ids","past_key_values","pixel_values","image_grid_thw"]}class i_ extends n_{get_rope_index(w,j,ae,_e){let{vision_config:he,image_token_id:Se,video_token_id:Oe,vision_start_token_id:Ge}=this.config,st=he.spatial_merge_size??2,vt=[];if(j||ae){let xt=w.tolist();_e||(_e=(0,d.ones_like)(w));let Et=_e.tolist(),mt=Array.from({length:3},Gt=>Array.from({length:w.dims[0]},tr=>Array.from({length:w.dims[1]},sr=>1))),Bt=j?j.tolist():[],ht=ae?ae.tolist():[],_t=0,$t=0;for(let Gt=0;Gt<xt.length;++Gt){let tr=xt[Gt].filter((rr,kr)=>Et[Gt][kr]==1),mr=tr.reduce((rr,kr,no)=>(kr==Ge&&rr.push(no),rr),[]).map(rr=>tr[rr+1]),br=mr.filter(rr=>rr==Se).length,Ft=mr.filter(rr=>rr==Oe).length,cr=[],Ar=0,bo=br,Hr=Ft;for(let rr=0;rr<mr.length;++rr){let kr=tr.findIndex((xo,Ms)=>Ms>Ar&&xo==Se),no=tr.findIndex((xo,Ms)=>Ms>Ar&&xo==Oe),vo=bo>0&&kr!==-1?kr:tr.length+1,na=Hr>0&&no!==-1?no:tr.length+1,ii,wc,bc,vc;vo<na?([wc,bc,vc]=Bt[_t],++_t,--bo,ii=vo):([wc,bc,vc]=ht[$t],++$t,--Hr,ii=na);let[FT,xc,li]=[Number(wc),Math.floor(Number(bc)/st),Math.floor(Number(vc)/st)],yc=ii-Ar,Ff=cr.length>0?(0,h.max)(cr.at(-1))[0]+1:0;cr.push(Array.from({length:3*yc},(xo,Ms)=>Ff+Ms%yc));let Tc=yc+Ff,ci=FT*xc*li,IT=Array.from({length:ci},(xo,Ms)=>Tc+Math.floor(Ms/(xc*li))),AT=Array.from({length:ci},(xo,Ms)=>Tc+Math.floor(Ms/li)%xc),$T=Array.from({length:ci},(xo,Ms)=>Tc+Ms%li);cr.push([IT,AT,$T].flat()),Ar=ii+ci}if(Ar<tr.length){let rr=cr.length>0?(0,h.max)(cr.at(-1))[0]+1:0,kr=tr.length-Ar;cr.push(Array.from({length:3*kr},(no,vo)=>rr+vo%kr))}let gs=cr.reduce((rr,kr)=>rr+kr.length,0),oa=new Array(gs),aa=0;for(let rr=0;rr<3;++rr)for(let kr=0;kr<cr.length;++kr){let no=cr[kr],vo=no.length/3;for(let na=rr*vo;na<(rr+1)*vo;++na)oa[aa++]=no[na]}let ni=0,Va=Et[Gt];for(let rr=0;rr<Va.length;++rr)if(Va[rr]==1){for(let kr=0;kr<3;++kr)mt[kr][Gt][rr]=oa[kr*gs/3+ni];++ni}let ST=(0,h.max)(oa)[0];vt.push(ST+1-xt[Gt].length)}return[new d.Tensor("int64",mt.flat(1/0),[3,w.dims[0],w.dims[1]]),new d.Tensor("int64",vt,[vt.length,1])]}else if(_e){let{data:xt,dims:Et}=ue(_e),mt=BigInt64Array.from({length:3*xt.length},(ht,_t)=>xt[_t%xt.length]),Bt=Array.from({length:Et[0]},(ht,_t)=>(0,h.max)(xt.subarray(Et[1]*_t,Et[1]*(_t+1)))[0]+1n+BigInt(Et[1]));return[new d.Tensor("int64",mt,[3,...Et]),new d.Tensor("int64",Bt,[Bt.length,1])]}else{let[xt,Et]=w.dims,mt=BigInt64Array.from({length:3*xt*Et},(Bt,ht)=>BigInt(Math.floor(ht%Et/xt)));return[new d.Tensor("int64",mt,[3,...w.dims]),(0,d.zeros)([xt,1])]}}async encode_image({pixel_values:w,image_grid_thw:j}){return(await W(this.sessions.vision_encoder,{pixel_values:w,grid_thw:j})).image_features}_merge_input_ids_with_image_features(w){return Y({image_token_id:this.config.image_token_id,...w})}prepare_inputs_for_generation(w,j,ae){if(j.attention_mask&&!j.position_ids)if(!j.past_key_values)[j.position_ids,j.rope_deltas]=this.get_rope_index(j.input_ids,j.image_grid_thw,j.video_grid_thw,j.attention_mask);else{j.pixel_values=null;let _e=BigInt(Object.values(j.past_key_values)[0].dims.at(-2)),he=j.rope_deltas.map(Se=>_e+Se);j.position_ids=(0,d.stack)([he,he,he],0)}return j}}class gl extends A{}class l_ extends gl{}class c_ extends gl{}class Ml extends A{}class d_ extends Ml{}class u_ extends Ml{}class wl extends A{}class __ extends wl{}class p_ extends wl{}class bl extends A{}class m_ extends bl{}class h_ extends bl{}class vl extends A{}class f_ extends vl{}class g_ extends vl{}class xl extends A{}class M_ extends xl{}class w_ extends xl{async _call(w){return new Pt(await super._call(w))}}class yl extends A{}class b_ extends yl{}class v_ extends yl{async _call(w){return new Pt(await super._call(w))}}class x_ extends A{}class y_ extends x_{}class Tl extends A{}class T_ extends Tl{}class P_ extends Tl{async _call(w){return new Pt(await super._call(w))}}class E_ extends A{}class k_ extends E_{}class Pl extends A{}class C_ extends Pl{}class S_ extends Pl{async _call(w){return new Pt(await super._call(w))}}class F_ extends A{}class I_ extends F_{}class El extends A{}class A_ extends El{}class $_ extends El{async _call(w){return new Pt(await super._call(w))}}class D_ extends A{}class O_ extends D_{async _call(w){return new Cf(await super._call(w))}}class kl extends A{}class L_ extends kl{}class B_ extends kl{async _call(w){return new Pt(await super._call(w))}}class Cl extends A{}class z_ extends Cl{}class R_ extends Cl{async _call(w){return new Pt(await super._call(w))}}class Sl extends A{}class N_ extends Sl{}class j_ extends Sl{}class Fl extends A{}class V_ extends Fl{}class W_ extends Fl{}class Il extends A{}class U_ extends Il{}class G_ extends Il{async _call(w){return new Pt(await super._call(w))}}class Un extends A{}class K_ extends Un{}class H_ extends Un{async _call(w){return new $l(await super._call(w))}}class Al extends Un{async _call(w){return new q_(await super._call(w))}}class $l extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class q_ extends le{constructor({logits:w,pred_boxes:j,pred_masks:ae}){super(),this.logits=w,this.pred_boxes=j,this.pred_masks=ae}}class Dl extends A{}class Q_ extends Dl{}class X_ extends Dl{async _call(w){return new Na(await super._call(w))}}class Na extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class Ol extends A{}class J_ extends Ol{}class Y_ extends Ol{async _call(w){return new Z_(await super._call(w))}}class Z_ extends Na{}class Ll extends A{}class ep extends Ll{}class tp extends Ll{async _call(w){return new rp(await super._call(w))}}class rp extends Na{}class Bl extends A{}class sp extends Bl{}class op extends Bl{async _call(w){return new Na(await super._call(w))}}class zl extends A{}class ap extends zl{}class np extends zl{async _call(w){return new ip(await super._call(w))}}class ip extends $l{}class Rl extends A{}class lp extends Rl{}class cp extends Rl{async _call(w){return new Pt(await super._call(w))}}class Nl extends A{}class dp extends Nl{}class up extends Nl{async _call(w){return new Pt(await super._call(w))}}class jl extends A{}class _p extends jl{}class pp extends jl{async _call(w){return new Pt(await super._call(w))}}class Gn extends A{}class mp extends Gn{}class hp extends Gn{async _call(w){return new Pt(await super._call(w))}}class fp extends Gn{}class Vl extends A{}class gp extends Vl{}class Mp extends Vl{}class Wl extends A{}class wp extends Wl{}class bp extends Wl{}class vp extends A{}class xp extends vp{}class Kn extends A{}class yp extends Kn{}class Tp extends Kn{}class Pp extends Kn{}class Ep extends A{}class kp extends Ep{}class Cp extends A{}class Sp extends Cp{}class Fp extends A{}class Ip extends Fp{}class Ul extends A{}class Ap extends Ul{}class $p extends Ul{}class Gl extends A{}class Dp extends Gl{}class Op extends Gl{}class Lp extends A{}class Bp extends Lp{}class Kl extends A{}class zp extends Kl{}class Rp extends Kl{async _call(w){return new Pt(await super._call(w))}}class Hl extends A{}class Np extends Hl{}class jp extends Hl{async _call(w){return new Pt(await super._call(w))}}class ql extends A{}class Vp extends ql{}class Wp extends ql{async _call(w){return new Pt(await super._call(w))}}class Ql extends A{}class Up extends Ql{}class Gp extends Ql{async _call(w){return new Pt(await super._call(w))}}class Kp extends A{}class Hp extends Kp{}class qp extends A{}class Qp extends qp{}class Xp extends A{}class Jp extends Xp{}class Xl extends A{}class Yp extends Xl{}class Zp extends Xl{async _call(w){return new em(await super._call(w))}}class em extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class tm extends A{}class rm extends tm{async get_image_embeddings({pixel_values:w}){return await re(this,{pixel_values:w})}async forward(w){!w.image_embeddings||!w.image_positional_embeddings?w={...w,...await this.get_image_embeddings(w)}:w={...w},w.input_labels??=(0,d.ones)(w.input_points.dims.slice(0,-1));let j={image_embeddings:w.image_embeddings,image_positional_embeddings:w.image_positional_embeddings};return w.input_points&&(j.input_points=w.input_points),w.input_labels&&(j.input_labels=w.input_labels),w.input_boxes&&(j.input_boxes=w.input_boxes),await W(this.sessions.prompt_encoder_mask_decoder,j)}async _call(w){return new sm(await super._call(w))}}class sm extends le{constructor({iou_scores:w,pred_masks:j}){super(),this.iou_scores=w,this.pred_masks=j}}class om extends le{constructor({iou_scores:w,pred_masks:j,object_score_logits:ae}){super(),this.iou_scores=w,this.pred_masks=j,this.object_score_logits=ae}}class am extends A{}class Hn extends am{async get_image_embeddings({pixel_values:w}){return await re(this,{pixel_values:w})}async forward(w){let{num_feature_levels:j}=this.config.vision_config;if(Array.from({length:j},(Se,Oe)=>`image_embeddings.${Oe}`).some(Se=>!w[Se])?w={...w,...await this.get_image_embeddings(w)}:w={...w},w.input_points){if(w.input_boxes&&w.input_boxes.dims[1]!==1)throw new Error("When both `input_points` and `input_boxes` are provided, the number of boxes per image must be 1.");let Se=w.input_points.dims;w.input_labels??=(0,d.ones)(Se.slice(0,-1)),w.input_boxes??=(0,d.full)([Se[0],0,4],0)}else if(w.input_boxes){let Se=w.input_boxes.dims;w.input_labels=(0,d.full)([Se[0],Se[1],0],-1n),w.input_points=(0,d.full)([Se[0],1,0,2],0)}else throw new Error("At least one of `input_points` or `input_boxes` must be provided.");let _e=this.sessions.prompt_encoder_mask_decoder,he=(0,i.pick)(w,_e.inputNames);return await W(_e,he)}async _call(w){return new om(await super._call(w))}}class nm extends Hn{}class im extends Hn{}class Jl extends A{}class lm extends Jl{}class cm extends Jl{}class Yl extends A{}class dm extends Yl{}class um extends Yl{}class oo extends A{}class _m extends oo{}class pm extends oo{async _call(w){return new ao(await super._call(w))}}class mm extends oo{async _call(w){return new Pt(await super._call(w))}}class hm extends oo{async _call(w){return new Er(await super._call(w))}}class fm extends A{}class gm extends fm{async _call(w){return new ao(await super._call(w))}}class Zl extends A{}class Mm extends Zl{}class wm extends Zl{async _call(w){return new Er(await super._call(w))}}class bm extends A{}class vm extends bm{}class qn extends A{}class xm extends qn{}class ym extends qn{async _call(w){return new ao(await super._call(w))}}class Tm extends qn{async _call(w){return new Pt(await super._call(w))}}class ja extends A{}class Pm extends ja{}class Em extends ja{async _call(w){return new ao(await super._call(w))}}class km extends ja{async _call(w){return new Pt(await super._call(w))}}class Cm extends ja{async _call(w){return new Er(await super._call(w))}}class Qn extends A{}class Sm extends Qn{}class Fm extends Qn{async _call(w){return new ao(await super._call(w))}}class Im extends Qn{async _call(w){return new Pt(await super._call(w))}}class B0 extends A{}class Am extends oo{}class $m extends oo{async _call(w){return new ao(await super._call(w))}}class Dm extends oo{async _call(w){return new Pt(await super._call(w))}}class ra extends A{}class Om extends ra{}class Lm extends ra{async _call(w){return new ao(await super._call(w))}}class Bm extends ra{async _call(w){return new Pt(await super._call(w))}}class zm extends ra{async _call(w){return new kf(await super._call(w))}}class Rm extends ra{async _call(w){return new Er(await super._call(w))}}class Nm extends A{}class jm extends Nm{}class Xn extends A{}class z0 extends Xn{}class Vm extends Xn{}class Wm extends Xn{async generate_speech(w,j,{threshold:ae=.5,minlenratio:_e=0,maxlenratio:he=20,vocoder:Se=null}={}){let Oe={input_ids:w},{encoder_outputs:Ge,encoder_attention_mask:st}=await re(this,Oe),vt=Ge.dims[1]/this.config.reduction_factor,xt=Math.floor(vt*he),Et=Math.floor(vt*_e),mt=this.config.num_mel_bins,Bt=[],ht=null,_t=null,$t=0;for(;;){++$t;let sr=J(!!_t),mr;_t?mr=_t.output_sequence_out:mr=new d.Tensor("float32",new Float32Array(mt),[1,1,mt]);let br={use_cache_branch:sr,output_sequence:mr,encoder_attention_mask:st,speaker_embeddings:j,encoder_hidden_states:Ge};this.addPastKeyValues(br,ht),_t=await W(this.sessions.decoder_model_merged,br),ht=this.getPastKeyValues(_t,ht);let{prob:Ft,spectrum:cr}=_t;if(Bt.push(cr),$t>=Et&&(Array.from(Ft.data).filter(Ar=>Ar>=ae).length>0||$t>=xt))break}let Gt=(0,d.cat)(Bt),{waveform:tr}=await W(Se.sessions.model,{spectrogram:Gt});return{spectrogram:Gt,waveform:tr}}}class Um extends A{main_input_name="spectrogram"}class Gm extends A{}class ec extends Gm{async generate_speech({input_ids:w,attention_mask:j,style:ae,num_inference_steps:_e=5,speed:he=1.05}){let{sampling_rate:Se,chunk_compress_factor:Oe,base_chunk_size:Ge,latent_dim:st}=this.config,{last_hidden_state:vt,durations:xt}=await W(this.sessions.text_encoder,{input_ids:w,attention_mask:j,style:ae});xt.div_(he);let Et=xt.max().item()*Se,mt=Ge*Oe,Bt=Math.floor((Et+mt-1)/mt),ht=w.dims[0],_t=(0,d.ones)([ht,Bt]),$t=(0,d.full)([ht],_e),Gt=(0,d.randn)([ht,st*Oe,Bt]);for(let sr=0;sr<_e;++sr){let mr=(0,d.full)([ht],sr);({denoised_latents:Gt}=await W(this.sessions.latent_denoiser,{style:ae,noisy_latents:Gt,latent_mask:_t,encoder_outputs:vt,attention_mask:j,timestep:mr,num_inference_steps:$t}))}let{waveform:tr}=await W(this.sessions.voice_decoder,{latents:Gt});return{waveform:tr,durations:xt}}}class Km extends A{}class Hm extends Km{}class tc extends A{}class qm extends tc{}class Qm extends tc{}class rc extends A{}class Xm extends rc{}class Jm extends rc{}class sc extends A{}class Ym extends sc{}class Zm extends sc{}class oc extends A{}class eh extends oc{}class th extends oc{}class ac extends A{}class rh extends ac{}class sh extends ac{}class nc extends A{}class oh extends nc{}class ah extends nc{}class Jn extends A{}class nh extends Jn{}class ih extends Jn{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class lh extends Jn{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"audio_model"})}}class ch extends A{}class ic extends ch{async _call(w){return new Sf(await super._call(w))}}class Yn extends A{}class R0 extends Yn{}class dh extends Yn{}class uh extends Yn{}class lc extends A{}class _h extends lc{}class ph extends lc{}class cc extends A{}class mh extends cc{}class hh extends cc{async _call(w){return new Pt(await super._call(w))}}class dc extends A{}class N0 extends dc{}class j0 extends dc{}class uc extends A{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"];_apply_and_filter_by_delay_pattern_mask(w){let[j,ae]=w.dims,_e=this.config.decoder.num_codebooks,he=ae-_e,Se=0;for(let st=0;st<w.size;++st){if(w.data[st]===this.config.decoder.pad_token_id)continue;let vt=st%ae,xt=Math.floor(st/ae)%_e,Et=vt-xt;Et>0&&Et<=he&&(w.data[Se++]=w.data[st])}let Oe=Math.floor(j/_e),Ge=Se/(Oe*_e);return new d.Tensor(w.type,w.data.slice(0,Se),[Oe,_e,Ge])}prepare_inputs_for_generation(w,j,ae){let _e=structuredClone(w);for(let Se=0;Se<_e.length;++Se)for(let Oe=0;Oe<_e[Se].length;++Oe)Se%this.config.decoder.num_codebooks>=Oe&&(_e[Se][Oe]=BigInt(this.config.decoder.pad_token_id));return ae.guidance_scale!==null&&ae.guidance_scale>1&&(_e=_e.concat(_e)),super.prepare_inputs_for_generation(_e,j,ae)}async generate(w){let j=await super.generate(w),ae=this._apply_and_filter_by_delay_pattern_mask(j).unsqueeze_(0),{audio_values:_e}=await W(this.sessions.encodec_decode,{audio_codes:ae});return _e}}class Zn extends A{}class fh extends Zn{}class gh extends Zn{async _call(w){return new Pt(await super._call(w))}}class Mh extends Zn{}class ei extends A{}class wh extends ei{}class bh extends ei{async _call(w){return new Pt(await super._call(w))}}class vh extends ei{}class ti extends A{}class xh extends ti{}class yh extends ti{async _call(w){return new Pt(await super._call(w))}}class Th extends ti{}class ri extends A{}class Ph extends ri{}class Eh extends ri{async _call(w){return new Pt(await super._call(w))}}class kh extends ri{}class Ch extends A{}class Sh extends Ch{}class Fh extends A{}class Ih extends Fh{forward_params=["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"];constructor(...w){super(...w),this._generation_mode="text"}async forward(w){let j=this._generation_mode??"text",ae;if(j==="text"||!w.past_key_values){let Ge=this.sessions.prepare_inputs_embeds,st=(0,i.pick)(w,Ge.inputNames);ae=await W(Ge,st)}else{let Ge=this.sessions.gen_img_embeds,st=(0,i.pick)({image_ids:w.input_ids},Ge.inputNames);ae=await W(Ge,st)}let _e={...w,...ae},he=await ne(this,_e),Se=this.sessions[j==="text"?"lm_head":"gen_head"];if(!Se)throw new Error(`Unable to find "${Se}" generation head`);let Oe=await W(Se,(0,i.pick)(he,Se.inputNames));return{...ae,...he,...Oe}}async generate(w){return this._generation_mode="text",super.generate(w)}async generate_images(w){this._generation_mode="image";let j=(w.inputs??w[this.main_input_name]).dims[1],_e=(await super.generate(w)).slice(null,[j,null]),he=this.sessions.image_decode,{decoded_image:Se}=await W(he,{generated_tokens:_e}),Oe=Se.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),Ge=[];for(let st of Oe){let vt=g.RawImage.fromTensor(st);Ge.push(vt)}return Ge}}class Ah extends le{constructor({char_logits:w,bpe_logits:j,wp_logits:ae}){super(),this.char_logits=w,this.bpe_logits=j,this.wp_logits=ae}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class $h extends A{}class Dh extends $h{async _call(w){return new Ah(await super._call(w))}}class _c extends A{}class Oh extends _c{}class Lh extends _c{}class pc extends A{}class Bh extends pc{}class zh extends pc{}class Rh extends A{forward_params=["input_ids","attention_mask","position_ids","audio_values","past_key_values"]}class mc extends Rh{_merge_input_ids_with_audio_features(w){let j=w.audio_features.dims.at(-1),ae=w.audio_features.view(-1,j);return H({audio_token_id:this.config.ignore_index??this.config.audio_token_id,...w,audio_features:ae})}}class Nh extends mc{}class si extends A{main_input_name="input_values";forward_params=["input_values"]}class jh extends le{constructor({audio_codes:w}){super(),this.audio_codes=w}}class Vh extends le{constructor({audio_values:w}){super(),this.audio_values=w}}class Wh extends si{async encode(w){return new jh(await W(this.sessions.encoder_model,w))}async decode(w){return new Vh(await W(this.sessions.decoder_model,w))}}class Uh extends si{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Gh extends si{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class oi extends A{main_input_name="input_values";forward_params=["input_values"]}class Kh extends le{constructor({audio_codes:w}){super(),this.audio_codes=w}}class Hh extends le{constructor({audio_values:w}){super(),this.audio_values=w}}class qh extends oi{async encode(w){return new Kh(await W(this.sessions.encoder_model,w))}async decode(w){return new Hh(await W(this.sessions.decoder_model,w))}}class Qh extends oi{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Xh extends oi{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class ai extends A{main_input_name="input_values";forward_params=["input_values"]}class Jh extends ai{async encode(w){return await W(this.sessions.encoder_model,w)}async decode(w){return await W(this.sessions.decoder_model,w)}}class Yh extends ai{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Zh extends ai{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class Ut{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(w,{progress_callback:j=null,config:ae=null,cache_dir:_e=null,local_files_only:he=!1,revision:Se="main",model_file_name:Oe=null,subfolder:Ge="onnx",device:st=null,dtype:vt=null,use_external_data_format:xt=null,session_options:Et={}}={}){let mt={progress_callback:j,config:ae,cache_dir:_e,local_files_only:he,revision:Se,model_file_name:Oe,subfolder:Ge,device:st,dtype:vt,use_external_data_format:xt,session_options:Et};if(mt.config=await s.AutoConfig.from_pretrained(w,mt),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);let Bt=mt.config.model_type;for(let ht of this.MODEL_CLASS_MAPPINGS){let _t=ht.get(Bt);if(!_t){for(let $t of ht.values())if($t[0]===Bt){_t=$t;break}if(!_t)continue}return await _t[1].from_pretrained(w,mt)}if(this.BASE_IF_FAIL)return Ef.has(Bt)||console.warn(`Unknown model class "${Bt}", attempting to construct from base class.`),await A.from_pretrained(w,mt);throw Error(`Unsupported model type: ${Bt}`)}}let V0=new Map([["bert",["BertModel",Ae]],["neobert",["NeoBertModel",We]],["modernbert",["ModernBertModel",Qe]],["nomic_bert",["NomicBertModel",zt]],["roformer",["RoFormerModel",zs]],["electra",["ElectraModel",St]],["esm",["EsmModel",ps]],["convbert",["ConvBertModel",Rs]],["camembert",["CamembertModel",Z]],["deberta",["DebertaModel",wt]],["deberta-v2",["DebertaV2Model",Or]],["mpnet",["MPNetModel",js]],["albert",["AlbertModel",Ye]],["distilbert",["DistilBertModel",Ns]],["roberta",["RobertaModel",hn]],["xlm",["XLMModel",wn]],["xlm-roberta",["XLMRobertaModel",Tn]],["clap",["ClapModel",nh]],["clip",["CLIPModel",qo]],["clipseg",["CLIPSegModel",es]],["chinese_clip",["ChineseCLIPModel",ho]],["siglip",["SiglipModel",Ca]],["jina_clip",["JinaCLIPModel",Vn]],["mobilebert",["MobileBertModel",Wr]],["squeezebert",["SqueezeBertModel",G]],["wav2vec2",["Wav2Vec2Model",_m]],["wav2vec2-bert",["Wav2Vec2BertModel",Sm]],["unispeech",["UniSpeechModel",xm]],["unispeech-sat",["UniSpeechSatModel",Pm]],["hubert",["HubertModel",Am]],["wavlm",["WavLMModel",Om]],["audio-spectrogram-transformer",["ASTModel",kn]],["vits",["VitsModel",ic]],["pyannote",["PyAnnoteModel",Mm]],["wespeaker-resnet",["WeSpeakerResNetModel",vm]],["detr",["DetrModel",K_]],["rt_detr",["RTDetrModel",Q_]],["rt_detr_v2",["RTDetrV2Model",J_]],["rf_detr",["RFDetrModel",ep]],["d_fine",["DFineModel",sp]],["table-transformer",["TableTransformerModel",ap]],["vit",["ViTModel",M_]],["ijepa",["IJepaModel",b_]],["pvt",["PvtModel",T_]],["vit_msn",["ViTMSNModel",C_]],["vit_mae",["ViTMAEModel",k_]],["groupvit",["GroupViTModel",I_]],["fastvit",["FastViTModel",A_]],["mobilevit",["MobileViTModel",L_]],["mobilevitv2",["MobileViTV2Model",z_]],["owlvit",["OwlViTModel",N_]],["owlv2",["Owlv2Model",V_]],["beit",["BeitModel",U_]],["deit",["DeiTModel",lp]],["hiera",["HieraModel",dp]],["convnext",["ConvNextModel",zp]],["convnextv2",["ConvNextV2Model",Np]],["dinov2",["Dinov2Model",Vp]],["dinov2_with_registers",["Dinov2WithRegistersModel",Up]],["dinov3_vit",["DINOv3ViTModel",Hp]],["dinov3_convnext",["DINOv3ConvNextModel",Qp]],["resnet",["ResNetModel",_p]],["swin",["SwinModel",mp]],["swin2sr",["Swin2SRModel",gp]],["donut-swin",["DonutSwinModel",Bp]],["yolos",["YolosModel",Yp]],["dpt",["DPTModel",wp]],["glpn",["GLPNModel",Dp]],["hifigan",["SpeechT5HifiGan",Um]],["efficientnet",["EfficientNetModel",mh]],["decision_transformer",["DecisionTransformerModel",Sh]],["patchtst",["PatchTSTForPrediction",Oh]],["patchtsmixer",["PatchTSMixerForPrediction",Bh]],["mobilenet_v1",["MobileNetV1Model",fh]],["mobilenet_v2",["MobileNetV2Model",wh]],["mobilenet_v3",["MobileNetV3Model",xh]],["mobilenet_v4",["MobileNetV4Model",Ph]],["maskformer",["MaskFormerModel",Ap]],["mgp-str",["MgpstrForSceneTextRecognition",Dh]],["style_text_to_speech_2",["StyleTextToSpeech2Model",jm]]]),W0=new Map([["t5",["T5Model",yt]],["longt5",["LongT5Model",nr]],["mt5",["MT5Model",Tr]],["bart",["BartModel",Zr]],["mbart",["MBartModel",Jr]],["marian",["MarianModel",lm]],["whisper",["WhisperModel",wa]],["m2m_100",["M2M100Model",dm]],["blenderbot",["BlenderbotModel",pr]],["blenderbot-small",["BlenderbotSmallModel",Kr]]]),U0=new Map([["mimi",["MimiModel",Wh]],["dac",["DacModel",qh]],["snac",["SnacModel",Jh]]]),G0=new Map([["bloom",["BloomModel",__]],["jais",["JAISModel",Jo]],["gpt2",["GPT2Model",$a]],["gptj",["GPTJModel",za]],["gpt_bigcode",["GPTBigCodeModel",m]],["gpt_neo",["GPTNeoModel",La]],["gpt_neox",["GPTNeoXModel",Zo]],["codegen",["CodeGenModel",B]],["llama",["LlamaModel",Ee]],["nanochat",["NanoChatModel",Dt]],["arcee",["ArceeModel",Gs]],["lfm2",["Lfm2Model",Tu]],["smollm3",["SmolLM3Model",Eu]],["exaone",["ExaoneModel",Au]],["olmo",["OlmoModel",Lu]],["olmo2",["Olmo2Model",zu]],["mobilellm",["MobileLLMModel",Du]],["granite",["GraniteModel",Nu]],["granitemoehybrid",["GraniteMoeHybridModel",Vu]],["cohere",["CohereModel",Uu]],["gemma",["GemmaModel",Ku]],["gemma2",["Gemma2Model",qu]],["vaultgemma",["VaultGemmaModel",Xu]],["gemma3_text",["Gemma3Model",Yu]],["helium",["HeliumModel",Cu]],["glm",["GlmModel",Fu]],["openelm",["OpenELMModel",e_]],["qwen2",["Qwen2Model",r_]],["qwen3",["Qwen3Model",o_]],["phi",["PhiModel",l_]],["phi3",["Phi3Model",d_]],["mpt",["MptModel",m_]],["opt",["OPTModel",f_]],["mistral",["MistralModel",qm]],["ministral",["MinistralModel",Xm]],["ministral3",["Ministral3Model",Ym]],["ernie4_5",["Ernie4_5Model",eh]],["starcoder2",["Starcoder2Model",rh]],["falcon",["FalconModel",oh]],["stablelm",["StableLmModel",_h]],["modernbert-decoder",["ModernBertDecoderModel",At]]]),hc=new Map([["speecht5",["SpeechT5ForSpeechToText",Vm]],["whisper",["WhisperForConditionalGeneration",Us]],["lite-whisper",["LiteWhisperForConditionalGeneration",Sn]],["moonshine",["MoonshineForConditionalGeneration",Fn]]]),ef=new Map([["speecht5",["SpeechT5ForTextToSpeech",Wm]]]),tf=new Map([["vits",["VitsModel",ic]],["musicgen",["MusicgenForConditionalGeneration",uc]],["supertonic",["SupertonicForConditionalGeneration",ec]]]),rf=new Map([["bert",["BertForSequenceClassification",pe]],["neobert",["NeoBertForSequenceClassification",Re]],["modernbert",["ModernBertForSequenceClassification",pt]],["roformer",["RoFormerForSequenceClassification",Zs]],["electra",["ElectraForSequenceClassification",k]],["esm",["EsmForSequenceClassification",As]],["convbert",["ConvBertForSequenceClassification",Cs]],["camembert",["CamembertForSequenceClassification",xe]],["deberta",["DebertaForSequenceClassification",gt]],["deberta-v2",["DebertaV2ForSequenceClassification",Lr]],["mpnet",["MPNetForSequenceClassification",Vs]],["albert",["AlbertForSequenceClassification",Xe]],["distilbert",["DistilBertForSequenceClassification",as]],["roberta",["RobertaForSequenceClassification",fa]],["xlm",["XLMForSequenceClassification",vn]],["xlm-roberta",["XLMRobertaForSequenceClassification",En]],["bart",["BartForSequenceClassification",vr]],["mbart",["MBartForSequenceClassification",Fr]],["mobilebert",["MobileBertForSequenceClassification",Ue]],["squeezebert",["SqueezeBertForSequenceClassification",se]]]),sf=new Map([["bert",["BertForTokenClassification",Pe]],["neobert",["NeoBertForTokenClassification",Ne]],["modernbert",["ModernBertForTokenClassification",Ke]],["roformer",["RoFormerForTokenClassification",or]],["electra",["ElectraForTokenClassification",Q]],["esm",["EsmForTokenClassification",$s]],["convbert",["ConvBertForTokenClassification",qt]],["camembert",["CamembertForTokenClassification",et]],["deberta",["DebertaForTokenClassification",Nt]],["deberta-v2",["DebertaV2ForTokenClassification",_s]],["mpnet",["MPNetForTokenClassification",Wo]],["distilbert",["DistilBertForTokenClassification",Nr]],["roberta",["RobertaForTokenClassification",gn]],["xlm",["XLMForTokenClassification",xn]],["xlm-roberta",["XLMRobertaForTokenClassification",ga]]]),fc=new Map([["t5",["T5ForConditionalGeneration",Xt]],["longt5",["LongT5ForConditionalGeneration",Br]],["mt5",["MT5ForConditionalGeneration",zr]],["bart",["BartForConditionalGeneration",Yt]],["mbart",["MBartForConditionalGeneration",ms]],["marian",["MarianMTModel",cm]],["m2m_100",["M2M100ForConditionalGeneration",um]],["blenderbot",["BlenderbotForConditionalGeneration",wr]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",Ws]]]),gc=new Map([["bloom",["BloomForCausalLM",p_]],["gpt2",["GPT2LMHeadModel",Da]],["jais",["JAISLMHeadModel",Oa]],["gptj",["GPTJForCausalLM",Ra]],["gpt_bigcode",["GPTBigCodeForCausalLM",T]],["gpt_neo",["GPTNeoForCausalLM",Mo]],["gpt_neox",["GPTNeoXForCausalLM",Ba]],["codegen",["CodeGenForCausalLM",V]],["llama",["LlamaForCausalLM",Be]],["nanochat",["NanoChatForCausalLM",Wt]],["llama4_text",["Llama4ForCausalLM",nt]],["arcee",["ArceeForCausalLM",Wn]],["lfm2",["Lfm2ForCausalLM",Pu]],["smollm3",["SmolLM3ForCausalLM",ku]],["exaone",["ExaoneForCausalLM",$u]],["olmo",["OlmoForCausalLM",Bu]],["olmo2",["Olmo2ForCausalLM",Ru]],["mobilellm",["MobileLLMForCausalLM",Ou]],["granite",["GraniteForCausalLM",ju]],["granitemoehybrid",["GraniteMoeHybridForCausalLM",Wu]],["cohere",["CohereForCausalLM",Gu]],["gemma",["GemmaForCausalLM",Hu]],["gemma2",["Gemma2ForCausalLM",Qu]],["vaultgemma",["VaultGemmaForCausalLM",Ju]],["gemma3_text",["Gemma3ForCausalLM",Zu]],["helium",["HeliumForCausalLM",Su]],["glm",["GlmForCausalLM",Iu]],["openelm",["OpenELMForCausalLM",t_]],["qwen2",["Qwen2ForCausalLM",s_]],["qwen3",["Qwen3ForCausalLM",a_]],["phi",["PhiForCausalLM",c_]],["phi3",["Phi3ForCausalLM",u_]],["mpt",["MptForCausalLM",h_]],["opt",["OPTForCausalLM",g_]],["mbart",["MBartForCausalLM",is]],["mistral",["MistralForCausalLM",Qm]],["ministral",["MinistralForCausalLM",Jm]],["ministral3",["Ministral3ForCausalLM",Zm]],["ernie4_5",["Ernie4_5ForCausalLM",th]],["starcoder2",["Starcoder2ForCausalLM",sh]],["falcon",["FalconForCausalLM",ah]],["trocr",["TrOCRForCausalLM",Hm]],["stablelm",["StableLmForCausalLM",ph]],["modernbert-decoder",["ModernBertDecoderForCausalLM",Lt]],["phi3_v",["Phi3VForCausalLM",Pa]]]),K0=new Map([["multi_modality",["MultiModalityCausalLM",Ih]]]),of=new Map([["bert",["BertForMaskedLM",ve]],["neobert",["NeoBertForMaskedLM",$e]],["modernbert",["ModernBertForMaskedLM",je]],["roformer",["RoFormerForMaskedLM",Ys]],["electra",["ElectraForMaskedLM",Xr]],["esm",["EsmForMaskedLM",Is]],["convbert",["ConvBertForMaskedLM",ft]],["camembert",["CamembertForMaskedLM",ce]],["deberta",["DebertaForMaskedLM",tt]],["deberta-v2",["DebertaV2ForMaskedLM",Cr]],["mpnet",["MPNetForMaskedLM",Ds]],["albert",["AlbertForMaskedLM",He]],["distilbert",["DistilBertForMaskedLM",ar]],["roberta",["RobertaForMaskedLM",fn]],["xlm",["XLMWithLMHeadModel",bn]],["xlm-roberta",["XLMRobertaForMaskedLM",Pn]],["mobilebert",["MobileBertForMaskedLM",ze]],["squeezebert",["SqueezeBertForMaskedLM",te]]]),af=new Map([["bert",["BertForQuestionAnswering",fe]],["neobert",["NeoBertForQuestionAnswering",ot]],["roformer",["RoFormerForQuestionAnswering",Dr]],["electra",["ElectraForQuestionAnswering",N]],["convbert",["ConvBertForQuestionAnswering",Ss]],["camembert",["CamembertForQuestionAnswering",ut]],["deberta",["DebertaForQuestionAnswering",Qt]],["deberta-v2",["DebertaV2ForQuestionAnswering",Fs]],["mpnet",["MPNetForQuestionAnswering",de]],["albert",["AlbertForQuestionAnswering",Ze]],["distilbert",["DistilBertForQuestionAnswering",Gr]],["roberta",["RobertaForQuestionAnswering",Mn]],["xlm",["XLMForQuestionAnswering",yn]],["xlm-roberta",["XLMRobertaForQuestionAnswering",Ma]],["mobilebert",["MobileBertForQuestionAnswering",at]],["squeezebert",["SqueezeBertForQuestionAnswering",me]]]),Mc=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",ba]],["idefics3",["Idefics3ForConditionalGeneration",hs]],["smolvlm",["SmolVLMForConditionalGeneration",Ho]]]),nf=new Map([["llava",["LlavaForConditionalGeneration",ro]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",xa]],["moondream1",["Moondream1ForConditionalGeneration",In]],["florence2",["Florence2ForConditionalGeneration",$n]],["qwen2-vl",["Qwen2VLForConditionalGeneration",i_]],["idefics3",["Idefics3ForConditionalGeneration",hs]],["smolvlm",["SmolVLMForConditionalGeneration",Ho]],["paligemma",["PaliGemmaForConditionalGeneration",On]],["llava_qwen2",["LlavaQwen2ForCausalLM",ya]],["gemma3n",["Gemma3nForConditionalGeneration",Ta]],["mistral3",["Mistral3ForConditionalGeneration",Ln]]]),lf=new Map([["ultravox",["UltravoxModel",mc]],["voxtral",["VoxtralForConditionalGeneration",Nh]]]),H0=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",ba]]]),cf=new Map([["vit",["ViTForImageClassification",w_]],["ijepa",["IJepaForImageClassification",v_]],["pvt",["PvtForImageClassification",P_]],["vit_msn",["ViTMSNForImageClassification",S_]],["fastvit",["FastViTForImageClassification",$_]],["mobilevit",["MobileViTForImageClassification",B_]],["mobilevitv2",["MobileViTV2ForImageClassification",R_]],["beit",["BeitForImageClassification",G_]],["deit",["DeiTForImageClassification",cp]],["hiera",["HieraForImageClassification",up]],["convnext",["ConvNextForImageClassification",Rp]],["convnextv2",["ConvNextV2ForImageClassification",jp]],["dinov2",["Dinov2ForImageClassification",Wp]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",Gp]],["resnet",["ResNetForImageClassification",pp]],["swin",["SwinForImageClassification",hp]],["segformer",["SegformerForImageClassification",dh]],["efficientnet",["EfficientNetForImageClassification",hh]],["mobilenet_v1",["MobileNetV1ForImageClassification",gh]],["mobilenet_v2",["MobileNetV2ForImageClassification",bh]],["mobilenet_v3",["MobileNetV3ForImageClassification",yh]],["mobilenet_v4",["MobileNetV4ForImageClassification",Eh]]]),df=new Map([["detr",["DetrForObjectDetection",H_]],["rt_detr",["RTDetrForObjectDetection",X_]],["rt_detr_v2",["RTDetrV2ForObjectDetection",Y_]],["rf_detr",["RFDetrForObjectDetection",tp]],["d_fine",["DFineForObjectDetection",op]],["table-transformer",["TableTransformerForObjectDetection",np]],["yolos",["YolosForObjectDetection",Zp]]]),uf=new Map([["owlvit",["OwlViTForObjectDetection",j_]],["owlv2",["Owlv2ForObjectDetection",W_]],["grounding-dino",["GroundingDinoForObjectDetection",Jp]]]),sa=new Map([["detr",["DetrForSegmentation",Al]],["clipseg",["CLIPSegForImageSegmentation",fo]]]),_f=new Map([["segformer",["SegformerForSemanticSegmentation",uh]],["sapiens",["SapiensForSemanticSegmentation",yp]],["swin",["SwinForSemanticSegmentation",fp]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",Mh]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",vh]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",Th]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",kh]]]),pf=new Map([["detr",["DetrForSegmentation",Al]],["maskformer",["MaskFormerForInstanceSegmentation",$p]]]),mf=new Map([["sam",["SamModel",rm]],["sam2",["Sam2Model",Hn]],["edgetam",["EdgeTamModel",nm]],["sam3_tracker",["Sam3TrackerModel",im]]]),hf=new Map([["wav2vec2",["Wav2Vec2ForCTC",pm]],["wav2vec2-bert",["Wav2Vec2BertForCTC",Fm]],["unispeech",["UniSpeechForCTC",ym]],["unispeech-sat",["UniSpeechSatForCTC",Em]],["wavlm",["WavLMForCTC",Lm]],["hubert",["HubertForCTC",$m]],["parakeet_ctc",["ParakeetForCTC",gm]]]),ff=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",mm]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",Im]],["unispeech",["UniSpeechForSequenceClassification",Tm]],["unispeech-sat",["UniSpeechSatForSequenceClassification",km]],["wavlm",["WavLMForSequenceClassification",Bm]],["hubert",["HubertForSequenceClassification",Dm]],["audio-spectrogram-transformer",["ASTForAudioClassification",Cn]]]),gf=new Map([["wavlm",["WavLMForXVector",zm]]]),Mf=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",Cm]],["wavlm",["WavLMForAudioFrameClassification",Rm]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",hm]],["pyannote",["PyAnnoteForAudioFrameClassification",wm]]]),wf=new Map([["vitmatte",["VitMatteForImageMatting",O_]]]),q0=new Map([["patchtst",["PatchTSTForPrediction",Lh]],["patchtsmixer",["PatchTSMixerForPrediction",zh]]]),bf=new Map([["swin2sr",["Swin2SRForImageSuperResolution",Mp]]]),vf=new Map([["dpt",["DPTForDepthEstimation",bp]],["depth_anything",["DepthAnythingForDepthEstimation",xp]],["glpn",["GLPNForDepthEstimation",Op]],["sapiens",["SapiensForDepthEstimation",Tp]],["depth_pro",["DepthProForDepthEstimation",kp]],["metric3d",["Metric3DForDepthEstimation",Sp]],["metric3dv2",["Metric3Dv2ForDepthEstimation",Ip]]]),xf=new Map([["sapiens",["SapiensForNormalEstimation",Pp]]]),yf=new Map([["vitpose",["VitPoseForPoseEstimation",y_]]]),Tf=new Map([["clip",["CLIPVisionModelWithProjection",ka]],["siglip",["SiglipVisionModel",Sa]],["jina_clip",["JinaCLIPVisionModel",Aa]]]),Pf=[[V0,y.EncoderOnly],[W0,y.EncoderDecoder],[G0,y.DecoderOnly],[U0,y.AutoEncoder],[rf,y.EncoderOnly],[sf,y.EncoderOnly],[fc,y.Seq2Seq],[hc,y.Seq2Seq],[gc,y.DecoderOnly],[K0,y.MultiModality],[of,y.EncoderOnly],[af,y.EncoderOnly],[Mc,y.Vision2Seq],[nf,y.ImageTextToText],[lf,y.AudioTextToText],[cf,y.EncoderOnly],[sa,y.EncoderOnly],[pf,y.EncoderOnly],[_f,y.EncoderOnly],[wf,y.EncoderOnly],[q0,y.EncoderOnly],[bf,y.EncoderOnly],[vf,y.EncoderOnly],[xf,y.EncoderOnly],[yf,y.EncoderOnly],[df,y.EncoderOnly],[uf,y.EncoderOnly],[mf,y.MaskGeneration],[hf,y.EncoderOnly],[ff,y.EncoderOnly],[ef,y.Seq2Seq],[tf,y.EncoderOnly],[gf,y.EncoderOnly],[Mf,y.EncoderOnly],[Tf,y.EncoderOnly]];for(let[M,w]of Pf)for(let[j,ae]of M.values())P.set(j,w),f.set(ae,j),I.set(j,ae);let Q0=[["MusicgenForConditionalGeneration",uc,y.Musicgen],["Phi3VForCausalLM",Pa,y.Phi3V],["CLIPTextModelWithProjection",Ea,y.EncoderOnly],["SiglipTextModel",jn,y.EncoderOnly],["JinaCLIPTextModel",Ia,y.EncoderOnly],["ClapTextModelWithProjection",ih,y.EncoderOnly],["ClapAudioModelWithProjection",lh,y.EncoderOnly],["DacEncoderModel",Qh,y.EncoderOnly],["DacDecoderModel",Xh,y.EncoderOnly],["MimiEncoderModel",Uh,y.EncoderOnly],["MimiDecoderModel",Gh,y.EncoderOnly],["SnacEncoderModel",Yh,y.EncoderOnly],["SnacDecoderModel",Zh,y.EncoderOnly],["Gemma3nForConditionalGeneration",Ta,y.ImageAudioTextToText],["SupertonicForConditionalGeneration",ec,y.Supertonic]];for(let[M,w,j]of Q0)P.set(M,j),f.set(w,M),I.set(M,w);let Ef=new Map([["modnet",sa],["birefnet",sa],["isnet",sa],["ben",sa]]);for(let[M,w]of Ef.entries())w.set(M,["PreTrainedModel",A]),P.set(M,y.EncoderOnly),f.set(A,M),I.set(M,A);class X0 extends Ut{static MODEL_CLASS_MAPPINGS=Pf.map(w=>w[0]);static BASE_IF_FAIL=!0}class J0 extends Ut{static MODEL_CLASS_MAPPINGS=[rf]}class Y0 extends Ut{static MODEL_CLASS_MAPPINGS=[sf]}class Z0 extends Ut{static MODEL_CLASS_MAPPINGS=[fc]}class eT extends Ut{static MODEL_CLASS_MAPPINGS=[hc]}class tT extends Ut{static MODEL_CLASS_MAPPINGS=[ef]}class rT extends Ut{static MODEL_CLASS_MAPPINGS=[tf]}class sT extends Ut{static MODEL_CLASS_MAPPINGS=[gc]}class oT extends Ut{static MODEL_CLASS_MAPPINGS=[of]}class aT extends Ut{static MODEL_CLASS_MAPPINGS=[af]}class nT extends Ut{static MODEL_CLASS_MAPPINGS=[Mc]}class iT extends Ut{static MODEL_CLASS_MAPPINGS=[cf]}class lT extends Ut{static MODEL_CLASS_MAPPINGS=[sa]}class cT extends Ut{static MODEL_CLASS_MAPPINGS=[_f]}class dT extends Ut{static MODEL_CLASS_MAPPINGS=[pf]}class uT extends Ut{static MODEL_CLASS_MAPPINGS=[df]}class _T extends Ut{static MODEL_CLASS_MAPPINGS=[uf]}class pT extends Ut{static MODEL_CLASS_MAPPINGS=[mf]}class mT extends Ut{static MODEL_CLASS_MAPPINGS=[hf]}class hT extends Ut{static MODEL_CLASS_MAPPINGS=[ff]}class fT extends Ut{static MODEL_CLASS_MAPPINGS=[gf]}class gT extends Ut{static MODEL_CLASS_MAPPINGS=[Mf]}class MT extends Ut{static MODEL_CLASS_MAPPINGS=[H0]}class wT extends Ut{static MODEL_CLASS_MAPPINGS=[wf]}class bT extends Ut{static MODEL_CLASS_MAPPINGS=[bf]}class vT extends Ut{static MODEL_CLASS_MAPPINGS=[vf]}class xT extends Ut{static MODEL_CLASS_MAPPINGS=[xf]}class yT extends Ut{static MODEL_CLASS_MAPPINGS=[yf]}class TT extends Ut{static MODEL_CLASS_MAPPINGS=[Tf]}class PT extends Ut{static MODEL_CLASS_MAPPINGS=[nf]}class ET extends Ut{static MODEL_CLASS_MAPPINGS=[lf]}class kT extends le{constructor({logits:w,past_key_values:j,encoder_outputs:ae,decoder_attentions:_e=null,cross_attentions:he=null}){super(),this.logits=w,this.past_key_values=j,this.encoder_outputs=ae,this.decoder_attentions=_e,this.cross_attentions=he}}class Pt extends le{constructor({logits:w,...j}){super(),this.logits=w;let ae=Object.values(j);ae.length>0&&(this.attentions=ae)}}class kf extends le{constructor({logits:w,embeddings:j}){super(),this.logits=w,this.embeddings=j}}class Er extends le{constructor({logits:w}){super(),this.logits=w}}class Ir extends le{constructor({logits:w}){super(),this.logits=w}}class jr extends le{constructor({start_logits:w,end_logits:j}){super(),this.start_logits=w,this.end_logits=j}}class ao extends le{constructor({logits:w}){super(),this.logits=w}}class CT extends le{constructor({logits:w,past_key_values:j}){super(),this.logits=w,this.past_key_values=j}}class Cf extends le{constructor({alphas:w}){super(),this.alphas=w}}class Sf extends le{constructor({waveform:w,spectrogram:j}){super(),this.waveform=w,this.spectrogram=j}}}),"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":((e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(l,c){return(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:c,transpose:!0})}async _call(l){(0,s.validate_audio_inputs)(l,"ASTFeatureExtractor");let c=await this._extract_fbank_features(l,this.config.max_length);if(this.config.do_normalize){let _=this.std*2,u=c.data;for(let d=0;d<u.length;++d)u[d]=(u[d]-this.mean)/_}return{input_values:c.unsqueeze_(0)}}}}),"./src/models/auto/feature_extraction_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoFeatureExtractor:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/feature_extraction_utils.js"),n=t("./src/models/feature_extractors.js");class i{static async from_pretrained(c,_={}){let u=await(0,o.getModelJSON)(c,s.FEATURE_EXTRACTOR_NAME,!0,_),d=u.feature_extractor_type,g=n[d];if(!g)throw new Error(`Unknown feature_extractor_type: '${d}'. Please report this at ${s.GITHUB_ISSUE_URL}.`);return new g(u)}}}),"./src/models/auto/image_processing_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoImageProcessor:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/image_processors_utils.js"),n=t("./src/models/image_processors.js");class i{static async from_pretrained(c,_={}){let u=await(0,o.getModelJSON)(c,s.IMAGE_PROCESSOR_NAME,!0,_),d=u.image_processor_type??u.feature_extractor_type,g=n[d?.replace(/Fast$/,"")];return g||(d!==void 0&&console.warn(`Image processor type '${d}' not found, assuming base ImageProcessor. Please report this at ${s.GITHUB_ISSUE_URL}.`),g=a.ImageProcessor),new g(u)}}}),"./src/models/auto/processing_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoProcessor:()=>c});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/processing_utils.js"),n=t("./src/models/processors.js"),i=t("./src/models/image_processors.js"),l=t("./src/models/feature_extractors.js");class c{static async from_pretrained(u,d={}){let g=await(0,o.getModelJSON)(u,s.IMAGE_PROCESSOR_NAME,!0,d),{image_processor_type:h,feature_extractor_type:x,processor_class:F}=g;if(F&&n[F])return n[F].from_pretrained(u,d);if(!h&&!x)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");let v={};if(h){let C=i[h.replace(/Fast$/,"")];if(!C)throw new Error(`Unknown image_processor_type: '${h}'.`);v.image_processor=new C(g)}if(x){let C=i[x];if(C)v.image_processor=new C(g);else{let y=l[x];if(!y)throw new Error(`Unknown feature_extractor_type: '${x}'.`);v.feature_extractor=new y(g)}}let b={};return new a.Processor(b,v,null)}}}),"./src/models/beit/image_processing_beit.js":((e,r,t)=>{t.r(r),t.d(r,{BeitFeatureExtractor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/bit/image_processing_bit.js":((e,r,t)=>{t.r(r),t.d(r,{BitImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/chinese_clip/image_processing_chinese_clip.js":((e,r,t)=>{t.r(r),t.d(r,{ChineseCLIPFeatureExtractor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/clap/feature_extraction_clap.js":((e,r,t)=>{t.r(r),t.d(r,{ClapFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l),this.mel_filters=(0,a.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=(0,a.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=(0,a.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(l,c,_,u){let d,g=!1,h=l.length-c;if(h>0)if(_==="rand_trunc"){g=!0;let x=Math.floor(Math.random()*(h+1));l=l.subarray(x,x+c),d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${_}" not implemented`);else{if(h<0){let x=new Float64Array(c);if(x.set(l),u==="repeat")for(let F=l.length;F<c;F+=l.length)x.set(l.subarray(0,Math.min(l.length,c-F)),F);else if(u==="repeatpad")for(let F=l.length;F<-h;F+=l.length)x.set(l,F);l=x}if(_==="fusion")throw new Error(`Truncation strategy "${_}" not implemented`);d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}return d.unsqueeze_(0)}async _extract_fbank_features(l,c,_=null){return(0,a.spectrogram)(l,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:c,log_mel:"dB",max_num_frames:_,do_pad:!1,transpose:!0})}async _call(l,{max_length:c=null}={}){return(0,s.validate_audio_inputs)(l,"ClapFeatureExtractor"),{input_features:(await this._get_input_mel(l,c??this.config.nb_max_samples,this.config.truncation,this.config.padding)).unsqueeze_(0)}}}}),"./src/models/clip/image_processing_clip.js":((e,r,t)=>{t.r(r),t.d(r,{CLIPFeatureExtractor:()=>a,CLIPImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/convnext/image_processing_convnext.js":((e,r,t)=>{t.r(r),t.d(r,{ConvNextFeatureExtractor:()=>a,ConvNextImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(i){super(i),this.crop_pct=this.config.crop_pct??224/256}async resize(i){let l=this.size?.shortest_edge;if(l===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(l<384){let c=Math.floor(l/this.crop_pct),[_,u]=this.get_resize_output_image_size(i,{shortest_edge:c});i=await i.resize(_,u,{resample:this.resample}),i=await i.center_crop(l,l)}else i=await i.resize(l,l,{resample:this.resample});return i}}class a extends o{}}),"./src/models/dac/feature_extraction_dac.js":((e,r,t)=>{t.r(r),t.d(r,{DacFeatureExtractor:()=>o});var s=t("./src/models/encodec/feature_extraction_encodec.js");class o extends s.EncodecFeatureExtractor{}}),"./src/models/deit/image_processing_deit.js":((e,r,t)=>{t.r(r),t.d(r,{DeiTFeatureExtractor:()=>a,DeiTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/detr/image_processing_detr.js":((e,r,t)=>{t.r(r),t.d(r,{DetrFeatureExtractor:()=>n,DetrImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(l){let c=await super._call(l),_=[c.pixel_values.dims[0],64,64],u=(0,o.full)(_,1n);return{...c,pixel_mask:u}}post_process_object_detection(...l){return(0,s.post_process_object_detection)(...l)}post_process_panoptic_segmentation(...l){return(0,s.post_process_panoptic_segmentation)(...l)}post_process_instance_segmentation(...l){return(0,s.post_process_instance_segmentation)(...l)}}class n extends a{}}),"./src/models/dinov3_vit/image_processing_dinov3_vit.js":((e,r,t)=>{t.r(r),t.d(r,{DINOv3ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/donut/image_processing_donut.js":((e,r,t)=>{t.r(r),t.d(r,{DonutFeatureExtractor:()=>a,DonutImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(i,l,c,_={}){let[u,d,g]=l,h=this.image_mean;Array.isArray(this.image_mean)||(h=new Array(g).fill(h));let x=this.image_std;Array.isArray(x)||(x=new Array(g).fill(h));let F=h.map((v,b)=>-v/x[b]);return super.pad_image(i,l,c,{center:!0,constant_values:F,..._})}}class a extends o{}}),"./src/models/dpt/image_processing_dpt.js":((e,r,t)=>{t.r(r),t.d(r,{DPTFeatureExtractor:()=>a,DPTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/efficientnet/image_processing_efficientnet.js":((e,r,t)=>{t.r(r),t.d(r,{EfficientNetImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(n){super(n),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map(i=>i*i))}}}),"./src/models/encodec/feature_extraction_encodec.js":((e,r,t)=>{t.r(r),t.d(r,{EncodecFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{async _call(i){(0,s.validate_audio_inputs)(i,"EncodecFeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=this.config.feature_size;if(i.length%l!==0)throw new Error(`The length of the audio data must be a multiple of the number of channels (${l}).`);let c=[1,l,i.length/l];return{input_values:new o.Tensor("float32",i,c)}}}}),"./src/models/feature_extractors.js":((e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>s.ASTFeatureExtractor,ClapFeatureExtractor:()=>a.ClapFeatureExtractor,DacFeatureExtractor:()=>n.DacFeatureExtractor,EncodecFeatureExtractor:()=>o.EncodecFeatureExtractor,Gemma3nAudioFeatureExtractor:()=>i.Gemma3nAudioFeatureExtractor,ImageFeatureExtractor:()=>v.ImageProcessor,MoonshineFeatureExtractor:()=>l.MoonshineFeatureExtractor,ParakeetFeatureExtractor:()=>c.ParakeetFeatureExtractor,PyAnnoteFeatureExtractor:()=>_.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>d.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>g.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>h.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>x.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>F.WhisperFeatureExtractor});var s=t("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),o=t("./src/models/encodec/feature_extraction_encodec.js"),a=t("./src/models/clap/feature_extraction_clap.js"),n=t("./src/models/dac/feature_extraction_dac.js"),i=t("./src/models/gemma3n/feature_extraction_gemma3n.js"),l=t("./src/models/moonshine/feature_extraction_moonshine.js"),c=t("./src/models/parakeet/feature_extraction_parakeet.js"),_=t("./src/models/pyannote/feature_extraction_pyannote.js"),u=t("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),d=t("./src/models/snac/feature_extraction_snac.js"),g=t("./src/models/speecht5/feature_extraction_speecht5.js"),h=t("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),x=t("./src/models/wespeaker/feature_extraction_wespeaker.js"),F=t("./src/models/whisper/feature_extraction_whisper.js"),v=t("./src/base/image_processors_utils.js")}),"./src/models/florence2/processing_florence2.js":((e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;constructor(l,c,_){super(l,c,_);let{tasks_answer_post_processing_type:u,task_prompts_without_inputs:d,task_prompts_with_input:g}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(u??{})),this.task_prompts_without_inputs=new Map(Object.entries(d??{})),this.task_prompts_with_input=new Map(Object.entries(g??{})),this.regexes={quad_boxes:/(.+?)<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm,bboxes:/([^<]+)?<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm},this.size_per_bin=1e3}construct_prompts(l){typeof l=="string"&&(l=[l]);let c=[];for(let _ of l)if(this.task_prompts_without_inputs.has(_))c.push(this.task_prompts_without_inputs.get(_));else{for(let[u,d]of this.task_prompts_with_input)if(_.includes(u)){c.push(d.replaceAll("{input}",_).replaceAll(u,""));break}c.length!==l.length&&c.push(_)}return c}post_process_generation(l,c,_){let u=this.tasks_answer_post_processing_type.get(c)??"pure_text";l=l.replaceAll("<s>","").replaceAll("</s>","");let d;switch(u){case"pure_text":d=l;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":let g=u==="ocr"?"quad_boxes":"bboxes",h=l.matchAll(this.regexes[g]),x=[],F=[];for(let[v,b,...C]of h)x.push(b?b.trim():x.at(-1)??""),F.push(C.map((y,P)=>(Number(y)+.5)/this.size_per_bin*_[P%2]));d={labels:x,[g]:F};break;default:throw new Error(`Task "${c}" (of type "${u}") not yet implemented.`)}return{[c]:d}}async _call(l,c=null,_={}){if(!l&&!c)throw new Error("Either text or images must be provided");let u=await this.image_processor(l,_),d=c?this.tokenizer(this.construct_prompts(c),_):{};return{...u,...d}}}}),"./src/models/gemma3n/feature_extraction_gemma3n.js":((e,r,t)=>{t.r(r),t.d(r,{Gemma3nAudioFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let{fft_length:c,feature_size:_,min_frequency:u,max_frequency:d,sampling_rate:g,frame_length:h}=this.config,x=(0,a.mel_filter_bank)(Math.floor(1+c/2),_,u,d,g,null,"htk",!1);this.mel_filters=x,this.window=(0,a.window_function)(h,"hann")}async _extract_fbank_features(l,c){return(0,a.spectrogram)(l,this.window,this.config.frame_length,this.config.hop_length,{fft_length:this.config.fft_length,center:!1,onesided:!0,preemphasis:this.config.preemphasis,preemphasis_htk_flavor:this.config.preemphasis_htk_flavor,mel_filters:this.mel_filters,log_mel:"log",mel_floor:this.config.mel_floor,remove_dc_offset:!1,transpose:!0})}async _call(l,{max_length:c=48e4,truncation:_=!0,padding:u=!0,pad_to_multiple_of:d=128}={}){if((0,s.validate_audio_inputs)(l,"Gemma3nAudioFeatureExtractor"),_&&l.length>c&&(l=l.slice(0,c)),u&&l.length%d!==0){let x=d-l.length%d,F=new Float64Array(l.length+x);F.set(l),this.config.padding_value!==0&&F.fill(this.config.padding_value,l.length),l=F}let g=await this._extract_fbank_features(l,this.config.max_length),h=(0,o.full)([1,g.dims[0]],!0);return{input_features:g.unsqueeze_(0),input_features_mask:h}}}}),"./src/models/gemma3n/processing_gemma3n.js":((e,r,t)=>{t.r(r),t.d(r,{Gemma3nProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/tokenizers.js"),i=t("./src/utils/image.js"),l=t("./src/utils/audio.js");class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static feature_extractor_class=a.AutoFeatureExtractor;static tokenizer_class=n.AutoTokenizer;static uses_processor_config=!0;static uses_chat_template_file=!0;constructor(u,d,g){super(u,d,g),this.audio_seq_length=this.config.audio_seq_length,this.image_seq_length=this.config.image_seq_length;let{audio_token_id:h,boa_token:x,audio_token:F,eoa_token:v,image_token_id:b,boi_token:C,image_token:y,eoi_token:P}=this.tokenizer.config;this.audio_token_id=h,this.boa_token=x,this.audio_token=F;let I=F.repeat(this.audio_seq_length);this.full_audio_sequence=`
|
|
2838
|
+
`)}}class c extends l{constructor(u,{skip_prompt:d=!1,callback_function:g=null,token_callback_function:h=null,on_chunk_start:x=null,on_chunk_end:F=null,on_finalize:v=null,time_precision:b=.02,skip_special_tokens:C=!0,decode_kwargs:y={}}={}){super(u,{skip_prompt:d,skip_special_tokens:C,callback_function:g,token_callback_function:h,decode_kwargs:y}),this.timestamp_begin=u.timestamp_begin,this.on_chunk_start=x,this.on_chunk_end=F,this.on_finalize=v,this.time_precision=b,this.waiting_for_timestamp=!1}put(u){if(u.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");let d=u[0];if(d.length===1){let g=Number(d[0])-this.timestamp_begin;if(g>=0){let h=g*this.time_precision;this.waiting_for_timestamp?this.on_chunk_end?.(h):this.on_chunk_start?.(h),this.waiting_for_timestamp=!this.waiting_for_timestamp,this.token_callback_function?.(d);return}}return super.put(u)}end(){super.end(),this.on_finalize?.()}}}),"./src/models.js":((e,r,t)=>{t.r(r),t.d(r,{ASTForAudioClassification:()=>Sn,ASTModel:()=>Cn,ASTPreTrainedModel:()=>Go,AlbertForMaskedLM:()=>He,AlbertForQuestionAnswering:()=>Ze,AlbertForSequenceClassification:()=>Xe,AlbertModel:()=>Ye,AlbertPreTrainedModel:()=>Ce,ArceeForCausalLM:()=>Un,ArceeModel:()=>Gs,ArceePreTrainedModel:()=>xr,AutoModel:()=>J0,AutoModelForAudioClassification:()=>fT,AutoModelForAudioFrameClassification:()=>MT,AutoModelForAudioTextToText:()=>kT,AutoModelForCTC:()=>hT,AutoModelForCausalLM:()=>oT,AutoModelForDepthEstimation:()=>xT,AutoModelForDocumentQuestionAnswering:()=>wT,AutoModelForImageClassification:()=>lT,AutoModelForImageFeatureExtraction:()=>PT,AutoModelForImageMatting:()=>bT,AutoModelForImageSegmentation:()=>cT,AutoModelForImageTextToText:()=>ET,AutoModelForImageToImage:()=>vT,AutoModelForMaskGeneration:()=>mT,AutoModelForMaskedLM:()=>aT,AutoModelForNormalEstimation:()=>yT,AutoModelForObjectDetection:()=>_T,AutoModelForPoseEstimation:()=>TT,AutoModelForQuestionAnswering:()=>nT,AutoModelForSemanticSegmentation:()=>dT,AutoModelForSeq2SeqLM:()=>eT,AutoModelForSequenceClassification:()=>Y0,AutoModelForSpeechSeq2Seq:()=>tT,AutoModelForTextToSpectrogram:()=>rT,AutoModelForTextToWaveform:()=>sT,AutoModelForTokenClassification:()=>Z0,AutoModelForUniversalSegmentation:()=>uT,AutoModelForVision2Seq:()=>iT,AutoModelForXVector:()=>gT,AutoModelForZeroShotObjectDetection:()=>pT,BartForConditionalGeneration:()=>Yt,BartForSequenceClassification:()=>vr,BartModel:()=>Zr,BartPretrainedModel:()=>Pr,BaseModelOutput:()=>ge,BeitForImageClassification:()=>K_,BeitModel:()=>G_,BeitPreTrainedModel:()=>Il,BertForMaskedLM:()=>ve,BertForQuestionAnswering:()=>fe,BertForSequenceClassification:()=>pe,BertForTokenClassification:()=>Pe,BertModel:()=>Ae,BertPreTrainedModel:()=>be,BlenderbotForConditionalGeneration:()=>wr,BlenderbotModel:()=>pr,BlenderbotPreTrainedModel:()=>lr,BlenderbotSmallForConditionalGeneration:()=>Ws,BlenderbotSmallModel:()=>Kr,BlenderbotSmallPreTrainedModel:()=>er,BloomForCausalLM:()=>m_,BloomModel:()=>p_,BloomPreTrainedModel:()=>wl,CLIPModel:()=>Qo,CLIPPreTrainedModel:()=>fs,CLIPSegForImageSegmentation:()=>fo,CLIPSegModel:()=>es,CLIPSegPreTrainedModel:()=>so,CLIPTextModel:()=>Nn,CLIPTextModelWithProjection:()=>ka,CLIPVisionModel:()=>jn,CLIPVisionModelWithProjection:()=>Ca,CamembertForMaskedLM:()=>ce,CamembertForQuestionAnswering:()=>ut,CamembertForSequenceClassification:()=>xe,CamembertForTokenClassification:()=>et,CamembertModel:()=>Z,CamembertPreTrainedModel:()=>K,CausalLMOutput:()=>ao,CausalLMOutputWithPast:()=>ST,ChineseCLIPModel:()=>ho,ChineseCLIPPreTrainedModel:()=>Ia,ClapAudioModelWithProjection:()=>ch,ClapModel:()=>ih,ClapPreTrainedModel:()=>Yn,ClapTextModelWithProjection:()=>lh,CodeGenForCausalLM:()=>V,CodeGenModel:()=>B,CodeGenPreTrainedModel:()=>$,CohereForCausalLM:()=>Ku,CohereModel:()=>Gu,CoherePreTrainedModel:()=>cl,ConvBertForMaskedLM:()=>ft,ConvBertForQuestionAnswering:()=>Ss,ConvBertForSequenceClassification:()=>Cs,ConvBertForTokenClassification:()=>qt,ConvBertModel:()=>Rs,ConvBertPreTrainedModel:()=>Yr,ConvNextForImageClassification:()=>Np,ConvNextModel:()=>Rp,ConvNextPreTrainedModel:()=>Kl,ConvNextV2ForImageClassification:()=>Vp,ConvNextV2Model:()=>jp,ConvNextV2PreTrainedModel:()=>Hl,DFineForObjectDetection:()=>ap,DFineModel:()=>op,DFinePreTrainedModel:()=>Bl,DINOv3ConvNextModel:()=>Xp,DINOv3ConvNextPreTrainedModel:()=>Qp,DINOv3ViTModel:()=>qp,DINOv3ViTPreTrainedModel:()=>Hp,DPTForDepthEstimation:()=>vp,DPTModel:()=>bp,DPTPreTrainedModel:()=>Wl,DacDecoderModel:()=>Jh,DacDecoderOutput:()=>qh,DacEncoderModel:()=>Xh,DacEncoderOutput:()=>Hh,DacModel:()=>Qh,DacPreTrainedModel:()=>ai,DebertaForMaskedLM:()=>tt,DebertaForQuestionAnswering:()=>Qt,DebertaForSequenceClassification:()=>gt,DebertaForTokenClassification:()=>Nt,DebertaModel:()=>wt,DebertaPreTrainedModel:()=>qe,DebertaV2ForMaskedLM:()=>Cr,DebertaV2ForQuestionAnswering:()=>Fs,DebertaV2ForSequenceClassification:()=>Lr,DebertaV2ForTokenClassification:()=>_s,DebertaV2Model:()=>Or,DebertaV2PreTrainedModel:()=>ur,DecisionTransformerModel:()=>Fh,DecisionTransformerPreTrainedModel:()=>Sh,DeiTForImageClassification:()=>dp,DeiTModel:()=>cp,DeiTPreTrainedModel:()=>Rl,DepthAnythingForDepthEstimation:()=>yp,DepthAnythingPreTrainedModel:()=>xp,DepthProForDepthEstimation:()=>Cp,DepthProPreTrainedModel:()=>kp,DetrForObjectDetection:()=>q_,DetrForSegmentation:()=>Al,DetrModel:()=>H_,DetrObjectDetectionOutput:()=>$l,DetrPreTrainedModel:()=>Gn,DetrSegmentationOutput:()=>Q_,Dinov2ForImageClassification:()=>Up,Dinov2Model:()=>Wp,Dinov2PreTrainedModel:()=>ql,Dinov2WithRegistersForImageClassification:()=>Kp,Dinov2WithRegistersModel:()=>Gp,Dinov2WithRegistersPreTrainedModel:()=>Ql,DistilBertForMaskedLM:()=>ar,DistilBertForQuestionAnswering:()=>Gr,DistilBertForSequenceClassification:()=>as,DistilBertForTokenClassification:()=>Nr,DistilBertModel:()=>Ns,DistilBertPreTrainedModel:()=>gr,DonutSwinModel:()=>zp,DonutSwinPreTrainedModel:()=>Bp,EdgeTamModel:()=>im,EfficientNetForImageClassification:()=>fh,EfficientNetModel:()=>hh,EfficientNetPreTrainedModel:()=>cc,ElectraForMaskedLM:()=>Xr,ElectraForQuestionAnswering:()=>N,ElectraForSequenceClassification:()=>k,ElectraForTokenClassification:()=>Q,ElectraModel:()=>St,ElectraPreTrainedModel:()=>Qr,Ernie4_5ForCausalLM:()=>rh,Ernie4_5Model:()=>th,Ernie4_5PreTrainedModel:()=>oc,EsmForMaskedLM:()=>Is,EsmForSequenceClassification:()=>As,EsmForTokenClassification:()=>$s,EsmModel:()=>ps,EsmPreTrainedModel:()=>_r,ExaoneForCausalLM:()=>Du,ExaoneModel:()=>$u,ExaonePreTrainedModel:()=>sl,FalconForCausalLM:()=>nh,FalconModel:()=>ah,FalconPreTrainedModel:()=>nc,FastViTForImageClassification:()=>D_,FastViTModel:()=>$_,FastViTPreTrainedModel:()=>El,Florence2ForConditionalGeneration:()=>Dn,Florence2PreTrainedModel:()=>$n,GLPNForDepthEstimation:()=>Lp,GLPNModel:()=>Op,GLPNPreTrainedModel:()=>Gl,GPT2LMHeadModel:()=>Oa,GPT2Model:()=>Da,GPT2PreTrainedModel:()=>go,GPTBigCodeForCausalLM:()=>T,GPTBigCodeModel:()=>m,GPTBigCodePreTrainedModel:()=>ra,GPTJForCausalLM:()=>Na,GPTJModel:()=>Ra,GPTJPreTrainedModel:()=>ta,GPTNeoForCausalLM:()=>Mo,GPTNeoModel:()=>Ba,GPTNeoPreTrainedModel:()=>Zo,GPTNeoXForCausalLM:()=>za,GPTNeoXModel:()=>ea,GPTNeoXPreTrainedModel:()=>wo,Gemma2ForCausalLM:()=>Xu,Gemma2Model:()=>Qu,Gemma2PreTrainedModel:()=>ul,Gemma3ForCausalLM:()=>e_,Gemma3Model:()=>Zu,Gemma3PreTrainedModel:()=>pl,Gemma3nForConditionalGeneration:()=>Pa,Gemma3nPreTrainedModel:()=>zn,GemmaForCausalLM:()=>qu,GemmaModel:()=>Hu,GemmaPreTrainedModel:()=>dl,GlmForCausalLM:()=>Au,GlmModel:()=>Iu,GlmPreTrainedModel:()=>rl,GraniteForCausalLM:()=>Vu,GraniteModel:()=>ju,GraniteMoeHybridForCausalLM:()=>Uu,GraniteMoeHybridModel:()=>Wu,GraniteMoeHybridPreTrainedModel:()=>ll,GranitePreTrainedModel:()=>il,GroundingDinoForObjectDetection:()=>Yp,GroundingDinoPreTrainedModel:()=>Jp,GroupViTModel:()=>A_,GroupViTPreTrainedModel:()=>I_,HeliumForCausalLM:()=>Fu,HeliumModel:()=>Su,HeliumPreTrainedModel:()=>tl,HieraForImageClassification:()=>_p,HieraModel:()=>up,HieraPreTrainedModel:()=>Nl,HubertForCTC:()=>Dm,HubertForSequenceClassification:()=>Om,HubertModel:()=>$m,HubertPreTrainedModel:()=>z0,IJepaForImageClassification:()=>x_,IJepaModel:()=>v_,IJepaPreTrainedModel:()=>yl,Idefics3ForConditionalGeneration:()=>hs,Idefics3PreTrainedModel:()=>mo,ImageMattingOutput:()=>Sf,JAISLMHeadModel:()=>La,JAISModel:()=>Yo,JAISPreTrainedModel:()=>Jo,JinaCLIPModel:()=>Wn,JinaCLIPPreTrainedModel:()=>ct,JinaCLIPTextModel:()=>Aa,JinaCLIPVisionModel:()=>$a,Lfm2ForCausalLM:()=>Eu,Lfm2Model:()=>Pu,Lfm2PreTrainedModel:()=>Zi,LiteWhisperForConditionalGeneration:()=>Fn,Llama4ForCausalLM:()=>nt,Llama4PreTrainedModel:()=>Je,LlamaForCausalLM:()=>Be,LlamaModel:()=>Ee,LlamaPreTrainedModel:()=>ie,LlavaForConditionalGeneration:()=>ro,LlavaOnevisionForConditionalGeneration:()=>ya,LlavaPreTrainedModel:()=>xa,LlavaQwen2ForCausalLM:()=>Ta,LongT5ForConditionalGeneration:()=>Br,LongT5Model:()=>nr,LongT5PreTrainedModel:()=>Mr,M2M100ForConditionalGeneration:()=>_m,M2M100Model:()=>um,M2M100PreTrainedModel:()=>Yl,MBartForCausalLM:()=>is,MBartForConditionalGeneration:()=>ms,MBartForSequenceClassification:()=>Fr,MBartModel:()=>Jr,MBartPreTrainedModel:()=>Sr,MPNetForMaskedLM:()=>Ds,MPNetForQuestionAnswering:()=>de,MPNetForSequenceClassification:()=>Vs,MPNetForTokenClassification:()=>Uo,MPNetModel:()=>js,MPNetPreTrainedModel:()=>Ht,MT5ForConditionalGeneration:()=>zr,MT5Model:()=>Tr,MT5PreTrainedModel:()=>ir,MarianMTModel:()=>dm,MarianModel:()=>cm,MarianPreTrainedModel:()=>Jl,MaskFormerForInstanceSegmentation:()=>Dp,MaskFormerModel:()=>$p,MaskFormerPreTrainedModel:()=>Ul,MaskedLMOutput:()=>Ir,Metric3DForDepthEstimation:()=>Fp,Metric3DPreTrainedModel:()=>Sp,Metric3Dv2ForDepthEstimation:()=>Ap,Metric3Dv2PreTrainedModel:()=>Ip,MgpstrForSceneTextRecognition:()=>Oh,MgpstrModelOutput:()=>$h,MgpstrPreTrainedModel:()=>Dh,MimiDecoderModel:()=>Kh,MimiDecoderOutput:()=>Wh,MimiEncoderModel:()=>Gh,MimiEncoderOutput:()=>Vh,MimiModel:()=>Uh,MimiPreTrainedModel:()=>oi,Ministral3ForCausalLM:()=>eh,Ministral3Model:()=>Zm,Ministral3PreTrainedModel:()=>sc,MinistralForCausalLM:()=>Ym,MinistralModel:()=>Jm,MinistralPreTrainedModel:()=>rc,Mistral3ForConditionalGeneration:()=>Bn,MistralForCausalLM:()=>Xm,MistralModel:()=>Qm,MistralPreTrainedModel:()=>tc,MobileBertForMaskedLM:()=>ze,MobileBertForQuestionAnswering:()=>at,MobileBertForSequenceClassification:()=>Ue,MobileBertModel:()=>Wr,MobileBertPreTrainedModel:()=>ns,MobileLLMForCausalLM:()=>Lu,MobileLLMModel:()=>Ou,MobileLLMPreTrainedModel:()=>ol,MobileNetV1ForImageClassification:()=>Mh,MobileNetV1ForSemanticSegmentation:()=>wh,MobileNetV1Model:()=>gh,MobileNetV1PreTrainedModel:()=>ei,MobileNetV2ForImageClassification:()=>vh,MobileNetV2ForSemanticSegmentation:()=>xh,MobileNetV2Model:()=>bh,MobileNetV2PreTrainedModel:()=>ti,MobileNetV3ForImageClassification:()=>Th,MobileNetV3ForSemanticSegmentation:()=>Ph,MobileNetV3Model:()=>yh,MobileNetV3PreTrainedModel:()=>ri,MobileNetV4ForImageClassification:()=>kh,MobileNetV4ForSemanticSegmentation:()=>Ch,MobileNetV4Model:()=>Eh,MobileNetV4PreTrainedModel:()=>si,MobileViTForImageClassification:()=>z_,MobileViTModel:()=>B_,MobileViTPreTrainedModel:()=>kl,MobileViTV2ForImageClassification:()=>N_,MobileViTV2Model:()=>R_,MobileViTV2PreTrainedModel:()=>Cl,ModelOutput:()=>le,ModernBertDecoderForCausalLM:()=>Lt,ModernBertDecoderModel:()=>At,ModernBertDecoderPreTrainedModel:()=>bt,ModernBertForMaskedLM:()=>je,ModernBertForSequenceClassification:()=>pt,ModernBertForTokenClassification:()=>Ke,ModernBertModel:()=>Qe,ModernBertPreTrainedModel:()=>De,Moondream1ForConditionalGeneration:()=>An,MoonshineForConditionalGeneration:()=>In,MoonshineModel:()=>Yi,MoonshinePreTrainedModel:()=>Ho,MptForCausalLM:()=>f_,MptModel:()=>h_,MptPreTrainedModel:()=>bl,MultiModalityCausalLM:()=>Ah,MultiModalityPreTrainedModel:()=>Ih,MusicgenForCausalLM:()=>V0,MusicgenForConditionalGeneration:()=>uc,MusicgenModel:()=>j0,MusicgenPreTrainedModel:()=>dc,NanoChatForCausalLM:()=>Wt,NanoChatModel:()=>Dt,NanoChatPreTrainedModel:()=>Tt,NeoBertForMaskedLM:()=>$e,NeoBertForQuestionAnswering:()=>ot,NeoBertForSequenceClassification:()=>Re,NeoBertForTokenClassification:()=>Ne,NeoBertModel:()=>We,NeoBertPreTrainedModel:()=>Te,NomicBertModel:()=>zt,NomicBertPreTrainedModel:()=>fr,OPTForCausalLM:()=>M_,OPTModel:()=>g_,OPTPreTrainedModel:()=>vl,Olmo2ForCausalLM:()=>Nu,Olmo2Model:()=>Ru,Olmo2PreTrainedModel:()=>nl,OlmoForCausalLM:()=>zu,OlmoModel:()=>Bu,OlmoPreTrainedModel:()=>al,OpenELMForCausalLM:()=>r_,OpenELMModel:()=>t_,OpenELMPreTrainedModel:()=>ml,OwlViTForObjectDetection:()=>V_,OwlViTModel:()=>j_,OwlViTPreTrainedModel:()=>Sl,Owlv2ForObjectDetection:()=>U_,Owlv2Model:()=>W_,Owlv2PreTrainedModel:()=>Fl,PaliGemmaForConditionalGeneration:()=>Ln,PaliGemmaPreTrainedModel:()=>On,ParakeetForCTC:()=>Mm,ParakeetPreTrainedModel:()=>gm,PatchTSMixerForPrediction:()=>Rh,PatchTSMixerModel:()=>zh,PatchTSMixerPreTrainedModel:()=>pc,PatchTSTForPrediction:()=>Bh,PatchTSTModel:()=>Lh,PatchTSTPreTrainedModel:()=>_c,Phi3ForCausalLM:()=>__,Phi3Model:()=>u_,Phi3PreTrainedModel:()=>Ml,Phi3VForCausalLM:()=>Ea,Phi3VPreTrainedModel:()=>Rn,PhiForCausalLM:()=>d_,PhiModel:()=>c_,PhiPreTrainedModel:()=>gl,PreTrainedModel:()=>A,PretrainedMixin:()=>Ut,PvtForImageClassification:()=>E_,PvtModel:()=>P_,PvtPreTrainedModel:()=>Tl,PyAnnoteForAudioFrameClassification:()=>bm,PyAnnoteModel:()=>wm,PyAnnotePreTrainedModel:()=>Zl,QuestionAnsweringModelOutput:()=>jr,Qwen2ForCausalLM:()=>o_,Qwen2Model:()=>s_,Qwen2PreTrainedModel:()=>hl,Qwen2VLForConditionalGeneration:()=>l_,Qwen2VLPreTrainedModel:()=>i_,Qwen3ForCausalLM:()=>n_,Qwen3Model:()=>a_,Qwen3PreTrainedModel:()=>fl,RFDetrForObjectDetection:()=>rp,RFDetrModel:()=>tp,RFDetrObjectDetectionOutput:()=>sp,RFDetrPreTrainedModel:()=>Ll,RTDetrForObjectDetection:()=>J_,RTDetrModel:()=>X_,RTDetrObjectDetectionOutput:()=>ja,RTDetrPreTrainedModel:()=>Dl,RTDetrV2ForObjectDetection:()=>Z_,RTDetrV2Model:()=>Y_,RTDetrV2ObjectDetectionOutput:()=>ep,RTDetrV2PreTrainedModel:()=>Ol,ResNetForImageClassification:()=>mp,ResNetModel:()=>pp,ResNetPreTrainedModel:()=>jl,RoFormerForMaskedLM:()=>Ys,RoFormerForQuestionAnswering:()=>Dr,RoFormerForSequenceClassification:()=>Zs,RoFormerForTokenClassification:()=>or,RoFormerModel:()=>zs,RoFormerPreTrainedModel:()=>yr,RobertaForMaskedLM:()=>gn,RobertaForQuestionAnswering:()=>wn,RobertaForSequenceClassification:()=>ga,RobertaForTokenClassification:()=>Mn,RobertaModel:()=>fn,RobertaPreTrainedModel:()=>Os,Sam2ImageSegmentationOutput:()=>am,Sam2Model:()=>qn,Sam2PreTrainedModel:()=>nm,Sam3TrackerModel:()=>lm,SamImageSegmentationOutput:()=>om,SamModel:()=>sm,SamPreTrainedModel:()=>rm,SapiensForDepthEstimation:()=>Pp,SapiensForNormalEstimation:()=>Ep,SapiensForSemanticSegmentation:()=>Tp,SapiensPreTrainedModel:()=>Hn,SegformerForImageClassification:()=>uh,SegformerForSemanticSegmentation:()=>_h,SegformerModel:()=>N0,SegformerPreTrainedModel:()=>Zn,Seq2SeqLMOutput:()=>CT,SequenceClassifierOutput:()=>Pt,SiglipModel:()=>Sa,SiglipPreTrainedModel:()=>Xo,SiglipTextModel:()=>Vn,SiglipVisionModel:()=>Fa,SmolLM3ForCausalLM:()=>Cu,SmolLM3Model:()=>ku,SmolLM3PreTrainedModel:()=>el,SmolVLMForConditionalGeneration:()=>qo,SnacDecoderModel:()=>ef,SnacEncoderModel:()=>Zh,SnacModel:()=>Yh,SnacPreTrainedModel:()=>ni,SpeechT5ForSpeechToText:()=>Wm,SpeechT5ForTextToSpeech:()=>Um,SpeechT5HifiGan:()=>Gm,SpeechT5Model:()=>R0,SpeechT5PreTrainedModel:()=>Jn,SqueezeBertForMaskedLM:()=>te,SqueezeBertForQuestionAnswering:()=>me,SqueezeBertForSequenceClassification:()=>se,SqueezeBertModel:()=>G,SqueezeBertPreTrainedModel:()=>S,StableLmForCausalLM:()=>mh,StableLmModel:()=>ph,StableLmPreTrainedModel:()=>lc,Starcoder2ForCausalLM:()=>oh,Starcoder2Model:()=>sh,Starcoder2PreTrainedModel:()=>ac,StyleTextToSpeech2Model:()=>Vm,StyleTextToSpeech2PreTrainedModel:()=>jm,SupertonicForConditionalGeneration:()=>ec,SupertonicPreTrainedModel:()=>Km,Swin2SRForImageSuperResolution:()=>wp,Swin2SRModel:()=>Mp,Swin2SRPreTrainedModel:()=>Vl,SwinForImageClassification:()=>fp,SwinForSemanticSegmentation:()=>gp,SwinModel:()=>hp,SwinPreTrainedModel:()=>Kn,T5ForConditionalGeneration:()=>Xt,T5Model:()=>yt,T5PreTrainedModel:()=>It,TableTransformerForObjectDetection:()=>ip,TableTransformerModel:()=>np,TableTransformerObjectDetectionOutput:()=>lp,TableTransformerPreTrainedModel:()=>zl,TokenClassifierOutput:()=>Er,TrOCRForCausalLM:()=>qm,TrOCRPreTrainedModel:()=>Hm,UltravoxModel:()=>mc,UltravoxPreTrainedModel:()=>Nh,UniSpeechForCTC:()=>Tm,UniSpeechForSequenceClassification:()=>Pm,UniSpeechModel:()=>ym,UniSpeechPreTrainedModel:()=>Qn,UniSpeechSatForAudioFrameClassification:()=>Sm,UniSpeechSatForCTC:()=>km,UniSpeechSatForSequenceClassification:()=>Cm,UniSpeechSatModel:()=>Em,UniSpeechSatPreTrainedModel:()=>Va,VaultGemmaForCausalLM:()=>Yu,VaultGemmaModel:()=>Ju,VaultGemmaPreTrainedModel:()=>_l,ViTForImageClassification:()=>b_,ViTMAEModel:()=>C_,ViTMAEPreTrainedModel:()=>k_,ViTMSNForImageClassification:()=>F_,ViTMSNModel:()=>S_,ViTMSNPreTrainedModel:()=>Pl,ViTModel:()=>w_,ViTPreTrainedModel:()=>xl,VisionEncoderDecoderModel:()=>va,VitMatteForImageMatting:()=>L_,VitMattePreTrainedModel:()=>O_,VitPoseForPoseEstimation:()=>T_,VitPosePreTrainedModel:()=>y_,VitsModel:()=>ic,VitsModelOutput:()=>Ff,VitsPreTrainedModel:()=>dh,VoxtralForConditionalGeneration:()=>jh,Wav2Vec2BertForCTC:()=>Im,Wav2Vec2BertForSequenceClassification:()=>Am,Wav2Vec2BertModel:()=>Fm,Wav2Vec2BertPreTrainedModel:()=>Xn,Wav2Vec2ForAudioFrameClassification:()=>fm,Wav2Vec2ForCTC:()=>mm,Wav2Vec2ForSequenceClassification:()=>hm,Wav2Vec2Model:()=>pm,Wav2Vec2PreTrainedModel:()=>oo,WavLMForAudioFrameClassification:()=>Nm,WavLMForCTC:()=>Bm,WavLMForSequenceClassification:()=>zm,WavLMForXVector:()=>Rm,WavLMModel:()=>Lm,WavLMPreTrainedModel:()=>sa,WeSpeakerResNetModel:()=>xm,WeSpeakerResNetPreTrainedModel:()=>vm,WhisperForConditionalGeneration:()=>Us,WhisperModel:()=>ba,WhisperPreTrainedModel:()=>Ko,XLMForQuestionAnswering:()=>Tn,XLMForSequenceClassification:()=>xn,XLMForTokenClassification:()=>yn,XLMModel:()=>bn,XLMPreTrainedModel:()=>eo,XLMRobertaForMaskedLM:()=>En,XLMRobertaForQuestionAnswering:()=>wa,XLMRobertaForSequenceClassification:()=>kn,XLMRobertaForTokenClassification:()=>Ma,XLMRobertaModel:()=>Pn,XLMRobertaPreTrainedModel:()=>to,XLMWithLMHeadModel:()=>vn,XVectorOutput:()=>Cf,YolosForObjectDetection:()=>em,YolosModel:()=>Zp,YolosObjectDetectionOutput:()=>tm,YolosPreTrainedModel:()=>Xl});var s=t("./src/configs.js"),o=t("./src/backends/onnx.js"),a=t("./src/utils/dtypes.js"),n=t("./src/utils/generic.js"),i=t("./src/utils/core.js"),l=t("./src/utils/hub.js"),c=t("./src/utils/constants.js"),_=t("./src/generation/logits_process.js"),u=t("./src/generation/configuration_utils.js"),d=t("./src/utils/tensor.js"),g=t("./src/utils/image.js"),h=t("./src/utils/maths.js"),x=t("./src/generation/stopping_criteria.js"),F=t("./src/generation/logits_sampler.js"),v=t("./src/env.js"),b=t("./src/models/whisper/generation_whisper.js"),C=t("./src/models/whisper/common_whisper.js");let y={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5,ImageTextToText:6,Musicgen:7,MultiModality:8,Phi3V:9,AudioTextToText:10,AutoEncoder:11,ImageAudioTextToText:12,Supertonic:13},P=new Map,I=new Map,f=new Map;async function E(M,w,j){let ae=j.config?.["transformers.js_config"]??{},_e=j.device??ae.device;_e&&typeof _e!="string"&&(_e.hasOwnProperty(w)?_e=_e[w]:(console.warn(`device not specified for "${w}". Using the default device.`),_e=null));let he=_e??(v.apis.IS_NODE_ENV?"cpu":"wasm"),Se=(0,o.deviceToExecutionProviders)(he),Oe=ae.device_config??{};Oe.hasOwnProperty(he)&&(ae={...ae,...Oe[he]});let Ge=j.dtype??ae.dtype;if(typeof Ge!="string"&&(Ge&&Ge.hasOwnProperty(w)?Ge=Ge[w]:(Ge=a.DEFAULT_DEVICE_DTYPE_MAPPING[he]??a.DATA_TYPES.fp32,console.warn(`dtype not specified for "${w}". Using the default dtype (${Ge}) for this device (${he}).`))),Ge===a.DATA_TYPES.auto){let Ft=ae.dtype;typeof Ft!="string"&&(Ft=Ft?.[w]),Ft&&Ft!==a.DATA_TYPES.auto&&a.DATA_TYPES.hasOwnProperty(Ft)?Ge=Ft:Ge=a.DEFAULT_DEVICE_DTYPE_MAPPING[he]??a.DATA_TYPES.fp32}let st=Ge;if(a.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(st)){if(st===a.DATA_TYPES.fp16&&he==="webgpu"&&!await(0,a.isWebGpuFp16Supported)())throw new Error(`The device (${he}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${st}. Should be one of: ${Object.keys(a.DATA_TYPES).join(", ")}`);let vt=ae.kv_cache_dtype,xt=vt?typeof vt=="string"?vt:vt[st]??"float32":void 0;if(xt&&!["float32","float16"].includes(xt))throw new Error(`Invalid kv_cache_dtype: ${xt}. Should be one of: float32, float16`);let Et={dtype:st,kv_cache_dtype:xt,device:he},mt=a.DEFAULT_DTYPE_SUFFIX_MAPPING[st],Bt=`${w}${mt}.onnx`,ht=`${j.subfolder??""}/${Bt}`,_t={...j.session_options};_t.executionProviders??=Se;let $t=ae.free_dimension_overrides;$t?_t.freeDimensionOverrides??=$t:he.startsWith("webnn")&&!_t.freeDimensionOverrides&&console.warn(`WebNN does not currently support dynamic shapes and requires 'free_dimension_overrides' to be set in config.json, preferably as a field within config["transformers.js_config"]["device_config"]["${he}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);let Gt=v.apis.IS_NODE_ENV&&v.env.useFSCache,tr=(0,l.getModelFile)(M,ht,!0,j,Gt),sr=j.use_external_data_format??ae.use_external_data_format,mr=[];if(sr){let Ft;typeof sr=="object"?sr.hasOwnProperty(Bt)?Ft=sr[Bt]:sr.hasOwnProperty(w)?Ft=sr[w]:Ft=!1:Ft=sr;let cr=+Ft;if(cr>l.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${cr}) exceeds the maximum allowed value (${l.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let Ar=0;Ar<cr;++Ar){let bo=`${Bt}_data${Ar===0?"":"_"+Ar}`,Hr=`${j.subfolder??""}/${bo}`;mr.push(new Promise(async(gs,aa)=>{let na=await(0,l.getModelFile)(M,Hr,!0,j,Gt);gs(na instanceof Uint8Array?{path:bo,data:na}:bo)}))}}else _t.externalData!==void 0&&(mr=_t.externalData.map(async Ft=>{if(typeof Ft.data=="string"){let cr=await(0,l.getModelFile)(M,Ft.data,!0,j);return{...Ft,data:cr}}return Ft}));if(mr.length>0){let Ft=await Promise.all(mr);v.apis.IS_NODE_ENV||(_t.externalData=Ft)}if(he==="webgpu"){let Ft=(0,s.getCacheShapes)(j.config,{prefix:"present"});if(Object.keys(Ft).length>0&&!(0,o.isONNXProxy)()){let cr={};for(let Ar in Ft)cr[Ar]="gpu-buffer";_t.preferredOutputLocation=cr}}return{buffer_or_path:await tr,session_options:_t,session_config:Et}}async function D(M,w,j){return Object.fromEntries(await Promise.all(Object.keys(w).map(async ae=>{let{buffer_or_path:_e,session_options:he,session_config:Se}=await E(M,w[ae],j),Oe=await(0,o.createInferenceSession)(_e,he,Se);return[ae,Oe]})))}async function O(M,w,j){return Object.fromEntries(await Promise.all(Object.keys(w).map(async ae=>{let _e=await(0,l.getModelJSON)(M,w[ae],!1,j);return[ae,_e]})))}function U(M,w){let j=Object.create(null),ae=[];for(let Se of M.inputNames){let Oe=w[Se];if(!(Oe instanceof d.Tensor)){ae.push(Se);continue}j[Se]=(0,o.isONNXProxy)()?Oe.clone():Oe}if(ae.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${ae.join(", ")}.`);let _e=Object.keys(w).length,he=M.inputNames.length;if(_e>he){let Se=Object.keys(w).filter(Oe=>!M.inputNames.includes(Oe));console.warn(`WARNING: Too many inputs were provided (${_e} > ${he}). The following inputs will be ignored: "${Se.join(", ")}".`)}return j}async function W(M,w){let j=U(M,w);try{let ae=Object.fromEntries(Object.entries(j).map(([he,Se])=>[he,Se.ort_tensor])),_e=await(0,o.runInferenceSession)(M,ae);return z(_e)}catch(ae){let _e=Object.fromEntries(Object.entries(j).map(([he,Se])=>{let Oe={type:Se.type,dims:Se.dims,location:Se.location};return Oe.location!=="gpu-buffer"&&(Oe.data=Se.data),[he,Oe]}));throw console.error(`An error occurred during model execution: "${ae}".`),console.error("Inputs given to model:",_e),ae}}function z(M){for(let w in M)(0,o.isONNXTensor)(M[w])?M[w]=new d.Tensor(M[w]):typeof M[w]=="object"&&z(M[w]);return M}function X(M){if(M instanceof d.Tensor)return M;if(M.length===0)throw Error("items must be non-empty");if(Array.isArray(M[0])){if(M.some(w=>w.length!==M[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new d.Tensor("int64",BigInt64Array.from(M.flat().map(w=>BigInt(w))),[M.length,M[0].length])}else return new d.Tensor("int64",BigInt64Array.from(M.map(w=>BigInt(w))),[1,M.length])}function J(M){return new d.Tensor("bool",[M],[1])}async function q(M,w){let{encoder_outputs:j,input_ids:ae,decoder_input_ids:_e,...he}=w;if(!j){let Oe=(0,i.pick)(w,M.sessions.model.inputNames);j=(await re(M,Oe)).last_hidden_state}return he.input_ids=_e,he.encoder_hidden_states=j,M.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(he.encoder_attention_mask=w.attention_mask),await ne(M,he,!0)}async function re(M,w){let j=M.sessions.model,ae=(0,i.pick)(w,j.inputNames);if(j.inputNames.includes("inputs_embeds")&&!ae.inputs_embeds){if(!w.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");ae.inputs_embeds=await M.encode_text({input_ids:w.input_ids})}if(j.inputNames.includes("token_type_ids")&&!ae.token_type_ids){if(!ae.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");ae.token_type_ids=(0,d.zeros_like)(ae.input_ids)}if(j.inputNames.includes("pixel_mask")&&!ae.pixel_mask){if(!ae.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");let _e=ae.pixel_values.dims;ae.pixel_mask=(0,d.ones)([_e[0],_e[2],_e[3]])}return await W(j,ae)}async function oe(M,w){let j=await M.encode(w);return await M.decode(j)}async function ne(M,w,j=!1){let ae=M.sessions[j?"decoder_model_merged":"model"],{past_key_values:_e,...he}=w;if(ae.inputNames.includes("use_cache_branch")&&(he.use_cache_branch=J(!!_e)),ae.inputNames.includes("position_ids")&&he.attention_mask&&!he.position_ids){let Oe=["paligemma","gemma3_text","gemma3"].includes(M.config.model_type)?1:0;he.position_ids=ke(he,_e,Oe)}M.addPastKeyValues(he,_e);let Se=(0,i.pick)(he,ae.inputNames);return await W(ae,Se)}function ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e}){let he=ae.tolist().map(st=>st.reduce((vt,xt,Et)=>(xt==M&&vt.push(Et),vt),[])),Se=he.reduce((st,vt)=>st+vt.length,0),Oe=j.dims[0];if(Se!==Oe)throw new Error(`Number of tokens and features do not match: tokens: ${Se}, features ${Oe}`);let Ge=0;for(let st=0;st<he.length;++st){let vt=he[st],xt=w[st];for(let Et=0;Et<vt.length;++Et)xt[vt[Et]].data.set(j[Ge++].data)}return{inputs_embeds:w,attention_mask:_e}}function Y({image_token_id:M,inputs_embeds:w,image_features:j,input_ids:ae,attention_mask:_e}){return ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e})}function H({audio_token_id:M,inputs_embeds:w,audio_features:j,input_ids:ae,attention_mask:_e}){return ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e})}async function R(M,{encode_function:w,merge_function:j,modality_input_name:ae,modality_output_name:_e,input_ids:he=null,attention_mask:Se=null,position_ids:Oe=null,inputs_embeds:Ge=null,past_key_values:st=null,generation_config:vt=null,logits_processor:xt=null,...Et}){let mt=Et[ae];if(!Ge){if(Ge=await M.encode_text({input_ids:he,...Et}),mt&&he.dims[1]!==1){let ht=await w({[ae]:mt,...Et});({inputs_embeds:Ge,attention_mask:Se}=j({[_e]:ht,inputs_embeds:Ge,input_ids:he,attention_mask:Se}))}else if(st&&mt&&he.dims[1]===1){let ht=he.dims[1],_t=Object.values(st)[0].dims.at(-2);Se=(0,d.cat)([(0,d.ones)([he.dims[0],_t]),Se.slice(null,[Se.dims[1]-ht,Se.dims[1]])],1)}}if(!Oe&&M.config.model_type==="qwen2_vl"){let{image_grid_thw:ht,video_grid_thw:_t}=Et;[Oe]=M.get_rope_index(he,ht,_t,Se)}return await ne(M,{inputs_embeds:Ge,past_key_values:st,attention_mask:Se,position_ids:Oe,generation_config:vt,logits_processor:xt},!0)}async function L(M,w){return await R(M,{...w,modality_input_name:"audio_values",modality_output_name:"audio_features",encode_function:M.encode_audio.bind(M),merge_function:M._merge_input_ids_with_audio_features.bind(M)})}async function ee(M,w){return await R(M,{...w,modality_input_name:"pixel_values",modality_output_name:"image_features",encode_function:M.encode_image.bind(M),merge_function:M._merge_input_ids_with_image_features.bind(M)})}function ue(M,w=0){let[j,ae]=M.dims,_e=M.data,he=new BigInt64Array(_e.length);for(let Se=0;Se<j;++Se){let Oe=Se*ae,Ge=BigInt(w);for(let st=0;st<ae;++st){let vt=Oe+st;_e[vt]===0n?he[vt]=BigInt(1):(he[vt]=Ge,Ge+=_e[vt])}}return{data:he,dims:M.dims}}function ke(M,w=null,j=0){let{input_ids:ae,inputs_embeds:_e,attention_mask:he}=M,{data:Se,dims:Oe}=ue(he,j),Ge=new d.Tensor("int64",Se,Oe);if(w){let st=-(ae??_e).dims.at(1);Ge=Ge.slice(null,[st,null])}return Ge}function Ie(M,w,j,ae){let _e=j.past_key_values?Object.values(j.past_key_values)[0].dims.at(-2):0;if(!j.attention_mask){let he;for(let Se of["input_ids","inputs_embeds","position_ids"])if(j[Se]){he=j[Se].dims;break}if(!he)throw new Error("attention_mask is not provided, and unable to infer its shape from model inputs.");j.attention_mask=(0,d.ones)([he[0],_e+he[1]])}if(j.past_key_values){let{input_ids:he,attention_mask:Se}=j;Se&&Se.dims[1]>he.dims[1]||_e<he.dims[1]&&(j.input_ids=he.slice(null,[_e,null]))}return j}function Le(M,w,j,ae){return j.past_key_values&&(w=w.map(_e=>[_e.at(-1)])),{...j,decoder_input_ids:X(w)}}function rt(M,...w){return M.config.is_encoder_decoder?Le(M,...w):Ie(M,...w)}function we(M,w,j,ae){let _e=!!j.past_key_values;return ae.guidance_scale!==null&&ae.guidance_scale>1&&(_e?j.input_ids=(0,d.cat)([j.input_ids,j.input_ids],0):(j.input_ids=(0,d.cat)([j.input_ids,(0,d.full_like)(j.input_ids,BigInt(ae.pad_token_id))],0),j.attention_mask=(0,d.cat)([j.attention_mask,(0,d.full_like)(j.attention_mask,0n)],0))),(_e||!j.pixel_values)&&(j.pixel_values=(0,d.full)([0,0,3,384,384],1)),_e&&(j.images_seq_mask=new d.Tensor("bool",new Array(1).fill(!0).fill(!1,0,1),[1,1]),j.images_emb_mask=new d.Tensor("bool",new Array(0).fill(!1),[1,1,0])),j}class A extends n.Callable{main_input_name="input_ids";forward_params=["input_ids","attention_mask"];constructor(w,j,ae){super(),this.config=w,this.sessions=j,this.configs=ae;let _e=f.get(this.constructor),he=P.get(_e);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,he){case y.DecoderOnly:this.can_generate=!0,this._forward=ne,this._prepare_inputs_for_generation=Ie;break;case y.Seq2Seq:case y.Vision2Seq:case y.Musicgen:this.can_generate=!0,this._forward=q,this._prepare_inputs_for_generation=Le;break;case y.EncoderDecoder:this._forward=q;break;case y.ImageTextToText:this.can_generate=!0,this._forward=ee,this._prepare_inputs_for_generation=rt;break;case y.AudioTextToText:this.can_generate=!0,this._forward=L,this._prepare_inputs_for_generation=rt;break;case y.Phi3V:case y.ImageAudioTextToText:this.can_generate=!0,this._prepare_inputs_for_generation=rt;break;case y.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=we;break;case y.AutoEncoder:this._forward=oe;break;default:this._forward=re;break}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){let w=[];for(let j of Object.values(this.sessions))j?.handler?.dispose&&w.push(j.handler.dispose());return await Promise.all(w)}static async from_pretrained(w,{progress_callback:j=null,config:ae=null,cache_dir:_e=null,local_files_only:he=!1,revision:Se="main",model_file_name:Oe=null,subfolder:Ge="onnx",device:st=null,dtype:vt=null,use_external_data_format:xt=null,session_options:Et={}}={}){let mt={progress_callback:j,config:ae,cache_dir:_e,local_files_only:he,revision:Se,model_file_name:Oe,subfolder:Ge,device:st,dtype:vt,use_external_data_format:xt,session_options:Et},Bt=f.get(this),ht=P.get(Bt);ae=mt.config=await s.AutoConfig.from_pretrained(w,mt);let _t;if(ht===y.DecoderOnly)_t=await Promise.all([D(w,{model:mt.model_file_name??"model"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.Seq2Seq||ht===y.Vision2Seq)_t=await Promise.all([D(w,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.MaskGeneration)_t=await Promise.all([D(w,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},mt)]);else if(ht===y.EncoderDecoder)_t=await Promise.all([D(w,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt)]);else if(ht===y.ImageTextToText){let $t={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};ae.is_encoder_decoder&&($t.model="encoder_model"),_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.AudioTextToText){let $t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.ImageAudioTextToText){let $t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.Musicgen)_t=await Promise.all([D(w,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.MultiModality)_t=await Promise.all([D(w,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"language_model",lm_head:"lm_head",gen_head:"gen_head",gen_img_embeds:"gen_img_embeds",image_decode:"image_decode"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.Phi3V)_t=await Promise.all([D(w,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.AutoEncoder)_t=await Promise.all([D(w,{encoder_model:"encoder_model",decoder_model:"decoder_model"},mt)]);else if(ht===y.Supertonic)_t=await Promise.all([D(w,{text_encoder:"text_encoder",latent_denoiser:"latent_denoiser",voice_decoder:"voice_decoder"},mt)]);else{if(ht!==y.EncoderOnly){let $t=Bt??ae?.model_type;$t!=="custom"&&console.warn(`Model type for '${$t}' not found, assuming encoder-only architecture. Please report this at ${c.GITHUB_ISSUE_URL}.`)}_t=await Promise.all([D(w,{model:mt.model_file_name??"model"},mt)])}return new this(ae,..._t)}async _call(w){return await this.forward(w)}async forward(w){return await this._forward(this,w)}get generation_config(){return this.configs?.generation_config??null}_get_logits_processor(w,j,ae=null){let _e=new _.LogitsProcessorList;if(w.repetition_penalty!==null&&w.repetition_penalty!==1&&_e.push(new _.RepetitionPenaltyLogitsProcessor(w.repetition_penalty)),w.no_repeat_ngram_size!==null&&w.no_repeat_ngram_size>0&&_e.push(new _.NoRepeatNGramLogitsProcessor(w.no_repeat_ngram_size)),w.bad_words_ids!==null&&_e.push(new _.NoBadWordsLogitsProcessor(w.bad_words_ids,w.eos_token_id)),w.min_length!==null&&w.eos_token_id!==null&&w.min_length>0&&_e.push(new _.MinLengthLogitsProcessor(w.min_length,w.eos_token_id)),w.min_new_tokens!==null&&w.eos_token_id!==null&&w.min_new_tokens>0&&_e.push(new _.MinNewTokensLengthLogitsProcessor(j,w.min_new_tokens,w.eos_token_id)),w.forced_bos_token_id!==null&&_e.push(new _.ForcedBOSTokenLogitsProcessor(w.forced_bos_token_id)),w.forced_eos_token_id!==null&&_e.push(new _.ForcedEOSTokenLogitsProcessor(w.max_length,w.forced_eos_token_id)),w.begin_suppress_tokens!==null){let he=j>1||w.forced_bos_token_id===null?j:j+1;_e.push(new _.SuppressTokensAtBeginLogitsProcessor(w.begin_suppress_tokens,he))}return w.guidance_scale!==null&&w.guidance_scale>1&&_e.push(new _.ClassifierFreeGuidanceLogitsProcessor(w.guidance_scale)),w.temperature===0&&w.do_sample&&(console.warn("`do_sample` changed to false because `temperature: 0` implies greedy sampling (always selecting the most likely token), which is incompatible with `do_sample: true`."),w.do_sample=!1),w.do_sample&&w.temperature!==null&&w.temperature!==1&&_e.push(new _.TemperatureLogitsWarper(w.temperature)),ae!==null&&_e.extend(ae),_e}_prepare_generation_config(w,j,ae=u.GenerationConfig){let _e={...this.config};for(let Se of["decoder","generator","text_config"])Se in _e&&Object.assign(_e,_e[Se]);let he=new ae(_e);return Object.assign(he,this.generation_config??{}),w&&Object.assign(he,w),j&&Object.assign(he,(0,i.pick)(j,Object.getOwnPropertyNames(he))),he}_get_stopping_criteria(w,j=null){let ae=new x.StoppingCriteriaList;return w.max_length!==null&&ae.push(new x.MaxLengthCriteria(w.max_length,this.config.max_position_embeddings??null)),w.eos_token_id!==null&&ae.push(new x.EosTokenCriteria(w.eos_token_id)),j&&ae.extend(j),ae}_validate_model_class(){if(!this.can_generate){let w=[gc,Mc,fc,hc],j=f.get(this.constructor),ae=new Set,_e=this.config.model_type;for(let Se of w){let Oe=Se.get(_e);Oe&&ae.add(Oe[0])}let he=`The current model class (${j}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw ae.size>0&&(he+=` Please use the following class instead: ${[...ae].join(", ")}`),Error(he)}}prepare_inputs_for_generation(...w){return this._prepare_inputs_for_generation(this,...w)}_update_model_kwargs_for_generation({generated_input_ids:w,outputs:j,model_inputs:ae,is_encoder_decoder:_e}){return ae.past_key_values=this.getPastKeyValues(j,ae.past_key_values),ae.input_ids=new d.Tensor("int64",w.flat(),[w.length,1]),_e?"decoder_attention_mask"in ae:ae.attention_mask=(0,d.cat)([ae.attention_mask,(0,d.ones)([ae.attention_mask.dims[0],1])],1),ae.position_ids=null,ae}_prepare_model_inputs({inputs:w,bos_token_id:j,model_kwargs:ae}){let _e=(0,i.pick)(ae,this.forward_params),he=this.main_input_name;if(he in _e){if(w)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else _e[he]=w;return{inputs_tensor:_e[he],model_inputs:_e,model_input_name:he}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:w,model_inputs:j,model_input_name:ae,generation_config:_e}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!j.inputs_embeds&&"_prepare_inputs_embeds"in this){let{input_ids:Se,pixel_values:Oe,attention_mask:Ge,...st}=j,vt=await this._prepare_inputs_embeds(j);j={...st,...(0,i.pick)(vt,["inputs_embeds","attention_mask"])}}let{last_hidden_state:he}=await re(this,j);if(_e.guidance_scale!==null&&_e.guidance_scale>1)he=(0,d.cat)([he,(0,d.full_like)(he,0)],0),"attention_mask"in j&&(j.attention_mask=(0,d.cat)([j.attention_mask,(0,d.zeros_like)(j.attention_mask)],0));else if(j.decoder_input_ids){let Se=X(j.decoder_input_ids).dims[0];if(Se!==he.dims[0]){if(he.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${he.dims[0]}) than the decoder inputs (${Se}).`);he=(0,d.cat)(Array.from({length:Se},()=>he),0)}}return j.encoder_outputs=he,j}_prepare_decoder_input_ids_for_generation({batch_size:w,model_input_name:j,model_kwargs:ae,decoder_start_token_id:_e,bos_token_id:he,generation_config:Se}){let{decoder_input_ids:Oe,...Ge}=ae;if(!(Oe instanceof d.Tensor)){if(Oe)Array.isArray(Oe[0])||(Oe=Array.from({length:w},()=>Oe));else if(_e??=he,this.config.model_type==="musicgen")Oe=Array.from({length:w*this.config.decoder.num_codebooks},()=>[_e]);else if(Array.isArray(_e)){if(_e.length!==w)throw new Error(`\`decoder_start_token_id\` expcted to have length ${w} but got ${_e.length}`);Oe=_e}else Oe=Array.from({length:w},()=>[_e]);Oe=X(Oe)}return ae.decoder_attention_mask=(0,d.ones_like)(Oe),{input_ids:Oe,model_inputs:Ge}}async generate({inputs:w=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:_e=null,streamer:he=null,...Se}){this._validate_model_class(),j=this._prepare_generation_config(j,Se);let{inputs_tensor:Oe,model_inputs:Ge,model_input_name:st}=this._prepare_model_inputs({inputs:w,model_kwargs:Se}),vt=this.config.is_encoder_decoder;vt&&("encoder_outputs"in Ge||(Ge=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:Oe,model_inputs:Ge,model_input_name:st,generation_config:j})));let xt;vt?{input_ids:xt,model_inputs:Ge}=this._prepare_decoder_input_ids_for_generation({batch_size:Ge[st].dims.at(0),model_input_name:st,model_kwargs:Ge,decoder_start_token_id:j.decoder_start_token_id,bos_token_id:j.bos_token_id,generation_config:j}):xt=Ge[st];let Et=xt.dims.at(-1);j.max_new_tokens!==null&&(j.max_length=Et+j.max_new_tokens);let mt=this._get_logits_processor(j,Et,ae),Bt=this._get_stopping_criteria(j,_e),ht=Ge[st].dims.at(0),_t=F.LogitsSampler.getSampler(j),$t=new Array(ht).fill(0),Gt=xt.tolist();he&&he.put(Gt);let tr,sr={};for(;;){if(Ge=this.prepare_inputs_for_generation(Gt,Ge,j),tr=await this.forward(Ge),j.output_attentions&&j.return_dict_in_generate){let Hr=this.getAttentions(tr);for(let gs in Hr)gs in sr||(sr[gs]=[]),sr[gs].push(Hr[gs])}let Ft=tr.logits.slice(null,-1,null),cr=mt(Gt,Ft),Ar=[];for(let Hr=0;Hr<cr.dims.at(0);++Hr){let gs=cr[Hr],aa=await _t(gs);for(let[na,ii]of aa){let Wa=BigInt(na);$t[Hr]+=ii,Gt[Hr].push(Wa),Ar.push([Wa]);break}}if(he&&he.put(Ar),Bt(Gt).every(Hr=>Hr))break;Ge=this._update_model_kwargs_for_generation({generated_input_ids:Ar,outputs:tr,model_inputs:Ge,is_encoder_decoder:vt})}he&&he.end();let mr=this.getPastKeyValues(tr,Ge.past_key_values,!0),br=new d.Tensor("int64",Gt.flat(),[Gt.length,Gt[0].length]);if(j.return_dict_in_generate)return{sequences:br,past_key_values:mr,...sr};for(let Ft of Object.values(tr))Ft.location==="gpu-buffer"&&Ft.dispose();return br}getPastKeyValues(w,j,ae=!1){let _e=Object.create(null);for(let he in w)if(he.startsWith("present")){let Se=he.replace("present_conv","past_conv").replace("present","past_key_values"),Oe=he.includes("encoder");if(Oe&&j?_e[Se]=j[Se]:_e[Se]=w[he],j&&(!Oe||ae)){let Ge=j[Se];Ge.location==="gpu-buffer"&&Ge.dispose()}}return _e}getAttentions(w){let j={};for(let ae of["cross_attentions","encoder_attentions","decoder_attentions"])for(let _e in w)_e.startsWith(ae)&&(ae in j||(j[ae]=[]),j[ae].push(w[_e]));return j}addPastKeyValues(w,j){if(j)Object.assign(w,j);else{let ae=this.sessions.decoder_model_merged??this.sessions.model,_e=(w[this.main_input_name]??w.attention_mask)?.dims?.[0]??1,he=ae?.config?.kv_cache_dtype??"float32",Se=he==="float16"?d.DataTypeMap.float16:d.DataTypeMap.float32,Oe=(0,s.getCacheShapes)(this.config,{batch_size:_e});for(let Ge in Oe){let st=Oe[Ge].reduce((vt,xt)=>vt*xt,1);w[Ge]=new d.Tensor(he,new Se(st),Oe[Ge])}}}async encode_image({pixel_values:w}){return(await W(this.sessions.vision_encoder,{pixel_values:w})).image_features}async encode_text({input_ids:w}){return(await W(this.sessions.embed_tokens,{input_ids:w})).inputs_embeds}async encode_audio({audio_values:w}){return(await W(this.sessions.audio_encoder,{audio_values:w})).audio_features}}class le{}class ge extends le{constructor({last_hidden_state:w,hidden_states:j=null,attentions:ae=null}){super(),this.last_hidden_state=w,this.hidden_states=j,this.attentions=ae}}class be extends A{}class Ae extends be{}class ve extends be{async _call(w){return new Ir(await super._call(w))}}class pe extends be{async _call(w){return new Pt(await super._call(w))}}class Pe extends be{async _call(w){return new Er(await super._call(w))}}class fe extends be{async _call(w){return new jr(await super._call(w))}}class Te extends A{}class We extends Te{}class $e extends Te{async _call(w){return new Ir(await super._call(w))}}class Re extends Te{async _call(w){return new Pt(await super._call(w))}}class Ne extends Te{async _call(w){return new Er(await super._call(w))}}class ot extends Te{async _call(w){return new jr(await super._call(w))}}class De extends A{}class Qe extends De{}class je extends De{async _call(w){return new Ir(await super._call(w))}}class pt extends De{async _call(w){return new Pt(await super._call(w))}}class Ke extends De{async _call(w){return new Er(await super._call(w))}}class bt extends A{}class At extends bt{}class Lt extends bt{}class fr extends A{}class zt extends fr{}class yr extends A{}class zs extends yr{}class Ys extends yr{async _call(w){return new Ir(await super._call(w))}}class Zs extends yr{async _call(w){return new Pt(await super._call(w))}}class or extends yr{async _call(w){return new Er(await super._call(w))}}class Dr extends yr{async _call(w){return new jr(await super._call(w))}}class Yr extends A{}class Rs extends Yr{}class ft extends Yr{async _call(w){return new Ir(await super._call(w))}}class Cs extends Yr{async _call(w){return new Pt(await super._call(w))}}class qt extends Yr{async _call(w){return new Er(await super._call(w))}}class Ss extends Yr{async _call(w){return new jr(await super._call(w))}}class Qr extends A{}class St extends Qr{}class Xr extends Qr{async _call(w){return new Ir(await super._call(w))}}class k extends Qr{async _call(w){return new Pt(await super._call(w))}}class Q extends Qr{async _call(w){return new Er(await super._call(w))}}class N extends Qr{async _call(w){return new jr(await super._call(w))}}class K extends A{}class Z extends K{}class ce extends K{async _call(w){return new Ir(await super._call(w))}}class xe extends K{async _call(w){return new Pt(await super._call(w))}}class et extends K{async _call(w){return new Er(await super._call(w))}}class ut extends K{async _call(w){return new jr(await super._call(w))}}class qe extends A{}class wt extends qe{}class tt extends qe{async _call(w){return new Ir(await super._call(w))}}class gt extends qe{async _call(w){return new Pt(await super._call(w))}}class Nt extends qe{async _call(w){return new Er(await super._call(w))}}class Qt extends qe{async _call(w){return new jr(await super._call(w))}}class ur extends A{}class Or extends ur{}class Cr extends ur{async _call(w){return new Ir(await super._call(w))}}class Lr extends ur{async _call(w){return new Pt(await super._call(w))}}class _s extends ur{async _call(w){return new Er(await super._call(w))}}class Fs extends ur{async _call(w){return new jr(await super._call(w))}}class gr extends A{}class Ns extends gr{}class as extends gr{async _call(w){return new Pt(await super._call(w))}}class Nr extends gr{async _call(w){return new Er(await super._call(w))}}class Gr extends gr{async _call(w){return new jr(await super._call(w))}}class ar extends gr{async _call(w){return new Ir(await super._call(w))}}class _r extends A{}class ps extends _r{}class Is extends _r{async _call(w){return new Ir(await super._call(w))}}class As extends _r{async _call(w){return new Pt(await super._call(w))}}class $s extends _r{async _call(w){return new Er(await super._call(w))}}class ns extends A{}class Wr extends ns{}class ze extends ns{async _call(w){return new Ir(await super._call(w))}}class Ue extends ns{async _call(w){return new Pt(await super._call(w))}}class at extends ns{async _call(w){return new jr(await super._call(w))}}class Ht extends A{}class js extends Ht{}class Ds extends Ht{async _call(w){return new Ir(await super._call(w))}}class Vs extends Ht{async _call(w){return new Pt(await super._call(w))}}class Uo extends Ht{async _call(w){return new Er(await super._call(w))}}class de extends Ht{async _call(w){return new jr(await super._call(w))}}class S extends A{}class G extends S{}class te extends S{async _call(w){return new Ir(await super._call(w))}}class se extends S{async _call(w){return new Pt(await super._call(w))}}class me extends S{async _call(w){return new jr(await super._call(w))}}class Ce extends A{}class Ye extends Ce{}class Xe extends Ce{async _call(w){return new Pt(await super._call(w))}}class Ze extends Ce{async _call(w){return new jr(await super._call(w))}}class He extends Ce{async _call(w){return new Ir(await super._call(w))}}class It extends A{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"]}class yt extends It{}class Xt extends It{}class Mr extends A{}class nr extends Mr{}class Br extends Mr{}class ir extends A{}class Tr extends ir{}class zr extends ir{}class Pr extends A{}class Zr extends Pr{}class Yt extends Pr{}class vr extends Pr{async _call(w){return new Pt(await super._call(w))}}class Sr extends A{}class Jr extends Sr{}class ms extends Sr{}class Fr extends Sr{async _call(w){return new Pt(await super._call(w))}}class is extends Sr{}class lr extends A{}class pr extends lr{}class wr extends lr{}class er extends A{}class Kr extends er{}class Ws extends er{}class Os extends A{}class fn extends Os{}class gn extends Os{async _call(w){return new Ir(await super._call(w))}}class ga extends Os{async _call(w){return new Pt(await super._call(w))}}class Mn extends Os{async _call(w){return new Er(await super._call(w))}}class wn extends Os{async _call(w){return new jr(await super._call(w))}}class eo extends A{}class bn extends eo{}class vn extends eo{async _call(w){return new Ir(await super._call(w))}}class xn extends eo{async _call(w){return new Pt(await super._call(w))}}class yn extends eo{async _call(w){return new Er(await super._call(w))}}class Tn extends eo{async _call(w){return new jr(await super._call(w))}}class to extends A{}class Pn extends to{}class En extends to{async _call(w){return new Ir(await super._call(w))}}class kn extends to{async _call(w){return new Pt(await super._call(w))}}class Ma extends to{async _call(w){return new Er(await super._call(w))}}class wa extends to{async _call(w){return new jr(await super._call(w))}}class Go extends A{}class Cn extends Go{}class Sn extends Go{}class Ko extends A{requires_attention_mask=!1;main_input_name="input_features";forward_params=["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"]}class ba extends Ko{}class Us extends Ko{_prepare_generation_config(w,j){return super._prepare_generation_config(w,j,b.WhisperGenerationConfig)}_retrieve_init_tokens(w){let j=[w.decoder_start_token_id],ae=w.language,_e=w.task;if(w.is_multilingual){ae||(console.warn("No language specified - defaulting to English (en)."),ae="en");let Se=`<|${(0,C.whisper_language_to_code)(ae)}|>`;j.push(w.lang_to_id[Se]),j.push(w.task_to_id[_e??"transcribe"])}else if(ae||_e)throw new Error("Cannot specify `task` or `language` for an English-only model. If the model is intended to be multilingual, pass `is_multilingual=true` to generate, or update the generation config.");return!w.return_timestamps&&w.no_timestamps_token_id&&j.at(-1)!==w.no_timestamps_token_id?j.push(w.no_timestamps_token_id):w.return_timestamps&&j.at(-1)===w.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),j.pop()),j.filter(he=>he!=null)}async generate({inputs:w=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:_e=null,...he}){j=this._prepare_generation_config(j,he);let Se=he.decoder_input_ids??this._retrieve_init_tokens(j);if(j.return_timestamps&&(ae??=new _.LogitsProcessorList,ae.push(new _.WhisperTimeStampLogitsProcessor(j,Se))),j.begin_suppress_tokens&&(ae??=new _.LogitsProcessorList,ae.push(new _.SuppressTokensAtBeginLogitsProcessor(j.begin_suppress_tokens,Se.length))),j.return_token_timestamps){if(!j.alignment_heads)throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");j.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),j.output_attentions=!0,j.return_dict_in_generate=!0}let Oe=await super.generate({inputs:w,generation_config:j,logits_processor:ae,decoder_input_ids:Se,...he});return j.return_token_timestamps&&(Oe.token_timestamps=this._extract_token_timestamps(Oe,j.alignment_heads,j.num_frames)),Oe}_extract_token_timestamps(w,j,ae=null,_e=.02){if(!w.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");ae==null&&console.warn("`num_frames` has not been set, meaning the entire audio will be analyzed. This may lead to inaccurate token-level timestamps for short audios (< 30 seconds).");let he=this.config.median_filter_width;he===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),he=7);let Se=w.cross_attentions,Oe=Array.from({length:this.config.decoder_layers},(ht,_t)=>(0,d.cat)(Se.map($t=>$t[_t]),2)),Ge=(0,d.stack)(j.map(([ht,_t])=>{if(ht>=Oe.length)throw new Error(`Layer index ${ht} is out of bounds for cross attentions (length ${Oe.length}).`);return ae?Oe[ht].slice(null,_t,null,[0,ae]):Oe[ht].slice(null,_t)})).transpose(1,0,2,3),[st,vt]=(0,d.std_mean)(Ge,-2,0,!0),xt=Ge.clone();for(let ht=0;ht<xt.dims[0];++ht){let _t=xt[ht];for(let $t=0;$t<_t.dims[0];++$t){let Gt=_t[$t],tr=st[ht][$t][0].data,sr=vt[ht][$t][0].data;for(let mr=0;mr<Gt.dims[0];++mr){let br=Gt[mr].data;for(let Ft=0;Ft<br.length;++Ft)br[Ft]=(br[Ft]-sr[Ft])/tr[Ft];br.set((0,h.medianFilter)(br,he))}}}let Et=[(0,d.mean)(xt,1)],mt=w.sequences.dims,Bt=new d.Tensor("float32",new Float32Array(mt[0]*mt[1]),mt);for(let ht=0;ht<mt[0];++ht){let _t=Et[ht].neg().squeeze_(0),[$t,Gt]=(0,h.dynamic_time_warping)(_t.tolist()),tr=Array.from({length:$t.length-1},(br,Ft)=>$t[Ft+1]-$t[Ft]),sr=(0,i.mergeArrays)([1],tr).map(br=>!!br),mr=[];for(let br=0;br<sr.length;++br)sr[br]&&mr.push(Gt[br]*_e);Bt[ht].data.set(mr,1)}return Bt}}class Fn extends Us{}class Ho extends A{requires_attention_mask=!1;main_input_name="input_values";forward_params=["input_values","decoder_input_ids","past_key_values"]}class Yi extends Ho{}class In extends Ho{}class va extends A{main_input_name="pixel_values";forward_params=["pixel_values","decoder_input_ids","encoder_hidden_states","past_key_values"]}class xa extends A{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class ro extends xa{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class ya extends ro{}class An extends ro{}class $n extends A{forward_params=["input_ids","inputs_embeds","attention_mask","pixel_values","encoder_outputs","decoder_input_ids","decoder_inputs_embeds","decoder_attention_mask","past_key_values"];main_input_name="inputs_embeds"}class Dn extends $n{_merge_input_ids_with_image_features({inputs_embeds:w,image_features:j,input_ids:ae,attention_mask:_e}){return{inputs_embeds:(0,d.cat)([j,w],1),attention_mask:(0,d.cat)([(0,d.ones)(j.dims.slice(0,2)),_e],1)}}async _prepare_inputs_embeds({input_ids:w,pixel_values:j,inputs_embeds:ae,attention_mask:_e}){if(!w&&!j)throw new Error("Either `input_ids` or `pixel_values` should be provided.");let he,Se;return w&&(he=await this.encode_text({input_ids:w})),j&&(Se=await this.encode_image({pixel_values:j})),he&&Se?{inputs_embeds:ae,attention_mask:_e}=this._merge_input_ids_with_image_features({inputs_embeds:he,image_features:Se,input_ids:w,attention_mask:_e}):ae=he||Se,{inputs_embeds:ae,attention_mask:_e}}async forward({input_ids:w,pixel_values:j,attention_mask:ae,decoder_input_ids:_e,decoder_attention_mask:he,encoder_outputs:Se,past_key_values:Oe,inputs_embeds:Ge,decoder_inputs_embeds:st}){if(Ge||({inputs_embeds:Ge,attention_mask:ae}=await this._prepare_inputs_embeds({input_ids:w,pixel_values:j,inputs_embeds:Ge,attention_mask:ae})),!Se){let{last_hidden_state:Et}=await re(this,{inputs_embeds:Ge,attention_mask:ae});Se=Et}if(!st){if(!_e)throw new Error("Either `decoder_input_ids` or `decoder_inputs_embeds` should be provided.");st=await this.encode_text({input_ids:_e})}return await ne(this,{inputs_embeds:st,attention_mask:he,encoder_attention_mask:ae,encoder_hidden_states:Se,past_key_values:Oe},!0)}}class On extends A{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class Ln extends On{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class Ta extends xa{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class Bn extends Ta{}class zn extends A{forward_params=["input_ids","attention_mask","inputs_embeds","per_layer_inputs","position_ids","pixel_values","input_features","input_features_mask","past_key_values"]}class Pa extends zn{async forward({input_ids:w=null,attention_mask:j=null,pixel_values:ae=null,input_features:_e=null,input_features_mask:he=null,position_ids:Se=null,inputs_embeds:Oe=null,per_layer_inputs:Ge=null,past_key_values:st=null,generation_config:vt=null,logits_processor:xt=null,...Et}){if((!Oe||!Ge)&&({inputs_embeds:Oe,per_layer_inputs:Ge}=await W(this.sessions.embed_tokens,{input_ids:w}),w.dims[1]!==1)){if(ae){let{image_features:Bt}=await W(this.sessions.vision_encoder,{pixel_values:ae});({inputs_embeds:Oe,attention_mask:j}=this._merge_input_ids_with_image_features({image_features:Bt,inputs_embeds:Oe,input_ids:w,attention_mask:j}))}if(_e){let{audio_features:Bt}=await W(this.sessions.audio_encoder,{input_features:_e,input_features_mask:he});({inputs_embeds:Oe,attention_mask:j}=this._merge_input_ids_with_audio_features({audio_features:Bt,inputs_embeds:Oe,input_ids:w,attention_mask:j}))}}return await ne(this,{inputs_embeds:Oe,per_layer_inputs:Ge,past_key_values:st,attention_mask:j,position_ids:Se,generation_config:vt,logits_processor:xt},!0)}_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_id,...w,image_features:ae})}_merge_input_ids_with_audio_features(w){let j=w.audio_features.dims.at(-1),ae=w.audio_features.view(-1,j);return H({audio_token_id:this.config.audio_token_id,...w,audio_features:ae})}}class mo extends A{forward_params=["input_ids","attention_mask","pixel_values","pixel_attention_mask","position_ids","past_key_values"]}class hs extends mo{async encode_image({pixel_values:w,pixel_attention_mask:j}){return(await W(this.sessions.vision_encoder,{pixel_values:w,pixel_attention_mask:j})).image_features}_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_id,...w,image_features:ae})}}class qo extends hs{}class Rn extends A{forward_params=["input_ids","inputs_embeds","attention_mask","position_ids","pixel_values","image_sizes","past_key_values"]}class Ea extends Rn{async forward({input_ids:w=null,attention_mask:j=null,pixel_values:ae=null,image_sizes:_e=null,position_ids:he=null,inputs_embeds:Se=null,past_key_values:Oe=null,generation_config:Ge=null,logits_processor:st=null,...vt}){if(!Se){let Et;if(ae&&w.dims[1]!==1){if(!_e)throw new Error("`image_sizes` must be provided when `pixel_values` is provided.");({image_features:Et}=await W(this.sessions.vision_encoder,{pixel_values:ae,image_sizes:_e}))}else{let mt=this.config.normalized_config.hidden_size;Et=new d.Tensor("float32",[],[0,mt])}({inputs_embeds:Se}=await W(this.sessions.prepare_inputs_embeds,{input_ids:w,image_features:Et}))}return await ne(this,{inputs_embeds:Se,past_key_values:Oe,attention_mask:j,position_ids:he,generation_config:Ge,logits_processor:st},!1)}}class fs extends A{}class Qo extends fs{}class Nn extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class ka extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class jn extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Ca extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Xo extends A{}class Sa extends Xo{}class Vn extends Xo{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Fa extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Ia extends A{}class ho extends Ia{}class ct extends A{}class Wn extends ct{async forward(w){let j=!w.input_ids,ae=!w.pixel_values;if(j&&ae)throw new Error("Either `input_ids` or `pixel_values` should be provided.");if(j&&(w.input_ids=(0,d.ones)([w.pixel_values.dims[0],1])),ae){let{image_size:st}=this.config.vision_config;w.pixel_values=(0,d.full)([0,3,st,st],0)}let{text_embeddings:_e,image_embeddings:he,l2norm_text_embeddings:Se,l2norm_image_embeddings:Oe}=await super.forward(w),Ge={};return j||(Ge.text_embeddings=_e,Ge.l2norm_text_embeddings=Se),ae||(Ge.image_embeddings=he,Ge.l2norm_image_embeddings=Oe),Ge}}class Aa extends ct{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class $a extends ct{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class so extends A{}class es extends so{}class fo extends so{}class go extends A{}class Da extends go{}class Oa extends go{}class Jo extends A{}class Yo extends Jo{}class La extends Jo{}class Zo extends A{}class Ba extends Zo{}class Mo extends Zo{}class wo extends A{}class ea extends wo{}class za extends wo{}class ta extends A{}class Ra extends ta{}class Na extends ta{}class ra extends A{}class m extends ra{}class T extends ra{}class $ extends A{}class B extends ${}class V extends ${}class ie extends A{}class Ee extends ie{}class Be extends ie{}class Je extends A{}class nt extends Je{}class Tt extends A{}class Dt extends Tt{}class Wt extends Tt{}class xr extends A{}class Gs extends xr{}class Un extends xr{}class Zi extends A{}class Pu extends Zi{}class Eu extends Zi{}class el extends A{}class ku extends el{}class Cu extends el{}class tl extends A{}class Su extends tl{}class Fu extends tl{}class rl extends A{}class Iu extends rl{}class Au extends rl{}class sl extends A{}class $u extends sl{}class Du extends sl{}class ol extends A{}class Ou extends ol{}class Lu extends ol{}class al extends A{}class Bu extends al{}class zu extends al{}class nl extends A{}class Ru extends nl{}class Nu extends nl{}class il extends A{}class ju extends il{}class Vu extends il{}class ll extends A{}class Wu extends ll{}class Uu extends ll{}class cl extends A{}class Gu extends cl{}class Ku extends cl{}class dl extends A{}class Hu extends dl{}class qu extends dl{}class ul extends A{}class Qu extends ul{}class Xu extends ul{}class _l extends A{}class Ju extends _l{}class Yu extends _l{}class pl extends A{}class Zu extends pl{}class e_ extends pl{}class ml extends A{}class t_ extends ml{}class r_ extends ml{}class hl extends A{}class s_ extends hl{}class o_ extends hl{}class fl extends A{}class a_ extends fl{}class n_ extends fl{}class i_ extends A{forward_params=["input_ids","attention_mask","position_ids","past_key_values","pixel_values","image_grid_thw"]}class l_ extends i_{get_rope_index(w,j,ae,_e){let{vision_config:he,image_token_id:Se,video_token_id:Oe,vision_start_token_id:Ge}=this.config,st=he.spatial_merge_size??2,vt=[];if(j||ae){let xt=w.tolist();_e||(_e=(0,d.ones_like)(w));let Et=_e.tolist(),mt=Array.from({length:3},Gt=>Array.from({length:w.dims[0]},tr=>Array.from({length:w.dims[1]},sr=>1))),Bt=j?j.tolist():[],ht=ae?ae.tolist():[],_t=0,$t=0;for(let Gt=0;Gt<xt.length;++Gt){let tr=xt[Gt].filter((rr,kr)=>Et[Gt][kr]==1),mr=tr.reduce((rr,kr,no)=>(kr==Ge&&rr.push(no),rr),[]).map(rr=>tr[rr+1]),br=mr.filter(rr=>rr==Se).length,Ft=mr.filter(rr=>rr==Oe).length,cr=[],Ar=0,bo=br,Hr=Ft;for(let rr=0;rr<mr.length;++rr){let kr=tr.findIndex((xo,Ms)=>Ms>Ar&&xo==Se),no=tr.findIndex((xo,Ms)=>Ms>Ar&&xo==Oe),vo=bo>0&&kr!==-1?kr:tr.length+1,ia=Hr>0&&no!==-1?no:tr.length+1,li,wc,bc,vc;vo<ia?([wc,bc,vc]=Bt[_t],++_t,--bo,li=vo):([wc,bc,vc]=ht[$t],++$t,--Hr,li=ia);let[IT,xc,ci]=[Number(wc),Math.floor(Number(bc)/st),Math.floor(Number(vc)/st)],yc=li-Ar,If=cr.length>0?(0,h.max)(cr.at(-1))[0]+1:0;cr.push(Array.from({length:3*yc},(xo,Ms)=>If+Ms%yc));let Tc=yc+If,di=IT*xc*ci,AT=Array.from({length:di},(xo,Ms)=>Tc+Math.floor(Ms/(xc*ci))),$T=Array.from({length:di},(xo,Ms)=>Tc+Math.floor(Ms/ci)%xc),DT=Array.from({length:di},(xo,Ms)=>Tc+Ms%ci);cr.push([AT,$T,DT].flat()),Ar=li+di}if(Ar<tr.length){let rr=cr.length>0?(0,h.max)(cr.at(-1))[0]+1:0,kr=tr.length-Ar;cr.push(Array.from({length:3*kr},(no,vo)=>rr+vo%kr))}let gs=cr.reduce((rr,kr)=>rr+kr.length,0),aa=new Array(gs),na=0;for(let rr=0;rr<3;++rr)for(let kr=0;kr<cr.length;++kr){let no=cr[kr],vo=no.length/3;for(let ia=rr*vo;ia<(rr+1)*vo;++ia)aa[na++]=no[ia]}let ii=0,Wa=Et[Gt];for(let rr=0;rr<Wa.length;++rr)if(Wa[rr]==1){for(let kr=0;kr<3;++kr)mt[kr][Gt][rr]=aa[kr*gs/3+ii];++ii}let FT=(0,h.max)(aa)[0];vt.push(FT+1-xt[Gt].length)}return[new d.Tensor("int64",mt.flat(1/0),[3,w.dims[0],w.dims[1]]),new d.Tensor("int64",vt,[vt.length,1])]}else if(_e){let{data:xt,dims:Et}=ue(_e),mt=BigInt64Array.from({length:3*xt.length},(ht,_t)=>xt[_t%xt.length]),Bt=Array.from({length:Et[0]},(ht,_t)=>(0,h.max)(xt.subarray(Et[1]*_t,Et[1]*(_t+1)))[0]+1n+BigInt(Et[1]));return[new d.Tensor("int64",mt,[3,...Et]),new d.Tensor("int64",Bt,[Bt.length,1])]}else{let[xt,Et]=w.dims,mt=BigInt64Array.from({length:3*xt*Et},(Bt,ht)=>BigInt(Math.floor(ht%Et/xt)));return[new d.Tensor("int64",mt,[3,...w.dims]),(0,d.zeros)([xt,1])]}}async encode_image({pixel_values:w,image_grid_thw:j}){return(await W(this.sessions.vision_encoder,{pixel_values:w,grid_thw:j})).image_features}_merge_input_ids_with_image_features(w){return Y({image_token_id:this.config.image_token_id,...w})}prepare_inputs_for_generation(w,j,ae){if(j.attention_mask&&!j.position_ids)if(!j.past_key_values)[j.position_ids,j.rope_deltas]=this.get_rope_index(j.input_ids,j.image_grid_thw,j.video_grid_thw,j.attention_mask);else{j.pixel_values=null;let _e=BigInt(Object.values(j.past_key_values)[0].dims.at(-2)),he=j.rope_deltas.map(Se=>_e+Se);j.position_ids=(0,d.stack)([he,he,he],0)}return j}}class gl extends A{}class c_ extends gl{}class d_ extends gl{}class Ml extends A{}class u_ extends Ml{}class __ extends Ml{}class wl extends A{}class p_ extends wl{}class m_ extends wl{}class bl extends A{}class h_ extends bl{}class f_ extends bl{}class vl extends A{}class g_ extends vl{}class M_ extends vl{}class xl extends A{}class w_ extends xl{}class b_ extends xl{async _call(w){return new Pt(await super._call(w))}}class yl extends A{}class v_ extends yl{}class x_ extends yl{async _call(w){return new Pt(await super._call(w))}}class y_ extends A{}class T_ extends y_{}class Tl extends A{}class P_ extends Tl{}class E_ extends Tl{async _call(w){return new Pt(await super._call(w))}}class k_ extends A{}class C_ extends k_{}class Pl extends A{}class S_ extends Pl{}class F_ extends Pl{async _call(w){return new Pt(await super._call(w))}}class I_ extends A{}class A_ extends I_{}class El extends A{}class $_ extends El{}class D_ extends El{async _call(w){return new Pt(await super._call(w))}}class O_ extends A{}class L_ extends O_{async _call(w){return new Sf(await super._call(w))}}class kl extends A{}class B_ extends kl{}class z_ extends kl{async _call(w){return new Pt(await super._call(w))}}class Cl extends A{}class R_ extends Cl{}class N_ extends Cl{async _call(w){return new Pt(await super._call(w))}}class Sl extends A{}class j_ extends Sl{}class V_ extends Sl{}class Fl extends A{}class W_ extends Fl{}class U_ extends Fl{}class Il extends A{}class G_ extends Il{}class K_ extends Il{async _call(w){return new Pt(await super._call(w))}}class Gn extends A{}class H_ extends Gn{}class q_ extends Gn{async _call(w){return new $l(await super._call(w))}}class Al extends Gn{async _call(w){return new Q_(await super._call(w))}}class $l extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class Q_ extends le{constructor({logits:w,pred_boxes:j,pred_masks:ae}){super(),this.logits=w,this.pred_boxes=j,this.pred_masks=ae}}class Dl extends A{}class X_ extends Dl{}class J_ extends Dl{async _call(w){return new ja(await super._call(w))}}class ja extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class Ol extends A{}class Y_ extends Ol{}class Z_ extends Ol{async _call(w){return new ep(await super._call(w))}}class ep extends ja{}class Ll extends A{}class tp extends Ll{}class rp extends Ll{async _call(w){return new sp(await super._call(w))}}class sp extends ja{}class Bl extends A{}class op extends Bl{}class ap extends Bl{async _call(w){return new ja(await super._call(w))}}class zl extends A{}class np extends zl{}class ip extends zl{async _call(w){return new lp(await super._call(w))}}class lp extends $l{}class Rl extends A{}class cp extends Rl{}class dp extends Rl{async _call(w){return new Pt(await super._call(w))}}class Nl extends A{}class up extends Nl{}class _p extends Nl{async _call(w){return new Pt(await super._call(w))}}class jl extends A{}class pp extends jl{}class mp extends jl{async _call(w){return new Pt(await super._call(w))}}class Kn extends A{}class hp extends Kn{}class fp extends Kn{async _call(w){return new Pt(await super._call(w))}}class gp extends Kn{}class Vl extends A{}class Mp extends Vl{}class wp extends Vl{}class Wl extends A{}class bp extends Wl{}class vp extends Wl{}class xp extends A{}class yp extends xp{}class Hn extends A{}class Tp extends Hn{}class Pp extends Hn{}class Ep extends Hn{}class kp extends A{}class Cp extends kp{}class Sp extends A{}class Fp extends Sp{}class Ip extends A{}class Ap extends Ip{}class Ul extends A{}class $p extends Ul{}class Dp extends Ul{}class Gl extends A{}class Op extends Gl{}class Lp extends Gl{}class Bp extends A{}class zp extends Bp{}class Kl extends A{}class Rp extends Kl{}class Np extends Kl{async _call(w){return new Pt(await super._call(w))}}class Hl extends A{}class jp extends Hl{}class Vp extends Hl{async _call(w){return new Pt(await super._call(w))}}class ql extends A{}class Wp extends ql{}class Up extends ql{async _call(w){return new Pt(await super._call(w))}}class Ql extends A{}class Gp extends Ql{}class Kp extends Ql{async _call(w){return new Pt(await super._call(w))}}class Hp extends A{}class qp extends Hp{}class Qp extends A{}class Xp extends Qp{}class Jp extends A{}class Yp extends Jp{}class Xl extends A{}class Zp extends Xl{}class em extends Xl{async _call(w){return new tm(await super._call(w))}}class tm extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class rm extends A{}class sm extends rm{async get_image_embeddings({pixel_values:w}){return await re(this,{pixel_values:w})}async forward(w){!w.image_embeddings||!w.image_positional_embeddings?w={...w,...await this.get_image_embeddings(w)}:w={...w},w.input_labels??=(0,d.ones)(w.input_points.dims.slice(0,-1));let j={image_embeddings:w.image_embeddings,image_positional_embeddings:w.image_positional_embeddings};return w.input_points&&(j.input_points=w.input_points),w.input_labels&&(j.input_labels=w.input_labels),w.input_boxes&&(j.input_boxes=w.input_boxes),await W(this.sessions.prompt_encoder_mask_decoder,j)}async _call(w){return new om(await super._call(w))}}class om extends le{constructor({iou_scores:w,pred_masks:j}){super(),this.iou_scores=w,this.pred_masks=j}}class am extends le{constructor({iou_scores:w,pred_masks:j,object_score_logits:ae}){super(),this.iou_scores=w,this.pred_masks=j,this.object_score_logits=ae}}class nm extends A{}class qn extends nm{async get_image_embeddings({pixel_values:w}){return await re(this,{pixel_values:w})}async forward(w){let{num_feature_levels:j}=this.config.vision_config;if(Array.from({length:j},(Se,Oe)=>`image_embeddings.${Oe}`).some(Se=>!w[Se])?w={...w,...await this.get_image_embeddings(w)}:w={...w},w.input_points){if(w.input_boxes&&w.input_boxes.dims[1]!==1)throw new Error("When both `input_points` and `input_boxes` are provided, the number of boxes per image must be 1.");let Se=w.input_points.dims;w.input_labels??=(0,d.ones)(Se.slice(0,-1)),w.input_boxes??=(0,d.full)([Se[0],0,4],0)}else if(w.input_boxes){let Se=w.input_boxes.dims;w.input_labels=(0,d.full)([Se[0],Se[1],0],-1n),w.input_points=(0,d.full)([Se[0],1,0,2],0)}else throw new Error("At least one of `input_points` or `input_boxes` must be provided.");let _e=this.sessions.prompt_encoder_mask_decoder,he=(0,i.pick)(w,_e.inputNames);return await W(_e,he)}async _call(w){return new am(await super._call(w))}}class im extends qn{}class lm extends qn{}class Jl extends A{}class cm extends Jl{}class dm extends Jl{}class Yl extends A{}class um extends Yl{}class _m extends Yl{}class oo extends A{}class pm extends oo{}class mm extends oo{async _call(w){return new ao(await super._call(w))}}class hm extends oo{async _call(w){return new Pt(await super._call(w))}}class fm extends oo{async _call(w){return new Er(await super._call(w))}}class gm extends A{}class Mm extends gm{async _call(w){return new ao(await super._call(w))}}class Zl extends A{}class wm extends Zl{}class bm extends Zl{async _call(w){return new Er(await super._call(w))}}class vm extends A{}class xm extends vm{}class Qn extends A{}class ym extends Qn{}class Tm extends Qn{async _call(w){return new ao(await super._call(w))}}class Pm extends Qn{async _call(w){return new Pt(await super._call(w))}}class Va extends A{}class Em extends Va{}class km extends Va{async _call(w){return new ao(await super._call(w))}}class Cm extends Va{async _call(w){return new Pt(await super._call(w))}}class Sm extends Va{async _call(w){return new Er(await super._call(w))}}class Xn extends A{}class Fm extends Xn{}class Im extends Xn{async _call(w){return new ao(await super._call(w))}}class Am extends Xn{async _call(w){return new Pt(await super._call(w))}}class z0 extends A{}class $m extends oo{}class Dm extends oo{async _call(w){return new ao(await super._call(w))}}class Om extends oo{async _call(w){return new Pt(await super._call(w))}}class sa extends A{}class Lm extends sa{}class Bm extends sa{async _call(w){return new ao(await super._call(w))}}class zm extends sa{async _call(w){return new Pt(await super._call(w))}}class Rm extends sa{async _call(w){return new Cf(await super._call(w))}}class Nm extends sa{async _call(w){return new Er(await super._call(w))}}class jm extends A{}class Vm extends jm{}class Jn extends A{}class R0 extends Jn{}class Wm extends Jn{}class Um extends Jn{async generate_speech(w,j,{threshold:ae=.5,minlenratio:_e=0,maxlenratio:he=20,vocoder:Se=null}={}){let Oe={input_ids:w},{encoder_outputs:Ge,encoder_attention_mask:st}=await re(this,Oe),vt=Ge.dims[1]/this.config.reduction_factor,xt=Math.floor(vt*he),Et=Math.floor(vt*_e),mt=this.config.num_mel_bins,Bt=[],ht=null,_t=null,$t=0;for(;;){++$t;let sr=J(!!_t),mr;_t?mr=_t.output_sequence_out:mr=new d.Tensor("float32",new Float32Array(mt),[1,1,mt]);let br={use_cache_branch:sr,output_sequence:mr,encoder_attention_mask:st,speaker_embeddings:j,encoder_hidden_states:Ge};this.addPastKeyValues(br,ht),_t=await W(this.sessions.decoder_model_merged,br),ht=this.getPastKeyValues(_t,ht);let{prob:Ft,spectrum:cr}=_t;if(Bt.push(cr),$t>=Et&&(Array.from(Ft.data).filter(Ar=>Ar>=ae).length>0||$t>=xt))break}let Gt=(0,d.cat)(Bt),{waveform:tr}=await W(Se.sessions.model,{spectrogram:Gt});return{spectrogram:Gt,waveform:tr}}}class Gm extends A{main_input_name="spectrogram"}class Km extends A{}class ec extends Km{async generate_speech({input_ids:w,attention_mask:j,style:ae,num_inference_steps:_e=5,speed:he=1.05}){let{sampling_rate:Se,chunk_compress_factor:Oe,base_chunk_size:Ge,latent_dim:st}=this.config,{last_hidden_state:vt,durations:xt}=await W(this.sessions.text_encoder,{input_ids:w,attention_mask:j,style:ae});xt.div_(he);let Et=xt.max().item()*Se,mt=Ge*Oe,Bt=Math.floor((Et+mt-1)/mt),ht=w.dims[0],_t=(0,d.ones)([ht,Bt]),$t=(0,d.full)([ht],_e),Gt=(0,d.randn)([ht,st*Oe,Bt]);for(let sr=0;sr<_e;++sr){let mr=(0,d.full)([ht],sr);({denoised_latents:Gt}=await W(this.sessions.latent_denoiser,{style:ae,noisy_latents:Gt,latent_mask:_t,encoder_outputs:vt,attention_mask:j,timestep:mr,num_inference_steps:$t}))}let{waveform:tr}=await W(this.sessions.voice_decoder,{latents:Gt});return{waveform:tr,durations:xt}}}class Hm extends A{}class qm extends Hm{}class tc extends A{}class Qm extends tc{}class Xm extends tc{}class rc extends A{}class Jm extends rc{}class Ym extends rc{}class sc extends A{}class Zm extends sc{}class eh extends sc{}class oc extends A{}class th extends oc{}class rh extends oc{}class ac extends A{}class sh extends ac{}class oh extends ac{}class nc extends A{}class ah extends nc{}class nh extends nc{}class Yn extends A{}class ih extends Yn{}class lh extends Yn{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class ch extends Yn{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"audio_model"})}}class dh extends A{}class ic extends dh{async _call(w){return new Ff(await super._call(w))}}class Zn extends A{}class N0 extends Zn{}class uh extends Zn{}class _h extends Zn{}class lc extends A{}class ph extends lc{}class mh extends lc{}class cc extends A{}class hh extends cc{}class fh extends cc{async _call(w){return new Pt(await super._call(w))}}class dc extends A{}class j0 extends dc{}class V0 extends dc{}class uc extends A{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"];_apply_and_filter_by_delay_pattern_mask(w){let[j,ae]=w.dims,_e=this.config.decoder.num_codebooks,he=ae-_e,Se=0;for(let st=0;st<w.size;++st){if(w.data[st]===this.config.decoder.pad_token_id)continue;let vt=st%ae,xt=Math.floor(st/ae)%_e,Et=vt-xt;Et>0&&Et<=he&&(w.data[Se++]=w.data[st])}let Oe=Math.floor(j/_e),Ge=Se/(Oe*_e);return new d.Tensor(w.type,w.data.slice(0,Se),[Oe,_e,Ge])}prepare_inputs_for_generation(w,j,ae){let _e=structuredClone(w);for(let Se=0;Se<_e.length;++Se)for(let Oe=0;Oe<_e[Se].length;++Oe)Se%this.config.decoder.num_codebooks>=Oe&&(_e[Se][Oe]=BigInt(this.config.decoder.pad_token_id));return ae.guidance_scale!==null&&ae.guidance_scale>1&&(_e=_e.concat(_e)),super.prepare_inputs_for_generation(_e,j,ae)}async generate(w){let j=await super.generate(w),ae=this._apply_and_filter_by_delay_pattern_mask(j).unsqueeze_(0),{audio_values:_e}=await W(this.sessions.encodec_decode,{audio_codes:ae});return _e}}class ei extends A{}class gh extends ei{}class Mh extends ei{async _call(w){return new Pt(await super._call(w))}}class wh extends ei{}class ti extends A{}class bh extends ti{}class vh extends ti{async _call(w){return new Pt(await super._call(w))}}class xh extends ti{}class ri extends A{}class yh extends ri{}class Th extends ri{async _call(w){return new Pt(await super._call(w))}}class Ph extends ri{}class si extends A{}class Eh extends si{}class kh extends si{async _call(w){return new Pt(await super._call(w))}}class Ch extends si{}class Sh extends A{}class Fh extends Sh{}class Ih extends A{}class Ah extends Ih{forward_params=["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"];constructor(...w){super(...w),this._generation_mode="text"}async forward(w){let j=this._generation_mode??"text",ae;if(j==="text"||!w.past_key_values){let Ge=this.sessions.prepare_inputs_embeds,st=(0,i.pick)(w,Ge.inputNames);ae=await W(Ge,st)}else{let Ge=this.sessions.gen_img_embeds,st=(0,i.pick)({image_ids:w.input_ids},Ge.inputNames);ae=await W(Ge,st)}let _e={...w,...ae},he=await ne(this,_e),Se=this.sessions[j==="text"?"lm_head":"gen_head"];if(!Se)throw new Error(`Unable to find "${Se}" generation head`);let Oe=await W(Se,(0,i.pick)(he,Se.inputNames));return{...ae,...he,...Oe}}async generate(w){return this._generation_mode="text",super.generate(w)}async generate_images(w){this._generation_mode="image";let j=(w.inputs??w[this.main_input_name]).dims[1],_e=(await super.generate(w)).slice(null,[j,null]),he=this.sessions.image_decode,{decoded_image:Se}=await W(he,{generated_tokens:_e}),Oe=Se.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),Ge=[];for(let st of Oe){let vt=g.RawImage.fromTensor(st);Ge.push(vt)}return Ge}}class $h extends le{constructor({char_logits:w,bpe_logits:j,wp_logits:ae}){super(),this.char_logits=w,this.bpe_logits=j,this.wp_logits=ae}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class Dh extends A{}class Oh extends Dh{async _call(w){return new $h(await super._call(w))}}class _c extends A{}class Lh extends _c{}class Bh extends _c{}class pc extends A{}class zh extends pc{}class Rh extends pc{}class Nh extends A{forward_params=["input_ids","attention_mask","position_ids","audio_values","past_key_values"]}class mc extends Nh{_merge_input_ids_with_audio_features(w){let j=w.audio_features.dims.at(-1),ae=w.audio_features.view(-1,j);return H({audio_token_id:this.config.ignore_index??this.config.audio_token_id,...w,audio_features:ae})}}class jh extends mc{}class oi extends A{main_input_name="input_values";forward_params=["input_values"]}class Vh extends le{constructor({audio_codes:w}){super(),this.audio_codes=w}}class Wh extends le{constructor({audio_values:w}){super(),this.audio_values=w}}class Uh extends oi{async encode(w){return new Vh(await W(this.sessions.encoder_model,w))}async decode(w){return new Wh(await W(this.sessions.decoder_model,w))}}class Gh extends oi{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Kh extends oi{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class ai extends A{main_input_name="input_values";forward_params=["input_values"]}class Hh extends le{constructor({audio_codes:w}){super(),this.audio_codes=w}}class qh extends le{constructor({audio_values:w}){super(),this.audio_values=w}}class Qh extends ai{async encode(w){return new Hh(await W(this.sessions.encoder_model,w))}async decode(w){return new qh(await W(this.sessions.decoder_model,w))}}class Xh extends ai{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Jh extends ai{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class ni extends A{main_input_name="input_values";forward_params=["input_values"]}class Yh extends ni{async encode(w){return await W(this.sessions.encoder_model,w)}async decode(w){return await W(this.sessions.decoder_model,w)}}class Zh extends ni{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class ef extends ni{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class Ut{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(w,{progress_callback:j=null,config:ae=null,cache_dir:_e=null,local_files_only:he=!1,revision:Se="main",model_file_name:Oe=null,subfolder:Ge="onnx",device:st=null,dtype:vt=null,use_external_data_format:xt=null,session_options:Et={}}={}){let mt={progress_callback:j,config:ae,cache_dir:_e,local_files_only:he,revision:Se,model_file_name:Oe,subfolder:Ge,device:st,dtype:vt,use_external_data_format:xt,session_options:Et};if(mt.config=await s.AutoConfig.from_pretrained(w,mt),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);let Bt=mt.config.model_type;for(let ht of this.MODEL_CLASS_MAPPINGS){let _t=ht.get(Bt);if(!_t){for(let $t of ht.values())if($t[0]===Bt){_t=$t;break}if(!_t)continue}return await _t[1].from_pretrained(w,mt)}if(this.BASE_IF_FAIL)return kf.has(Bt)||console.warn(`Unknown model class "${Bt}", attempting to construct from base class.`),await A.from_pretrained(w,mt);throw Error(`Unsupported model type: ${Bt}`)}}let W0=new Map([["bert",["BertModel",Ae]],["neobert",["NeoBertModel",We]],["modernbert",["ModernBertModel",Qe]],["nomic_bert",["NomicBertModel",zt]],["roformer",["RoFormerModel",zs]],["electra",["ElectraModel",St]],["esm",["EsmModel",ps]],["convbert",["ConvBertModel",Rs]],["camembert",["CamembertModel",Z]],["deberta",["DebertaModel",wt]],["deberta-v2",["DebertaV2Model",Or]],["mpnet",["MPNetModel",js]],["albert",["AlbertModel",Ye]],["distilbert",["DistilBertModel",Ns]],["roberta",["RobertaModel",fn]],["xlm",["XLMModel",bn]],["xlm-roberta",["XLMRobertaModel",Pn]],["clap",["ClapModel",ih]],["clip",["CLIPModel",Qo]],["clipseg",["CLIPSegModel",es]],["chinese_clip",["ChineseCLIPModel",ho]],["siglip",["SiglipModel",Sa]],["jina_clip",["JinaCLIPModel",Wn]],["mobilebert",["MobileBertModel",Wr]],["squeezebert",["SqueezeBertModel",G]],["wav2vec2",["Wav2Vec2Model",pm]],["wav2vec2-bert",["Wav2Vec2BertModel",Fm]],["unispeech",["UniSpeechModel",ym]],["unispeech-sat",["UniSpeechSatModel",Em]],["hubert",["HubertModel",$m]],["wavlm",["WavLMModel",Lm]],["audio-spectrogram-transformer",["ASTModel",Cn]],["vits",["VitsModel",ic]],["pyannote",["PyAnnoteModel",wm]],["wespeaker-resnet",["WeSpeakerResNetModel",xm]],["detr",["DetrModel",H_]],["rt_detr",["RTDetrModel",X_]],["rt_detr_v2",["RTDetrV2Model",Y_]],["rf_detr",["RFDetrModel",tp]],["d_fine",["DFineModel",op]],["table-transformer",["TableTransformerModel",np]],["vit",["ViTModel",w_]],["ijepa",["IJepaModel",v_]],["pvt",["PvtModel",P_]],["vit_msn",["ViTMSNModel",S_]],["vit_mae",["ViTMAEModel",C_]],["groupvit",["GroupViTModel",A_]],["fastvit",["FastViTModel",$_]],["mobilevit",["MobileViTModel",B_]],["mobilevitv2",["MobileViTV2Model",R_]],["owlvit",["OwlViTModel",j_]],["owlv2",["Owlv2Model",W_]],["beit",["BeitModel",G_]],["deit",["DeiTModel",cp]],["hiera",["HieraModel",up]],["convnext",["ConvNextModel",Rp]],["convnextv2",["ConvNextV2Model",jp]],["dinov2",["Dinov2Model",Wp]],["dinov2_with_registers",["Dinov2WithRegistersModel",Gp]],["dinov3_vit",["DINOv3ViTModel",qp]],["dinov3_convnext",["DINOv3ConvNextModel",Xp]],["resnet",["ResNetModel",pp]],["swin",["SwinModel",hp]],["swin2sr",["Swin2SRModel",Mp]],["donut-swin",["DonutSwinModel",zp]],["yolos",["YolosModel",Zp]],["dpt",["DPTModel",bp]],["glpn",["GLPNModel",Op]],["hifigan",["SpeechT5HifiGan",Gm]],["efficientnet",["EfficientNetModel",hh]],["decision_transformer",["DecisionTransformerModel",Fh]],["patchtst",["PatchTSTForPrediction",Lh]],["patchtsmixer",["PatchTSMixerForPrediction",zh]],["mobilenet_v1",["MobileNetV1Model",gh]],["mobilenet_v2",["MobileNetV2Model",bh]],["mobilenet_v3",["MobileNetV3Model",yh]],["mobilenet_v4",["MobileNetV4Model",Eh]],["maskformer",["MaskFormerModel",$p]],["mgp-str",["MgpstrForSceneTextRecognition",Oh]],["style_text_to_speech_2",["StyleTextToSpeech2Model",Vm]]]),U0=new Map([["t5",["T5Model",yt]],["longt5",["LongT5Model",nr]],["mt5",["MT5Model",Tr]],["bart",["BartModel",Zr]],["mbart",["MBartModel",Jr]],["marian",["MarianModel",cm]],["whisper",["WhisperModel",ba]],["m2m_100",["M2M100Model",um]],["blenderbot",["BlenderbotModel",pr]],["blenderbot-small",["BlenderbotSmallModel",Kr]]]),G0=new Map([["mimi",["MimiModel",Uh]],["dac",["DacModel",Qh]],["snac",["SnacModel",Yh]]]),K0=new Map([["bloom",["BloomModel",p_]],["jais",["JAISModel",Yo]],["gpt2",["GPT2Model",Da]],["gptj",["GPTJModel",Ra]],["gpt_bigcode",["GPTBigCodeModel",m]],["gpt_neo",["GPTNeoModel",Ba]],["gpt_neox",["GPTNeoXModel",ea]],["codegen",["CodeGenModel",B]],["llama",["LlamaModel",Ee]],["nanochat",["NanoChatModel",Dt]],["arcee",["ArceeModel",Gs]],["lfm2",["Lfm2Model",Pu]],["smollm3",["SmolLM3Model",ku]],["exaone",["ExaoneModel",$u]],["olmo",["OlmoModel",Bu]],["olmo2",["Olmo2Model",Ru]],["mobilellm",["MobileLLMModel",Ou]],["granite",["GraniteModel",ju]],["granitemoehybrid",["GraniteMoeHybridModel",Wu]],["cohere",["CohereModel",Gu]],["gemma",["GemmaModel",Hu]],["gemma2",["Gemma2Model",Qu]],["vaultgemma",["VaultGemmaModel",Ju]],["gemma3_text",["Gemma3Model",Zu]],["helium",["HeliumModel",Su]],["glm",["GlmModel",Iu]],["openelm",["OpenELMModel",t_]],["qwen2",["Qwen2Model",s_]],["qwen3",["Qwen3Model",a_]],["phi",["PhiModel",c_]],["phi3",["Phi3Model",u_]],["mpt",["MptModel",h_]],["opt",["OPTModel",g_]],["mistral",["MistralModel",Qm]],["ministral",["MinistralModel",Jm]],["ministral3",["Ministral3Model",Zm]],["ernie4_5",["Ernie4_5Model",th]],["starcoder2",["Starcoder2Model",sh]],["falcon",["FalconModel",ah]],["stablelm",["StableLmModel",ph]],["modernbert-decoder",["ModernBertDecoderModel",At]]]),hc=new Map([["speecht5",["SpeechT5ForSpeechToText",Wm]],["whisper",["WhisperForConditionalGeneration",Us]],["lite-whisper",["LiteWhisperForConditionalGeneration",Fn]],["moonshine",["MoonshineForConditionalGeneration",In]]]),tf=new Map([["speecht5",["SpeechT5ForTextToSpeech",Um]]]),rf=new Map([["vits",["VitsModel",ic]],["musicgen",["MusicgenForConditionalGeneration",uc]],["supertonic",["SupertonicForConditionalGeneration",ec]]]),sf=new Map([["bert",["BertForSequenceClassification",pe]],["neobert",["NeoBertForSequenceClassification",Re]],["modernbert",["ModernBertForSequenceClassification",pt]],["roformer",["RoFormerForSequenceClassification",Zs]],["electra",["ElectraForSequenceClassification",k]],["esm",["EsmForSequenceClassification",As]],["convbert",["ConvBertForSequenceClassification",Cs]],["camembert",["CamembertForSequenceClassification",xe]],["deberta",["DebertaForSequenceClassification",gt]],["deberta-v2",["DebertaV2ForSequenceClassification",Lr]],["mpnet",["MPNetForSequenceClassification",Vs]],["albert",["AlbertForSequenceClassification",Xe]],["distilbert",["DistilBertForSequenceClassification",as]],["roberta",["RobertaForSequenceClassification",ga]],["xlm",["XLMForSequenceClassification",xn]],["xlm-roberta",["XLMRobertaForSequenceClassification",kn]],["bart",["BartForSequenceClassification",vr]],["mbart",["MBartForSequenceClassification",Fr]],["mobilebert",["MobileBertForSequenceClassification",Ue]],["squeezebert",["SqueezeBertForSequenceClassification",se]]]),of=new Map([["bert",["BertForTokenClassification",Pe]],["neobert",["NeoBertForTokenClassification",Ne]],["modernbert",["ModernBertForTokenClassification",Ke]],["roformer",["RoFormerForTokenClassification",or]],["electra",["ElectraForTokenClassification",Q]],["esm",["EsmForTokenClassification",$s]],["convbert",["ConvBertForTokenClassification",qt]],["camembert",["CamembertForTokenClassification",et]],["deberta",["DebertaForTokenClassification",Nt]],["deberta-v2",["DebertaV2ForTokenClassification",_s]],["mpnet",["MPNetForTokenClassification",Uo]],["distilbert",["DistilBertForTokenClassification",Nr]],["roberta",["RobertaForTokenClassification",Mn]],["xlm",["XLMForTokenClassification",yn]],["xlm-roberta",["XLMRobertaForTokenClassification",Ma]]]),fc=new Map([["t5",["T5ForConditionalGeneration",Xt]],["longt5",["LongT5ForConditionalGeneration",Br]],["mt5",["MT5ForConditionalGeneration",zr]],["bart",["BartForConditionalGeneration",Yt]],["mbart",["MBartForConditionalGeneration",ms]],["marian",["MarianMTModel",dm]],["m2m_100",["M2M100ForConditionalGeneration",_m]],["blenderbot",["BlenderbotForConditionalGeneration",wr]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",Ws]]]),gc=new Map([["bloom",["BloomForCausalLM",m_]],["gpt2",["GPT2LMHeadModel",Oa]],["jais",["JAISLMHeadModel",La]],["gptj",["GPTJForCausalLM",Na]],["gpt_bigcode",["GPTBigCodeForCausalLM",T]],["gpt_neo",["GPTNeoForCausalLM",Mo]],["gpt_neox",["GPTNeoXForCausalLM",za]],["codegen",["CodeGenForCausalLM",V]],["llama",["LlamaForCausalLM",Be]],["nanochat",["NanoChatForCausalLM",Wt]],["llama4_text",["Llama4ForCausalLM",nt]],["arcee",["ArceeForCausalLM",Un]],["lfm2",["Lfm2ForCausalLM",Eu]],["smollm3",["SmolLM3ForCausalLM",Cu]],["exaone",["ExaoneForCausalLM",Du]],["olmo",["OlmoForCausalLM",zu]],["olmo2",["Olmo2ForCausalLM",Nu]],["mobilellm",["MobileLLMForCausalLM",Lu]],["granite",["GraniteForCausalLM",Vu]],["granitemoehybrid",["GraniteMoeHybridForCausalLM",Uu]],["cohere",["CohereForCausalLM",Ku]],["gemma",["GemmaForCausalLM",qu]],["gemma2",["Gemma2ForCausalLM",Xu]],["vaultgemma",["VaultGemmaForCausalLM",Yu]],["gemma3_text",["Gemma3ForCausalLM",e_]],["helium",["HeliumForCausalLM",Fu]],["glm",["GlmForCausalLM",Au]],["openelm",["OpenELMForCausalLM",r_]],["qwen2",["Qwen2ForCausalLM",o_]],["qwen3",["Qwen3ForCausalLM",n_]],["phi",["PhiForCausalLM",d_]],["phi3",["Phi3ForCausalLM",__]],["mpt",["MptForCausalLM",f_]],["opt",["OPTForCausalLM",M_]],["mbart",["MBartForCausalLM",is]],["mistral",["MistralForCausalLM",Xm]],["ministral",["MinistralForCausalLM",Ym]],["ministral3",["Ministral3ForCausalLM",eh]],["ernie4_5",["Ernie4_5ForCausalLM",rh]],["starcoder2",["Starcoder2ForCausalLM",oh]],["falcon",["FalconForCausalLM",nh]],["trocr",["TrOCRForCausalLM",qm]],["stablelm",["StableLmForCausalLM",mh]],["modernbert-decoder",["ModernBertDecoderForCausalLM",Lt]],["phi3_v",["Phi3VForCausalLM",Ea]]]),H0=new Map([["multi_modality",["MultiModalityCausalLM",Ah]]]),af=new Map([["bert",["BertForMaskedLM",ve]],["neobert",["NeoBertForMaskedLM",$e]],["modernbert",["ModernBertForMaskedLM",je]],["roformer",["RoFormerForMaskedLM",Ys]],["electra",["ElectraForMaskedLM",Xr]],["esm",["EsmForMaskedLM",Is]],["convbert",["ConvBertForMaskedLM",ft]],["camembert",["CamembertForMaskedLM",ce]],["deberta",["DebertaForMaskedLM",tt]],["deberta-v2",["DebertaV2ForMaskedLM",Cr]],["mpnet",["MPNetForMaskedLM",Ds]],["albert",["AlbertForMaskedLM",He]],["distilbert",["DistilBertForMaskedLM",ar]],["roberta",["RobertaForMaskedLM",gn]],["xlm",["XLMWithLMHeadModel",vn]],["xlm-roberta",["XLMRobertaForMaskedLM",En]],["mobilebert",["MobileBertForMaskedLM",ze]],["squeezebert",["SqueezeBertForMaskedLM",te]]]),nf=new Map([["bert",["BertForQuestionAnswering",fe]],["neobert",["NeoBertForQuestionAnswering",ot]],["roformer",["RoFormerForQuestionAnswering",Dr]],["electra",["ElectraForQuestionAnswering",N]],["convbert",["ConvBertForQuestionAnswering",Ss]],["camembert",["CamembertForQuestionAnswering",ut]],["deberta",["DebertaForQuestionAnswering",Qt]],["deberta-v2",["DebertaV2ForQuestionAnswering",Fs]],["mpnet",["MPNetForQuestionAnswering",de]],["albert",["AlbertForQuestionAnswering",Ze]],["distilbert",["DistilBertForQuestionAnswering",Gr]],["roberta",["RobertaForQuestionAnswering",wn]],["xlm",["XLMForQuestionAnswering",Tn]],["xlm-roberta",["XLMRobertaForQuestionAnswering",wa]],["mobilebert",["MobileBertForQuestionAnswering",at]],["squeezebert",["SqueezeBertForQuestionAnswering",me]]]),Mc=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",va]],["idefics3",["Idefics3ForConditionalGeneration",hs]],["smolvlm",["SmolVLMForConditionalGeneration",qo]]]),lf=new Map([["llava",["LlavaForConditionalGeneration",ro]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",ya]],["moondream1",["Moondream1ForConditionalGeneration",An]],["florence2",["Florence2ForConditionalGeneration",Dn]],["qwen2-vl",["Qwen2VLForConditionalGeneration",l_]],["idefics3",["Idefics3ForConditionalGeneration",hs]],["smolvlm",["SmolVLMForConditionalGeneration",qo]],["paligemma",["PaliGemmaForConditionalGeneration",Ln]],["llava_qwen2",["LlavaQwen2ForCausalLM",Ta]],["gemma3n",["Gemma3nForConditionalGeneration",Pa]],["mistral3",["Mistral3ForConditionalGeneration",Bn]]]),cf=new Map([["ultravox",["UltravoxModel",mc]],["voxtral",["VoxtralForConditionalGeneration",jh]]]),q0=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",va]]]),df=new Map([["vit",["ViTForImageClassification",b_]],["ijepa",["IJepaForImageClassification",x_]],["pvt",["PvtForImageClassification",E_]],["vit_msn",["ViTMSNForImageClassification",F_]],["fastvit",["FastViTForImageClassification",D_]],["mobilevit",["MobileViTForImageClassification",z_]],["mobilevitv2",["MobileViTV2ForImageClassification",N_]],["beit",["BeitForImageClassification",K_]],["deit",["DeiTForImageClassification",dp]],["hiera",["HieraForImageClassification",_p]],["convnext",["ConvNextForImageClassification",Np]],["convnextv2",["ConvNextV2ForImageClassification",Vp]],["dinov2",["Dinov2ForImageClassification",Up]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",Kp]],["resnet",["ResNetForImageClassification",mp]],["swin",["SwinForImageClassification",fp]],["segformer",["SegformerForImageClassification",uh]],["efficientnet",["EfficientNetForImageClassification",fh]],["mobilenet_v1",["MobileNetV1ForImageClassification",Mh]],["mobilenet_v2",["MobileNetV2ForImageClassification",vh]],["mobilenet_v3",["MobileNetV3ForImageClassification",Th]],["mobilenet_v4",["MobileNetV4ForImageClassification",kh]]]),uf=new Map([["detr",["DetrForObjectDetection",q_]],["rt_detr",["RTDetrForObjectDetection",J_]],["rt_detr_v2",["RTDetrV2ForObjectDetection",Z_]],["rf_detr",["RFDetrForObjectDetection",rp]],["d_fine",["DFineForObjectDetection",ap]],["table-transformer",["TableTransformerForObjectDetection",ip]],["yolos",["YolosForObjectDetection",em]]]),_f=new Map([["owlvit",["OwlViTForObjectDetection",V_]],["owlv2",["Owlv2ForObjectDetection",U_]],["grounding-dino",["GroundingDinoForObjectDetection",Yp]]]),oa=new Map([["detr",["DetrForSegmentation",Al]],["clipseg",["CLIPSegForImageSegmentation",fo]]]),pf=new Map([["segformer",["SegformerForSemanticSegmentation",_h]],["sapiens",["SapiensForSemanticSegmentation",Tp]],["swin",["SwinForSemanticSegmentation",gp]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",wh]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",xh]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",Ph]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",Ch]]]),mf=new Map([["detr",["DetrForSegmentation",Al]],["maskformer",["MaskFormerForInstanceSegmentation",Dp]]]),hf=new Map([["sam",["SamModel",sm]],["sam2",["Sam2Model",qn]],["edgetam",["EdgeTamModel",im]],["sam3_tracker",["Sam3TrackerModel",lm]]]),ff=new Map([["wav2vec2",["Wav2Vec2ForCTC",mm]],["wav2vec2-bert",["Wav2Vec2BertForCTC",Im]],["unispeech",["UniSpeechForCTC",Tm]],["unispeech-sat",["UniSpeechSatForCTC",km]],["wavlm",["WavLMForCTC",Bm]],["hubert",["HubertForCTC",Dm]],["parakeet_ctc",["ParakeetForCTC",Mm]]]),gf=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",hm]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",Am]],["unispeech",["UniSpeechForSequenceClassification",Pm]],["unispeech-sat",["UniSpeechSatForSequenceClassification",Cm]],["wavlm",["WavLMForSequenceClassification",zm]],["hubert",["HubertForSequenceClassification",Om]],["audio-spectrogram-transformer",["ASTForAudioClassification",Sn]]]),Mf=new Map([["wavlm",["WavLMForXVector",Rm]]]),wf=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",Sm]],["wavlm",["WavLMForAudioFrameClassification",Nm]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",fm]],["pyannote",["PyAnnoteForAudioFrameClassification",bm]]]),bf=new Map([["vitmatte",["VitMatteForImageMatting",L_]]]),Q0=new Map([["patchtst",["PatchTSTForPrediction",Bh]],["patchtsmixer",["PatchTSMixerForPrediction",Rh]]]),vf=new Map([["swin2sr",["Swin2SRForImageSuperResolution",wp]]]),xf=new Map([["dpt",["DPTForDepthEstimation",vp]],["depth_anything",["DepthAnythingForDepthEstimation",yp]],["glpn",["GLPNForDepthEstimation",Lp]],["sapiens",["SapiensForDepthEstimation",Pp]],["depth_pro",["DepthProForDepthEstimation",Cp]],["metric3d",["Metric3DForDepthEstimation",Fp]],["metric3dv2",["Metric3Dv2ForDepthEstimation",Ap]]]),yf=new Map([["sapiens",["SapiensForNormalEstimation",Ep]]]),Tf=new Map([["vitpose",["VitPoseForPoseEstimation",T_]]]),Pf=new Map([["clip",["CLIPVisionModelWithProjection",Ca]],["siglip",["SiglipVisionModel",Fa]],["jina_clip",["JinaCLIPVisionModel",$a]]]),Ef=[[W0,y.EncoderOnly],[U0,y.EncoderDecoder],[K0,y.DecoderOnly],[G0,y.AutoEncoder],[sf,y.EncoderOnly],[of,y.EncoderOnly],[fc,y.Seq2Seq],[hc,y.Seq2Seq],[gc,y.DecoderOnly],[H0,y.MultiModality],[af,y.EncoderOnly],[nf,y.EncoderOnly],[Mc,y.Vision2Seq],[lf,y.ImageTextToText],[cf,y.AudioTextToText],[df,y.EncoderOnly],[oa,y.EncoderOnly],[mf,y.EncoderOnly],[pf,y.EncoderOnly],[bf,y.EncoderOnly],[Q0,y.EncoderOnly],[vf,y.EncoderOnly],[xf,y.EncoderOnly],[yf,y.EncoderOnly],[Tf,y.EncoderOnly],[uf,y.EncoderOnly],[_f,y.EncoderOnly],[hf,y.MaskGeneration],[ff,y.EncoderOnly],[gf,y.EncoderOnly],[tf,y.Seq2Seq],[rf,y.EncoderOnly],[Mf,y.EncoderOnly],[wf,y.EncoderOnly],[Pf,y.EncoderOnly]];for(let[M,w]of Ef)for(let[j,ae]of M.values())P.set(j,w),f.set(ae,j),I.set(j,ae);let X0=[["MusicgenForConditionalGeneration",uc,y.Musicgen],["Phi3VForCausalLM",Ea,y.Phi3V],["CLIPTextModelWithProjection",ka,y.EncoderOnly],["SiglipTextModel",Vn,y.EncoderOnly],["JinaCLIPTextModel",Aa,y.EncoderOnly],["ClapTextModelWithProjection",lh,y.EncoderOnly],["ClapAudioModelWithProjection",ch,y.EncoderOnly],["DacEncoderModel",Xh,y.EncoderOnly],["DacDecoderModel",Jh,y.EncoderOnly],["MimiEncoderModel",Gh,y.EncoderOnly],["MimiDecoderModel",Kh,y.EncoderOnly],["SnacEncoderModel",Zh,y.EncoderOnly],["SnacDecoderModel",ef,y.EncoderOnly],["Gemma3nForConditionalGeneration",Pa,y.ImageAudioTextToText],["SupertonicForConditionalGeneration",ec,y.Supertonic]];for(let[M,w,j]of X0)P.set(M,j),f.set(w,M),I.set(M,w);let kf=new Map([["modnet",oa],["birefnet",oa],["isnet",oa],["ben",oa]]);for(let[M,w]of kf.entries())w.set(M,["PreTrainedModel",A]),P.set(M,y.EncoderOnly),f.set(A,M),I.set(M,A);class J0 extends Ut{static MODEL_CLASS_MAPPINGS=Ef.map(w=>w[0]);static BASE_IF_FAIL=!0}class Y0 extends Ut{static MODEL_CLASS_MAPPINGS=[sf]}class Z0 extends Ut{static MODEL_CLASS_MAPPINGS=[of]}class eT extends Ut{static MODEL_CLASS_MAPPINGS=[fc]}class tT extends Ut{static MODEL_CLASS_MAPPINGS=[hc]}class rT extends Ut{static MODEL_CLASS_MAPPINGS=[tf]}class sT extends Ut{static MODEL_CLASS_MAPPINGS=[rf]}class oT extends Ut{static MODEL_CLASS_MAPPINGS=[gc]}class aT extends Ut{static MODEL_CLASS_MAPPINGS=[af]}class nT extends Ut{static MODEL_CLASS_MAPPINGS=[nf]}class iT extends Ut{static MODEL_CLASS_MAPPINGS=[Mc]}class lT extends Ut{static MODEL_CLASS_MAPPINGS=[df]}class cT extends Ut{static MODEL_CLASS_MAPPINGS=[oa]}class dT extends Ut{static MODEL_CLASS_MAPPINGS=[pf]}class uT extends Ut{static MODEL_CLASS_MAPPINGS=[mf]}class _T extends Ut{static MODEL_CLASS_MAPPINGS=[uf]}class pT extends Ut{static MODEL_CLASS_MAPPINGS=[_f]}class mT extends Ut{static MODEL_CLASS_MAPPINGS=[hf]}class hT extends Ut{static MODEL_CLASS_MAPPINGS=[ff]}class fT extends Ut{static MODEL_CLASS_MAPPINGS=[gf]}class gT extends Ut{static MODEL_CLASS_MAPPINGS=[Mf]}class MT extends Ut{static MODEL_CLASS_MAPPINGS=[wf]}class wT extends Ut{static MODEL_CLASS_MAPPINGS=[q0]}class bT extends Ut{static MODEL_CLASS_MAPPINGS=[bf]}class vT extends Ut{static MODEL_CLASS_MAPPINGS=[vf]}class xT extends Ut{static MODEL_CLASS_MAPPINGS=[xf]}class yT extends Ut{static MODEL_CLASS_MAPPINGS=[yf]}class TT extends Ut{static MODEL_CLASS_MAPPINGS=[Tf]}class PT extends Ut{static MODEL_CLASS_MAPPINGS=[Pf]}class ET extends Ut{static MODEL_CLASS_MAPPINGS=[lf]}class kT extends Ut{static MODEL_CLASS_MAPPINGS=[cf]}class CT extends le{constructor({logits:w,past_key_values:j,encoder_outputs:ae,decoder_attentions:_e=null,cross_attentions:he=null}){super(),this.logits=w,this.past_key_values=j,this.encoder_outputs=ae,this.decoder_attentions=_e,this.cross_attentions=he}}class Pt extends le{constructor({logits:w,...j}){super(),this.logits=w;let ae=Object.values(j);ae.length>0&&(this.attentions=ae)}}class Cf extends le{constructor({logits:w,embeddings:j}){super(),this.logits=w,this.embeddings=j}}class Er extends le{constructor({logits:w}){super(),this.logits=w}}class Ir extends le{constructor({logits:w}){super(),this.logits=w}}class jr extends le{constructor({start_logits:w,end_logits:j}){super(),this.start_logits=w,this.end_logits=j}}class ao extends le{constructor({logits:w}){super(),this.logits=w}}class ST extends le{constructor({logits:w,past_key_values:j}){super(),this.logits=w,this.past_key_values=j}}class Sf extends le{constructor({alphas:w}){super(),this.alphas=w}}class Ff extends le{constructor({waveform:w,spectrogram:j}){super(),this.waveform=w,this.spectrogram=j}}}),"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":((e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(l,c){return(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:c,transpose:!0})}async _call(l){(0,s.validate_audio_inputs)(l,"ASTFeatureExtractor");let c=await this._extract_fbank_features(l,this.config.max_length);if(this.config.do_normalize){let _=this.std*2,u=c.data;for(let d=0;d<u.length;++d)u[d]=(u[d]-this.mean)/_}return{input_values:c.unsqueeze_(0)}}}}),"./src/models/auto/feature_extraction_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoFeatureExtractor:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/feature_extraction_utils.js"),n=t("./src/models/feature_extractors.js");class i{static async from_pretrained(c,_={}){let u=await(0,o.getModelJSON)(c,s.FEATURE_EXTRACTOR_NAME,!0,_),d=u.feature_extractor_type,g=n[d];if(!g)throw new Error(`Unknown feature_extractor_type: '${d}'. Please report this at ${s.GITHUB_ISSUE_URL}.`);return new g(u)}}}),"./src/models/auto/image_processing_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoImageProcessor:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/image_processors_utils.js"),n=t("./src/models/image_processors.js");class i{static async from_pretrained(c,_={}){let u=await(0,o.getModelJSON)(c,s.IMAGE_PROCESSOR_NAME,!0,_),d=u.image_processor_type??u.feature_extractor_type,g=n[d?.replace(/Fast$/,"")];return g||(d!==void 0&&console.warn(`Image processor type '${d}' not found, assuming base ImageProcessor. Please report this at ${s.GITHUB_ISSUE_URL}.`),g=a.ImageProcessor),new g(u)}}}),"./src/models/auto/processing_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoProcessor:()=>c});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/processing_utils.js"),n=t("./src/models/processors.js"),i=t("./src/models/image_processors.js"),l=t("./src/models/feature_extractors.js");class c{static async from_pretrained(u,d={}){let g=await(0,o.getModelJSON)(u,s.IMAGE_PROCESSOR_NAME,!0,d),{image_processor_type:h,feature_extractor_type:x,processor_class:F}=g;if(F&&n[F])return n[F].from_pretrained(u,d);if(!h&&!x)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");let v={};if(h){let C=i[h.replace(/Fast$/,"")];if(!C)throw new Error(`Unknown image_processor_type: '${h}'.`);v.image_processor=new C(g)}if(x){let C=i[x];if(C)v.image_processor=new C(g);else{let y=l[x];if(!y)throw new Error(`Unknown feature_extractor_type: '${x}'.`);v.feature_extractor=new y(g)}}let b={};return new a.Processor(b,v,null)}}}),"./src/models/beit/image_processing_beit.js":((e,r,t)=>{t.r(r),t.d(r,{BeitFeatureExtractor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/bit/image_processing_bit.js":((e,r,t)=>{t.r(r),t.d(r,{BitImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/chinese_clip/image_processing_chinese_clip.js":((e,r,t)=>{t.r(r),t.d(r,{ChineseCLIPFeatureExtractor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/clap/feature_extraction_clap.js":((e,r,t)=>{t.r(r),t.d(r,{ClapFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l),this.mel_filters=(0,a.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=(0,a.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=(0,a.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(l,c,_,u){let d,g=!1,h=l.length-c;if(h>0)if(_==="rand_trunc"){g=!0;let x=Math.floor(Math.random()*(h+1));l=l.subarray(x,x+c),d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${_}" not implemented`);else{if(h<0){let x=new Float64Array(c);if(x.set(l),u==="repeat")for(let F=l.length;F<c;F+=l.length)x.set(l.subarray(0,Math.min(l.length,c-F)),F);else if(u==="repeatpad")for(let F=l.length;F<-h;F+=l.length)x.set(l,F);l=x}if(_==="fusion")throw new Error(`Truncation strategy "${_}" not implemented`);d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}return d.unsqueeze_(0)}async _extract_fbank_features(l,c,_=null){return(0,a.spectrogram)(l,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:c,log_mel:"dB",max_num_frames:_,do_pad:!1,transpose:!0})}async _call(l,{max_length:c=null}={}){return(0,s.validate_audio_inputs)(l,"ClapFeatureExtractor"),{input_features:(await this._get_input_mel(l,c??this.config.nb_max_samples,this.config.truncation,this.config.padding)).unsqueeze_(0)}}}}),"./src/models/clip/image_processing_clip.js":((e,r,t)=>{t.r(r),t.d(r,{CLIPFeatureExtractor:()=>a,CLIPImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/convnext/image_processing_convnext.js":((e,r,t)=>{t.r(r),t.d(r,{ConvNextFeatureExtractor:()=>a,ConvNextImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(i){super(i),this.crop_pct=this.config.crop_pct??224/256}async resize(i){let l=this.size?.shortest_edge;if(l===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(l<384){let c=Math.floor(l/this.crop_pct),[_,u]=this.get_resize_output_image_size(i,{shortest_edge:c});i=await i.resize(_,u,{resample:this.resample}),i=await i.center_crop(l,l)}else i=await i.resize(l,l,{resample:this.resample});return i}}class a extends o{}}),"./src/models/dac/feature_extraction_dac.js":((e,r,t)=>{t.r(r),t.d(r,{DacFeatureExtractor:()=>o});var s=t("./src/models/encodec/feature_extraction_encodec.js");class o extends s.EncodecFeatureExtractor{}}),"./src/models/deit/image_processing_deit.js":((e,r,t)=>{t.r(r),t.d(r,{DeiTFeatureExtractor:()=>a,DeiTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/detr/image_processing_detr.js":((e,r,t)=>{t.r(r),t.d(r,{DetrFeatureExtractor:()=>n,DetrImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(l){let c=await super._call(l),_=[c.pixel_values.dims[0],64,64],u=(0,o.full)(_,1n);return{...c,pixel_mask:u}}post_process_object_detection(...l){return(0,s.post_process_object_detection)(...l)}post_process_panoptic_segmentation(...l){return(0,s.post_process_panoptic_segmentation)(...l)}post_process_instance_segmentation(...l){return(0,s.post_process_instance_segmentation)(...l)}}class n extends a{}}),"./src/models/dinov3_vit/image_processing_dinov3_vit.js":((e,r,t)=>{t.r(r),t.d(r,{DINOv3ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/donut/image_processing_donut.js":((e,r,t)=>{t.r(r),t.d(r,{DonutFeatureExtractor:()=>a,DonutImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(i,l,c,_={}){let[u,d,g]=l,h=this.image_mean;Array.isArray(this.image_mean)||(h=new Array(g).fill(h));let x=this.image_std;Array.isArray(x)||(x=new Array(g).fill(h));let F=h.map((v,b)=>-v/x[b]);return super.pad_image(i,l,c,{center:!0,constant_values:F,..._})}}class a extends o{}}),"./src/models/dpt/image_processing_dpt.js":((e,r,t)=>{t.r(r),t.d(r,{DPTFeatureExtractor:()=>a,DPTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/efficientnet/image_processing_efficientnet.js":((e,r,t)=>{t.r(r),t.d(r,{EfficientNetImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(n){super(n),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map(i=>i*i))}}}),"./src/models/encodec/feature_extraction_encodec.js":((e,r,t)=>{t.r(r),t.d(r,{EncodecFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{async _call(i){(0,s.validate_audio_inputs)(i,"EncodecFeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=this.config.feature_size;if(i.length%l!==0)throw new Error(`The length of the audio data must be a multiple of the number of channels (${l}).`);let c=[1,l,i.length/l];return{input_values:new o.Tensor("float32",i,c)}}}}),"./src/models/feature_extractors.js":((e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>s.ASTFeatureExtractor,ClapFeatureExtractor:()=>a.ClapFeatureExtractor,DacFeatureExtractor:()=>n.DacFeatureExtractor,EncodecFeatureExtractor:()=>o.EncodecFeatureExtractor,Gemma3nAudioFeatureExtractor:()=>i.Gemma3nAudioFeatureExtractor,ImageFeatureExtractor:()=>v.ImageProcessor,MoonshineFeatureExtractor:()=>l.MoonshineFeatureExtractor,ParakeetFeatureExtractor:()=>c.ParakeetFeatureExtractor,PyAnnoteFeatureExtractor:()=>_.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>d.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>g.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>h.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>x.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>F.WhisperFeatureExtractor});var s=t("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),o=t("./src/models/encodec/feature_extraction_encodec.js"),a=t("./src/models/clap/feature_extraction_clap.js"),n=t("./src/models/dac/feature_extraction_dac.js"),i=t("./src/models/gemma3n/feature_extraction_gemma3n.js"),l=t("./src/models/moonshine/feature_extraction_moonshine.js"),c=t("./src/models/parakeet/feature_extraction_parakeet.js"),_=t("./src/models/pyannote/feature_extraction_pyannote.js"),u=t("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),d=t("./src/models/snac/feature_extraction_snac.js"),g=t("./src/models/speecht5/feature_extraction_speecht5.js"),h=t("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),x=t("./src/models/wespeaker/feature_extraction_wespeaker.js"),F=t("./src/models/whisper/feature_extraction_whisper.js"),v=t("./src/base/image_processors_utils.js")}),"./src/models/florence2/processing_florence2.js":((e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;constructor(l,c,_){super(l,c,_);let{tasks_answer_post_processing_type:u,task_prompts_without_inputs:d,task_prompts_with_input:g}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(u??{})),this.task_prompts_without_inputs=new Map(Object.entries(d??{})),this.task_prompts_with_input=new Map(Object.entries(g??{})),this.regexes={quad_boxes:/(.+?)<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm,bboxes:/([^<]+)?<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm},this.size_per_bin=1e3}construct_prompts(l){typeof l=="string"&&(l=[l]);let c=[];for(let _ of l)if(this.task_prompts_without_inputs.has(_))c.push(this.task_prompts_without_inputs.get(_));else{for(let[u,d]of this.task_prompts_with_input)if(_.includes(u)){c.push(d.replaceAll("{input}",_).replaceAll(u,""));break}c.length!==l.length&&c.push(_)}return c}post_process_generation(l,c,_){let u=this.tasks_answer_post_processing_type.get(c)??"pure_text";l=l.replaceAll("<s>","").replaceAll("</s>","");let d;switch(u){case"pure_text":d=l;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":let g=u==="ocr"?"quad_boxes":"bboxes",h=l.matchAll(this.regexes[g]),x=[],F=[];for(let[v,b,...C]of h)x.push(b?b.trim():x.at(-1)??""),F.push(C.map((y,P)=>(Number(y)+.5)/this.size_per_bin*_[P%2]));d={labels:x,[g]:F};break;default:throw new Error(`Task "${c}" (of type "${u}") not yet implemented.`)}return{[c]:d}}async _call(l,c=null,_={}){if(!l&&!c)throw new Error("Either text or images must be provided");let u=await this.image_processor(l,_),d=c?this.tokenizer(this.construct_prompts(c),_):{};return{...u,...d}}}}),"./src/models/gemma3n/feature_extraction_gemma3n.js":((e,r,t)=>{t.r(r),t.d(r,{Gemma3nAudioFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let{fft_length:c,feature_size:_,min_frequency:u,max_frequency:d,sampling_rate:g,frame_length:h}=this.config,x=(0,a.mel_filter_bank)(Math.floor(1+c/2),_,u,d,g,null,"htk",!1);this.mel_filters=x,this.window=(0,a.window_function)(h,"hann")}async _extract_fbank_features(l,c){return(0,a.spectrogram)(l,this.window,this.config.frame_length,this.config.hop_length,{fft_length:this.config.fft_length,center:!1,onesided:!0,preemphasis:this.config.preemphasis,preemphasis_htk_flavor:this.config.preemphasis_htk_flavor,mel_filters:this.mel_filters,log_mel:"log",mel_floor:this.config.mel_floor,remove_dc_offset:!1,transpose:!0})}async _call(l,{max_length:c=48e4,truncation:_=!0,padding:u=!0,pad_to_multiple_of:d=128}={}){if((0,s.validate_audio_inputs)(l,"Gemma3nAudioFeatureExtractor"),_&&l.length>c&&(l=l.slice(0,c)),u&&l.length%d!==0){let x=d-l.length%d,F=new Float64Array(l.length+x);F.set(l),this.config.padding_value!==0&&F.fill(this.config.padding_value,l.length),l=F}let g=await this._extract_fbank_features(l,this.config.max_length),h=(0,o.full)([1,g.dims[0]],!0);return{input_features:g.unsqueeze_(0),input_features_mask:h}}}}),"./src/models/gemma3n/processing_gemma3n.js":((e,r,t)=>{t.r(r),t.d(r,{Gemma3nProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/tokenizers.js"),i=t("./src/utils/image.js"),l=t("./src/utils/audio.js");class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static feature_extractor_class=a.AutoFeatureExtractor;static tokenizer_class=n.AutoTokenizer;static uses_processor_config=!0;static uses_chat_template_file=!0;constructor(u,d,g){super(u,d,g),this.audio_seq_length=this.config.audio_seq_length,this.image_seq_length=this.config.image_seq_length;let{audio_token_id:h,boa_token:x,audio_token:F,eoa_token:v,image_token_id:b,boi_token:C,image_token:y,eoi_token:P}=this.tokenizer.config;this.audio_token_id=h,this.boa_token=x,this.audio_token=F;let I=F.repeat(this.audio_seq_length);this.full_audio_sequence=`
|
|
2839
2839
|
|
|
2840
2840
|
${x}${I}${v}
|
|
2841
2841
|
|
|
@@ -2847,8 +2847,8 @@ ${C}${f}${P}
|
|
|
2847
2847
|
`}return b+=`
|
|
2848
2848
|
${x}${v}`+F.repeat(d)+`${x}`,b}function c(d,g,h,x){return`${g}${x}`+h.repeat(d)+`${g}`}function _(d,g,h,x,F,v){return d===0&&g===0?c(h,x,F,v):l(h,d,g,x,F,v)}class u extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;static uses_processor_config=!0;fake_image_token="<fake_token_around_image>";image_token="<image>";global_img_token="<global-img>";async _call(g,h=null,x={}){x.return_row_col_info??=!0;let F;h&&(F=await this.image_processor(h,x)),Array.isArray(g)||(g=[g]);let v=F.rows??[new Array(g.length).fill(0)],b=F.cols??[new Array(g.length).fill(0)],C=this.config.image_seq_len,y=[],P=[];for(let f=0;f<g.length;++f){let E=g[f],D=v[f],O=b[f];y.push((0,i.count)(E,this.image_token));let U=D.map((X,J)=>_(X,O[J],C,this.fake_image_token,this.image_token,this.global_img_token)),W=E.split(this.image_token);if(W.length===0)throw new Error("The image token should be present in the text.");let z=W[0];for(let X=0;X<U.length;++X)z+=U[X]+W[X+1];P.push(z)}return{...this.tokenizer(P),...F}}}}),"./src/models/image_processors.js":((e,r,t)=>{t.r(r),t.d(r,{BeitFeatureExtractor:()=>s.BeitFeatureExtractor,BitImageProcessor:()=>o.BitImageProcessor,CLIPFeatureExtractor:()=>n.CLIPFeatureExtractor,CLIPImageProcessor:()=>n.CLIPImageProcessor,ChineseCLIPFeatureExtractor:()=>a.ChineseCLIPFeatureExtractor,ConvNextFeatureExtractor:()=>i.ConvNextFeatureExtractor,ConvNextImageProcessor:()=>i.ConvNextImageProcessor,DINOv3ViTImageProcessor:()=>_.DINOv3ViTImageProcessor,DPTFeatureExtractor:()=>d.DPTFeatureExtractor,DPTImageProcessor:()=>d.DPTImageProcessor,DeiTFeatureExtractor:()=>l.DeiTFeatureExtractor,DeiTImageProcessor:()=>l.DeiTImageProcessor,DetrFeatureExtractor:()=>c.DetrFeatureExtractor,DetrImageProcessor:()=>c.DetrImageProcessor,DonutFeatureExtractor:()=>u.DonutFeatureExtractor,DonutImageProcessor:()=>u.DonutImageProcessor,EfficientNetImageProcessor:()=>g.EfficientNetImageProcessor,GLPNFeatureExtractor:()=>h.GLPNFeatureExtractor,GroundingDinoImageProcessor:()=>x.GroundingDinoImageProcessor,Idefics3ImageProcessor:()=>F.Idefics3ImageProcessor,JinaCLIPImageProcessor:()=>b.JinaCLIPImageProcessor,LlavaOnevisionImageProcessor:()=>C.LlavaOnevisionImageProcessor,Mask2FormerImageProcessor:()=>y.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>P.MaskFormerFeatureExtractor,MaskFormerImageProcessor:()=>P.MaskFormerImageProcessor,MobileNetV1FeatureExtractor:()=>I.MobileNetV1FeatureExtractor,MobileNetV1ImageProcessor:()=>I.MobileNetV1ImageProcessor,MobileNetV2FeatureExtractor:()=>f.MobileNetV2FeatureExtractor,MobileNetV2ImageProcessor:()=>f.MobileNetV2ImageProcessor,MobileNetV3FeatureExtractor:()=>E.MobileNetV3FeatureExtractor,MobileNetV3ImageProcessor:()=>E.MobileNetV3ImageProcessor,MobileNetV4FeatureExtractor:()=>D.MobileNetV4FeatureExtractor,MobileNetV4ImageProcessor:()=>D.MobileNetV4ImageProcessor,MobileViTFeatureExtractor:()=>O.MobileViTFeatureExtractor,MobileViTImageProcessor:()=>O.MobileViTImageProcessor,NougatImageProcessor:()=>U.NougatImageProcessor,OwlViTFeatureExtractor:()=>z.OwlViTFeatureExtractor,OwlViTImageProcessor:()=>z.OwlViTImageProcessor,Owlv2ImageProcessor:()=>W.Owlv2ImageProcessor,Phi3VImageProcessor:()=>X.Phi3VImageProcessor,PixtralImageProcessor:()=>J.PixtralImageProcessor,PvtImageProcessor:()=>q.PvtImageProcessor,Qwen2VLImageProcessor:()=>re.Qwen2VLImageProcessor,RTDetrImageProcessor:()=>oe.RTDetrImageProcessor,Sam2ImageProcessor:()=>ye.Sam2ImageProcessor,Sam3ImageProcessor:()=>Y.Sam3ImageProcessor,SamImageProcessor:()=>ne.SamImageProcessor,SegformerFeatureExtractor:()=>H.SegformerFeatureExtractor,SegformerImageProcessor:()=>H.SegformerImageProcessor,SiglipImageProcessor:()=>R.SiglipImageProcessor,SmolVLMImageProcessor:()=>L.SmolVLMImageProcessor,Swin2SRImageProcessor:()=>ee.Swin2SRImageProcessor,VLMImageProcessor:()=>v.VLMImageProcessor,ViTFeatureExtractor:()=>ue.ViTFeatureExtractor,ViTImageProcessor:()=>ue.ViTImageProcessor,VitMatteImageProcessor:()=>ke.VitMatteImageProcessor,VitPoseImageProcessor:()=>Ie.VitPoseImageProcessor,YolosFeatureExtractor:()=>Le.YolosFeatureExtractor,YolosImageProcessor:()=>Le.YolosImageProcessor});var s=t("./src/models/beit/image_processing_beit.js"),o=t("./src/models/bit/image_processing_bit.js"),a=t("./src/models/chinese_clip/image_processing_chinese_clip.js"),n=t("./src/models/clip/image_processing_clip.js"),i=t("./src/models/convnext/image_processing_convnext.js"),l=t("./src/models/deit/image_processing_deit.js"),c=t("./src/models/detr/image_processing_detr.js"),_=t("./src/models/dinov3_vit/image_processing_dinov3_vit.js"),u=t("./src/models/donut/image_processing_donut.js"),d=t("./src/models/dpt/image_processing_dpt.js"),g=t("./src/models/efficientnet/image_processing_efficientnet.js"),h=t("./src/models/glpn/image_processing_glpn.js"),x=t("./src/models/grounding_dino/image_processing_grounding_dino.js"),F=t("./src/models/idefics3/image_processing_idefics3.js"),v=t("./src/models/janus/image_processing_janus.js"),b=t("./src/models/jina_clip/image_processing_jina_clip.js"),C=t("./src/models/llava_onevision/image_processing_llava_onevision.js"),y=t("./src/models/mask2former/image_processing_mask2former.js"),P=t("./src/models/maskformer/image_processing_maskformer.js"),I=t("./src/models/mobilenet_v1/image_processing_mobilenet_v1.js"),f=t("./src/models/mobilenet_v2/image_processing_mobilenet_v2.js"),E=t("./src/models/mobilenet_v3/image_processing_mobilenet_v3.js"),D=t("./src/models/mobilenet_v4/image_processing_mobilenet_v4.js"),O=t("./src/models/mobilevit/image_processing_mobilevit.js"),U=t("./src/models/nougat/image_processing_nougat.js"),W=t("./src/models/owlv2/image_processing_owlv2.js"),z=t("./src/models/owlvit/image_processing_owlvit.js"),X=t("./src/models/phi3_v/image_processing_phi3_v.js"),J=t("./src/models/pixtral/image_processing_pixtral.js"),q=t("./src/models/pvt/image_processing_pvt.js"),re=t("./src/models/qwen2_vl/image_processing_qwen2_vl.js"),oe=t("./src/models/rt_detr/image_processing_rt_detr.js"),ne=t("./src/models/sam/image_processing_sam.js"),ye=t("./src/models/sam2/image_processing_sam2.js"),Y=t("./src/models/sam3/image_processing_sam3.js"),H=t("./src/models/segformer/image_processing_segformer.js"),R=t("./src/models/siglip/image_processing_siglip.js"),L=t("./src/models/smolvlm/image_processing_smolvlm.js"),ee=t("./src/models/swin2sr/image_processing_swin2sr.js"),ue=t("./src/models/vit/image_processing_vit.js"),ke=t("./src/models/vitmatte/image_processing_vitmatte.js"),Ie=t("./src/models/vitpose/image_processing_vitpose.js"),Le=t("./src/models/yolos/image_processing_yolos.js")}),"./src/models/janus/image_processing_janus.js":((e,r,t)=>{t.r(r),t.d(r,{VLMImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(n){super({do_pad:!0,pad_size:{width:n.image_size,height:n.image_size},...n}),this.constant_values=this.config.background_color.map(i=>i*this.rescale_factor)}pad_image(n,i,l,c){return super.pad_image(n,i,l,{constant_values:this.constant_values,center:!0,...c})}}}),"./src/models/janus/processing_janus.js":((e,r,t)=>{t.r(r),t.d(r,{VLChatProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/core.js"),i=t("./src/utils/tensor.js"),l=t("./src/utils/image.js");class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;static uses_processor_config=!0;constructor(u,d,g){super(u,d,g),this.image_tag=this.config.image_tag,this.image_start_tag=this.config.image_start_tag,this.image_end_tag=this.config.image_end_tag,this.num_image_tokens=this.config.num_image_tokens}async _call(u,{images:d=null,chat_template:g="default"}={}){d?Array.isArray(d)||(d=[d]):d=await Promise.all(u.filter(O=>O.images).flatMap(O=>O.images).map(O=>l.RawImage.read(O)));let h=this.tokenizer,x=h.apply_chat_template(u,{tokenize:!1,add_generation_prompt:!0,chat_template:g}),F=O=>h.encode(O,{add_special_tokens:!1}),v=x.split(this.image_tag),b=v.length-1;if(d.length!==b)throw new Error(`Number of images provided (${d.length}) does not match number of "${this.image_tag}" image tags (${b})`);let[C,y,P]=h.model.convert_tokens_to_ids([this.image_tag,this.image_start_tag,this.image_end_tag]),I=F(v[0]),f=new Array(I.length).fill(!1);for(let O=1;O<v.length;++O){let U=new Array(this.num_image_tokens).fill(C),W=F(v[O]);I=(0,n.mergeArrays)(I,[y],U,[P],W);let z=new Array(this.num_image_tokens).fill(!0);f=(0,n.mergeArrays)(f,[!1],z,[!1],new Array(W.length).fill(!1))}let E=[1,I.length],D={input_ids:new i.Tensor("int64",I,E),attention_mask:new i.Tensor("int64",new Array(I.length).fill(1),E),images_seq_mask:new i.Tensor("bool",f,E),images_emb_mask:new i.Tensor("bool",new Array(b*this.num_image_tokens).fill(!0),[1,b,this.num_image_tokens])};if(d&&d.length>0){let O=await this.image_processor(d);return O.pixel_values.unsqueeze_(0),{...D,...O}}return D}}}),"./src/models/jina_clip/image_processing_jina_clip.js":((e,r,t)=>{t.r(r),t.d(r,{JinaCLIPImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(n){let{resize_mode:i,fill_color:l,interpolation:c,size:_,...u}=n,d=i==="squash"?{width:_,height:_}:i==="shortest"?{shortest_edge:_}:{longest_edge:_},g=c==="bicubic"?3:2;super({...u,size:d,resample:g,do_center_crop:!0,crop_size:_,do_normalize:!0})}}}),"./src/models/jina_clip/processing_jina_clip.js":((e,r,t)=>{t.r(r),t.d(r,{JinaCLIPProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;async _call(l=null,c=null,_={}){if(!l&&!c)throw new Error("Either text or images must be provided");let u=l?this.tokenizer(l,_):{},d=c?await this.image_processor(c,_):{};return{...u,...d}}}}),"./src/models/llava/processing_llava.js":((e,r,t)=>{t.r(r),t.d(r,{LlavaProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!0;async _call(l,c=null,_={}){let u=await this.image_processor(l,_);if(c){let[g,h]=u.pixel_values.dims.slice(-2),{image_token:x,patch_size:F,num_additional_image_tokens:v}=this.config,b=Math.floor(g/F)*Math.floor(h/F)+v;c=structuredClone(c),Array.isArray(c)||(c=[c]);for(let C=0;C<c.length;++C)c[C]=c[C].replace(x,x.repeat(b))}let d=c?this.tokenizer(c,_):{};return{...u,...d}}}}),"./src/models/llava_onevision/image_processing_llava_onevision.js":((e,r,t)=>{t.r(r),t.d(r,{LlavaOnevisionImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/mask2former/image_processing_mask2former.js":((e,r,t)=>{t.r(r),t.d(r,{Mask2FormerImageProcessor:()=>o});var s=t("./src/models/maskformer/image_processing_maskformer.js");class o extends s.MaskFormerImageProcessor{}}),"./src/models/maskformer/image_processing_maskformer.js":((e,r,t)=>{t.r(r),t.d(r,{MaskFormerFeatureExtractor:()=>a,MaskFormerImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_panoptic_segmentation(...i){return(0,s.post_process_panoptic_segmentation)(...i)}post_process_instance_segmentation(...i){return(0,s.post_process_instance_segmentation)(...i)}}class a extends o{}}),"./src/models/mgp_str/processing_mgp_str.js":((e,r,t)=>{t.r(r),t.d(r,{MgpstrProcessor:()=>l});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/maths.js");let i={char:["char_decode",1],bpe:["bpe_decode",2],wp:["wp_decode",102]};class l extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;get char_tokenizer(){return this.components.char_tokenizer}get bpe_tokenizer(){return this.components.bpe_tokenizer}get wp_tokenizer(){return this.components.wp_tokenizer}_decode_helper(_,u){if(!i.hasOwnProperty(u))throw new Error(`Format ${u} is not supported.`);let[d,g]=i[u],h=this[d].bind(this),[x,F]=_.dims,v=[],b=[],C=_.tolist();for(let P=0;P<x;++P){let I=C[P],f=[],E=[];for(let O=1;O<F;++O){let[U,W]=(0,n.max)((0,n.softmax)(I[O]));if(E.push(U),W==g)break;f.push(W)}let D=E.length>0?E.reduce((O,U)=>O*U,1):0;b.push(f),v.push(D)}return[h(b),v]}char_decode(_){return this.char_tokenizer.batch_decode(_).map(u=>u.replaceAll(" ",""))}bpe_decode(_){return this.bpe_tokenizer.batch_decode(_)}wp_decode(_){return this.wp_tokenizer.batch_decode(_).map(u=>u.replaceAll(" ",""))}batch_decode([_,u,d]){let[g,h]=this._decode_helper(_,"char"),[x,F]=this._decode_helper(u,"bpe"),[v,b]=this._decode_helper(d,"wp"),C=[],y=[];for(let P=0;P<g.length;++P){let[I,f]=(0,n.max)([h[P],F[P],b[P]]);C.push([g[P],x[P],v[P]][f]),y.push(I)}return{generated_text:C,scores:y,char_preds:g,bpe_preds:x,wp_preds:v}}static async from_pretrained(..._){let u=await super.from_pretrained(..._),d=await a.AutoTokenizer.from_pretrained("Xenova/gpt2"),g=await a.AutoTokenizer.from_pretrained("Xenova/bert-base-uncased");return u.components={image_processor:u.image_processor,char_tokenizer:u.tokenizer,bpe_tokenizer:d,wp_tokenizer:g},u}async _call(_,u=null){let d=await this.image_processor(_);return u&&(d.labels=this.tokenizer(u).input_ids),d}}}),"./src/models/mobilenet_v1/image_processing_mobilenet_v1.js":((e,r,t)=>{t.r(r),t.d(r,{MobileNetV1FeatureExtractor:()=>a,MobileNetV1ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/mobilenet_v2/image_processing_mobilenet_v2.js":((e,r,t)=>{t.r(r),t.d(r,{MobileNetV2FeatureExtractor:()=>a,MobileNetV2ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/mobilenet_v3/image_processing_mobilenet_v3.js":((e,r,t)=>{t.r(r),t.d(r,{MobileNetV3FeatureExtractor:()=>a,MobileNetV3ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/mobilenet_v4/image_processing_mobilenet_v4.js":((e,r,t)=>{t.r(r),t.d(r,{MobileNetV4FeatureExtractor:()=>a,MobileNetV4ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/mobilevit/image_processing_mobilevit.js":((e,r,t)=>{t.r(r),t.d(r,{MobileViTFeatureExtractor:()=>a,MobileViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/moonshine/feature_extraction_moonshine.js":((e,r,t)=>{t.r(r),t.d(r,{MoonshineFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{async _call(i){(0,s.validate_audio_inputs)(i,"MoonshineFeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=[1,i.length];return{input_values:new o.Tensor("float32",i,l)}}}}),"./src/models/moonshine/processing_moonshine.js":((e,r,t)=>{t.r(r),t.d(r,{MoonshineProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/nougat/image_processing_nougat.js":((e,r,t)=>{t.r(r),t.d(r,{NougatImageProcessor:()=>o});var s=t("./src/models/donut/image_processing_donut.js");class o extends s.DonutImageProcessor{}}),"./src/models/owlv2/image_processing_owlv2.js":((e,r,t)=>{t.r(r),t.d(r,{Owlv2ImageProcessor:()=>o});var s=t("./src/models/owlvit/image_processing_owlvit.js");class o extends s.OwlViTImageProcessor{}}),"./src/models/owlvit/image_processing_owlvit.js":((e,r,t)=>{t.r(r),t.d(r,{OwlViTFeatureExtractor:()=>a,OwlViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...i){return(0,s.post_process_object_detection)(...i)}}class a extends o{}}),"./src/models/owlvit/processing_owlvit.js":((e,r,t)=>{t.r(r),t.d(r,{OwlViTProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor}}),"./src/models/paligemma/processing_paligemma.js":((e,r,t)=>{t.r(r),t.d(r,{PaliGemmaProcessor:()=>l});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");let n="<image>";function i(c,_,u,d,g){return`${d.repeat(u*g)}${_}${c}
|
|
2849
2849
|
`}class l extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!1;async _call(_,u=null,d={}){u||(console.warn("You are using PaliGemma without a text prefix. It will perform as a picture-captioning model."),u=""),Array.isArray(_)||(_=[_]),Array.isArray(u)||(u=[u]);let g=this.tokenizer.bos_token,h=this.image_processor.config.image_seq_length,x;u.some(b=>b.includes(n))?x=u.map(b=>{let C=b.replaceAll(n,n.repeat(h)),y=C.lastIndexOf(n),P=y===-1?0:y+n.length;return C.slice(0,P)+g+C.slice(P)+`
|
|
2850
|
-
`}):(console.warn("You are passing both `text` and `images` to `PaliGemmaProcessor`. The processor expects special image tokens in the text, as many tokens as there are images per each text. It is recommended to add `<image>` tokens in the very beginning of your text. For this call, we will infer how many images each text has and add special tokens."),x=u.map(b=>i(b,g,h,n,_.length)));let F=this.tokenizer(x,d);return{...await this.image_processor(_,d),...F}}}}),"./src/models/parakeet/feature_extraction_parakeet.js":((e,r,t)=>{t.r(r),t.d(r,{ParakeetFeatureExtractor:()=>i});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");let n=1e-5;class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,a.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,this.config.sampling_rate/2,this.config.sampling_rate,"slaney","slaney");let _=(0,a.window_function)(this.config.win_length,"hann",{periodic:!1});this.window=new Float64Array(this.config.n_fft);let u=Math.floor((this.config.n_fft-this.config.win_length)/2);this.window.set(_,u)}async _extract_fbank_features(c){let _=this.config.preemphasis;c=new Float64Array(c);for(let d=c.length-1;d>=1;--d)c[d]-=_*c[d-1];return await(0,a.spectrogram)(c,this.window,this.window.length,this.config.hop_length,{fft_length:this.config.n_fft,power:2,mel_filters:this.config.mel_filters,log_mel:"log",mel_floor:-1/0,pad_mode:"constant",center:!0,transpose:!0,mel_offset:2**-24})}async _call(c){(0,s.validate_audio_inputs)(c,"ParakeetFeatureExtractor");let _=await this._extract_fbank_features(c),u=Math.floor((c.length+Math.floor(this.config.n_fft/2)*2-this.config.n_fft)/this.config.hop_length),d=_.data;d.fill(0,u*_.dims[1]);let[g,h]=_.dims,x=new Float64Array(h),F=new Float64Array(h);for(let C=0;C<u;++C){let y=C*h;for(let P=0;P<h;++P){let I=d[y+P];x[P]+=I,F[P]+=I*I}}let v=u>1?u-1:1;for(let C=0;C<h;++C){let y=x[C]/u,P=(F[C]-u*y*y)/v,f=1/(Math.sqrt(P)+n);for(let E=0;E<u;++E){let D=E*h+C;d[D]=(d[D]-y)*f}}let b=new BigInt64Array(g);return b.fill(1n,0,u),{input_features:_.unsqueeze_(0),attention_mask:new o.Tensor("int64",b,[1,g])}}}}),"./src/models/phi3_v/image_processing_phi3_v.js":((e,r,t)=>{t.r(r),t.d(r,{Phi3VImageProcessor:()=>_});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");let a=336,n=[2,3],{ceil:i,floor:l,sqrt:c}=Math;class _ extends s.ImageProcessor{constructor(d){super({...d,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=d.num_crops}calc_num_image_tokens_from_image_size(d,g){let{num_img_tokens:h}=this.config;return l((l(g/a)*l(d/a)+1)*h+1+(l(g/a)+1)*c(h))}get_resize_output_image_size(d,g){let h=this._num_crops,[x,F]=d.size,v=x/F,b=1;for(;b*Math.ceil(b/v)<=h;)b+=1;b-=1;let C=Math.floor(b*336),y=Math.floor(C/v);return[C,y]}pad_image(d,g,h,x={}){let[F,v]=g,b=a*i(F/a),C=a*i(v/a),y=[1,1,1].map((P,I)=>(P-this.image_mean[I])/this.image_std[I]);return super.pad_image(d,g,{width:C,height:b},{center:!0,constant_values:y,...x})}async _call(d,{num_crops:g=null}={}){if(this._num_crops=g??=this.config.num_crops,g<4||c(g)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(d)||(d=[d]);let h=d.length,x=await Promise.all(d.map(f=>this.preprocess(f))),F=x.map(f=>f.original_size),v=x.map(f=>f.reshaped_input_size),b=[];for(let{pixel_values:f}of x){f.unsqueeze_(0);let[E,D]=f.dims.slice(-2),O=await(0,o.interpolate_4d)(f,{size:[a,a],mode:"bicubic"});if(g>0){let U=[],W=c(g),z=l(D/W),X=l(E/W);for(let q=0;q<W;++q)for(let re=0;re<W;++re){let oe,ne,ye,Y;q===W-1?(ne=E-X,Y=E):(ne=q*X,Y=(q+1)*X),re===W-1?(oe=D-z,ye=D):(oe=re*z,ye=(re+1)*z);let H=[ne,oe],R=[Y,ye],L=await(0,o.slice)(f,H,R,n);U.push(L)}let J=await(0,o.interpolate_4d)((0,o.cat)(U,0),{size:[a,a],mode:"bicubic"});b.push((0,o.cat)([O,J],0))}else b.push(O)}let C=(0,o.stack)(b,0),y=v.map(f=>f.map(E=>a*i(E/a))),P=new o.Tensor("int64",y.flat(),[h,2]),I=y.map(([f,E])=>this.calc_num_image_tokens_from_image_size(E,f));return{pixel_values:C,original_sizes:F,reshaped_input_sizes:v,image_sizes:P,num_img_tokens:I}}}}),"./src/models/phi3_v/processing_phi3_v.js":((e,r,t)=>{t.r(r),t.d(r,{Phi3VProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/image.js");let i="<|image|>",l=/<\|image_\d+\|>/g;class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(u,d=null,{padding:g=!0,truncation:h=!0,num_crops:x=null}={}){Array.isArray(u)||(u=[u]);let F,v;if(d){v=await this.image_processor(d,{num_crops:x});let{num_img_tokens:b}=v,C=u.map((P,I)=>P.split(l).join(i.repeat(b[I])));F=this.tokenizer(C,{padding:g,truncation:h});let y=this.tokenizer.model.convert_tokens_to_ids([i])[0];F.input_ids.map_(P=>P==y?-P:P)}else F=this.tokenizer(u);return{...F,...v}}}}),"./src/models/pixtral/image_processing_pixtral.js":((e,r,t)=>{t.r(r),t.d(r,{PixtralImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{get_resize_output_image_size(n,i){let{longest_edge:l}=i;if(l===void 0)throw new Error("size must contain 'longest_edge'");let[c,_]=n.size,u=Math.max(c,_)/l,d=c,g=_;u>1&&(d=Math.floor(c/u),g=Math.floor(_/u));let{patch_size:h,spatial_merge_size:x}=this.config;if(!x)throw new Error("config must contain 'spatial_merge_size'");let F=h*x,v=Math.floor((d-1)/F)+1,b=Math.floor((g-1)/F)+1;return[v*F,b*F]}}}),"./src/models/pixtral/processing_pixtral.js":((e,r,t)=>{t.r(r),t.d(r,{PixtralProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!0;async _call(l,c=null,_={}){let u=await this.image_processor(l,_);if(c){let[g,h]=u.pixel_values.dims.slice(-2),{image_token:x,image_break_token:F,image_end_token:v,patch_size:b,spatial_merge_size:C}=this.config,y=b*C,P=Math.floor(g/y),I=Math.floor(h/y);c=structuredClone(c),Array.isArray(c)||(c=[c]);for(let f=0;f<c.length;++f){let E=x.repeat(I),D=E+F,O=E+v,U=D.repeat(P-1)+O;c[f]=c[f].replace(x,U)}}let d=c?this.tokenizer(c,_):{};return{...u,...d}}}}),"./src/models/processors.js":((e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>s.Florence2Processor,Gemma3nProcessor:()=>o.Gemma3nProcessor,GroundingDinoProcessor:()=>a.GroundingDinoProcessor,Idefics3Processor:()=>n.Idefics3Processor,JinaCLIPProcessor:()=>l.JinaCLIPProcessor,LlavaProcessor:()=>c.LlavaProcessor,MgpstrProcessor:()=>_.MgpstrProcessor,MoonshineProcessor:()=>u.MoonshineProcessor,OwlViTProcessor:()=>d.OwlViTProcessor,PaliGemmaProcessor:()=>g.PaliGemmaProcessor,Phi3VProcessor:()=>h.Phi3VProcessor,PixtralProcessor:()=>x.PixtralProcessor,PyAnnoteProcessor:()=>F.PyAnnoteProcessor,Qwen2VLProcessor:()=>v.Qwen2VLProcessor,Sam2Processor:()=>C.Sam2Processor,Sam2VideoProcessor:()=>C.Sam2VideoProcessor,SamProcessor:()=>b.SamProcessor,SmolVLMProcessor:()=>y.SmolVLMProcessor,SpeechT5Processor:()=>P.SpeechT5Processor,UltravoxProcessor:()=>I.UltravoxProcessor,VLChatProcessor:()=>i.VLChatProcessor,VoxtralProcessor:()=>f.VoxtralProcessor,Wav2Vec2Processor:()=>E.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>D.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>O.WhisperProcessor});var s=t("./src/models/florence2/processing_florence2.js"),o=t("./src/models/gemma3n/processing_gemma3n.js"),a=t("./src/models/grounding_dino/processing_grounding_dino.js"),n=t("./src/models/idefics3/processing_idefics3.js"),i=t("./src/models/janus/processing_janus.js"),l=t("./src/models/jina_clip/processing_jina_clip.js"),c=t("./src/models/llava/processing_llava.js"),_=t("./src/models/mgp_str/processing_mgp_str.js"),u=t("./src/models/moonshine/processing_moonshine.js"),d=t("./src/models/owlvit/processing_owlvit.js"),g=t("./src/models/paligemma/processing_paligemma.js"),h=t("./src/models/phi3_v/processing_phi3_v.js"),x=t("./src/models/pixtral/processing_pixtral.js"),F=t("./src/models/pyannote/processing_pyannote.js"),v=t("./src/models/qwen2_vl/processing_qwen2_vl.js"),b=t("./src/models/sam/processing_sam.js"),C=t("./src/models/sam2/processing_sam2.js"),y=t("./src/models/smolvlm/processing_smolvlm.js"),P=t("./src/models/speecht5/processing_speecht5.js"),I=t("./src/models/ultravox/processing_ultravox.js"),f=t("./src/models/voxtral/processing_voxtral.js"),E=t("./src/models/wav2vec2/processing_wav2vec2.js"),D=t("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),O=t("./src/models/whisper/processing_whisper.js")}),"./src/models/pvt/image_processing_pvt.js":((e,r,t)=>{t.r(r),t.d(r,{PvtImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/pyannote/feature_extraction_pyannote.js":((e,r,t)=>{t.r(r),t.d(r,{PyAnnoteFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js");class n extends s.FeatureExtractor{async _call(l){(0,s.validate_audio_inputs)(l,"PyAnnoteFeatureExtractor"),l instanceof Float64Array&&(l=new Float32Array(l));let c=[1,1,l.length];return{input_values:new o.Tensor("float32",l,c)}}samples_to_frames(l){return(l-this.config.offset)/this.config.step}post_process_speaker_diarization(l,c){let _=c/this.samples_to_frames(c)/this.config.sampling_rate,u=[];for(let d of l.tolist()){let g=[],h=-1;for(let x=0;x<d.length;++x){let F=(0,a.softmax)(d[x]),[v,b]=(0,a.max)(F),[C,y]=[x,x+1];b!==h?(h=b,g.push({id:b,start:C,end:y,score:v})):(g.at(-1).end=y,g.at(-1).score+=v)}u.push(g.map(({id:x,start:F,end:v,score:b})=>({id:x,start:F*_,end:v*_,confidence:b/(v-F)})))}return u}}}),"./src/models/pyannote/processing_pyannote.js":((e,r,t)=>{t.r(r),t.d(r,{PyAnnoteProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/pyannote/feature_extraction_pyannote.js");class a extends s.Processor{static feature_extractor_class=o.PyAnnoteFeatureExtractor;async _call(i){return await this.feature_extractor(i)}post_process_speaker_diarization(...i){return this.feature_extractor.post_process_speaker_diarization(...i)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}}),"./src/models/qwen2_vl/image_processing_qwen2_vl.js":((e,r,t)=>{t.r(r),t.d(r,{Qwen2VLImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(i,...l){let{pixel_values:c,original_sizes:_,reshaped_input_sizes:u}=await super._call(i,...l),d=c,{temporal_patch_size:g,merge_size:h,patch_size:x}=this.config;d.dims[0]===1&&(d=(0,o.cat)(Array.from({length:g},()=>d),0));let F=d.dims[0]/g,v=d.dims[1],b=Math.floor(d.dims[2]/x),C=Math.floor(d.dims[3]/x),y=d.view(F,g,v,Math.floor(b/h),h,x,Math.floor(C/h),h,x).permute(0,3,6,4,7,2,1,5,8).view(F*b*C,v*g*x*x),P=new o.Tensor("int64",[F,b,C],[1,3]);return{pixel_values:y,image_grid_thw:P,original_sizes:_,reshaped_input_sizes:u}}}}),"./src/models/qwen2_vl/processing_qwen2_vl.js":((e,r,t)=>{t.r(r),t.d(r,{Qwen2VLProcessor:()=>i});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/image.js");class i extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(c,_=null,...u){Array.isArray(c)||(c=[c]);let d,g;if(_&&(d=await this.image_processor(_),g=d.image_grid_thw),g){let x=this.image_processor.config.merge_size**2,F=0,v=g.tolist();c=c.map(b=>{for(;b.includes("<|image_pad|>");){let C=Number(v[F++].reduce((y,P)=>y*P,1n));b=b.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(C/x)))}return b.replaceAll("<|placeholder|>","<|image_pad|>")})}return{...this.tokenizer(c),...d}}}}),"./src/models/rt_detr/image_processing_rt_detr.js":((e,r,t)=>{t.r(r),t.d(r,{RTDetrImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...n){return(0,s.post_process_object_detection)(...n)}}}),"./src/models/sam/image_processing_sam.js":((e,r,t)=>{t.r(r),t.d(r,{SamImageProcessor:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/core.js"),a=t("./src/utils/tensor.js");class n extends s.ImageProcessor{reshape_input_points(l,c,_,u=!1){l=structuredClone(l);let d=(0,o.calculateDimensions)(l);if(d.length===3)u||(d=[1,...d]),l=[l];else if(d.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let g=0;g<l.length;++g){let[h,x]=c[g],[F,v]=_[g],b=[v/x,F/h];for(let C=0;C<l[g].length;++C)for(let y=0;y<l[g][C].length;++y)for(let P=0;P<l[g][C][y].length;++P)l[g][C][y][P]*=b[P%2]}return new a.Tensor("float32",Float32Array.from(l.flat(1/0)),d)}add_input_labels(l,c){let _=(0,o.calculateDimensions)(l);if(_.length===2)_=[1,..._],l=[l];else if(_.length!==3)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");if(_.some((u,d)=>u!==c.dims[d]))throw Error(`The first ${_.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new a.Tensor("int64",l.flat(1/0).map(BigInt),_)}async _call(l,{input_points:c=null,input_labels:_=null,input_boxes:u=null}={}){let d=await super._call(l);if(c&&(d.input_points=this.reshape_input_points(c,d.original_sizes,d.reshaped_input_sizes)),_){if(!d.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");d.input_labels=this.add_input_labels(_,d.input_points)}return u&&(d.input_boxes=this.reshape_input_points(u,d.original_sizes,d.reshaped_input_sizes,!0)),d}async post_process_masks(l,c,_,{mask_threshold:u=0,binarize:d=!0,pad_size:g=null}={}){let h=[];g=g??this.pad_size??this.size;let x=[g.height,g.width];for(let F=0;F<c.length;++F){let v=c[F],b=_[F],C=await(0,a.interpolate_4d)(l[F],{mode:"bilinear",size:x});if(C=C.slice(null,null,[0,b[0]],[0,b[1]]),C=await(0,a.interpolate_4d)(C,{mode:"bilinear",size:v}),d){let y=C.data,P=new Uint8Array(y.length);for(let I=0;I<y.length;++I)y[I]>u&&(P[I]=1);C=new a.Tensor("bool",P,C.dims)}h.push(C)}return h}generate_crop_boxes(l,c,{crop_n_layers:_=0,overlap_ratio:u=512/1500,points_per_crop:d=32,crop_n_points_downscale_factor:g=1}={}){}}}),"./src/models/sam/processing_sam.js":((e,r,t)=>{t.r(r),t.d(r,{SamProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js");class a extends s.Processor{static image_processor_class=o.AutoImageProcessor;async _call(...i){return await this.image_processor(...i)}post_process_masks(...i){return this.image_processor.post_process_masks(...i)}reshape_input_points(...i){return this.image_processor.reshape_input_points(...i)}}}),"./src/models/sam2/image_processing_sam2.js":((e,r,t)=>{t.r(r),t.d(r,{Sam2ImageProcessor:()=>s.SamImageProcessor});var s=t("./src/models/sam/image_processing_sam.js")}),"./src/models/sam2/processing_sam2.js":((e,r,t)=>{t.r(r),t.d(r,{Sam2Processor:()=>o,Sam2VideoProcessor:()=>a});var s=t("./src/models/sam/processing_sam.js");class o extends s.SamProcessor{}class a extends o{}}),"./src/models/sam3/image_processing_sam3.js":((e,r,t)=>{t.r(r),t.d(r,{Sam3ImageProcessor:()=>s.Sam2ImageProcessor});var s=t("./src/models/sam2/image_processing_sam2.js")}),"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":((e,r,t)=>{t.r(r),t.d(r,{SeamlessM4TFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(l,c){return l=l.map(_=>_*32768),(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:c,transpose:!0})}async _call(l,{padding:c=!0,pad_to_multiple_of:_=2,do_normalize_per_mel_bins:u=!0,return_attention_mask:d=!0}={}){(0,s.validate_audio_inputs)(l,"SeamlessM4TFeatureExtractor");let g=await this._extract_fbank_features(l,this.config.max_length);if(u){let[P,I]=g.dims,f=g.data;for(let E=0;E<I;++E){let D=0;for(let z=0;z<P;++z)D+=f[z*I+E];let O=D/P,U=0;for(let z=0;z<P;++z)U+=(f[z*I+E]-O)**2;U/=P-1;let W=Math.sqrt(U+1e-7);for(let z=0;z<P;++z){let X=z*I+E;f[X]=(f[X]-O)/W}}}let h;if(c){let[P,I]=g.dims,f=g.data,E=P%_;if(E>0){let D=new Float32Array(I*(P+E));D.set(f),D.fill(this.config.padding_value,f.length);let O=P+E;g=new o.Tensor(g.type,D,[O,I]),d&&(h=new o.Tensor("int64",new BigInt64Array(O),[1,O]),h.data.fill(1n,0,P))}}let[x,F]=g.dims,v=this.config.stride;if(x%v!==0)throw new Error(`The number of frames (${x}) must be a multiple of the stride (${v}).`);let C=g.view(1,Math.floor(x/v),F*v),y={input_features:C};if(d){let P=C.dims[1],I=new BigInt64Array(P);if(h){let f=h.data;for(let E=1,D=0;E<x;E+=v,++D)I[D]=f[E]}else I.fill(1n);y.attention_mask=new o.Tensor("int64",I,[1,P])}return y}}}),"./src/models/segformer/image_processing_segformer.js":((e,r,t)=>{t.r(r),t.d(r,{SegformerFeatureExtractor:()=>a,SegformerImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_semantic_segmentation(...i){return(0,s.post_process_semantic_segmentation)(...i)}}class a extends o{}}),"./src/models/siglip/image_processing_siglip.js":((e,r,t)=>{t.r(r),t.d(r,{SiglipImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/smolvlm/image_processing_smolvlm.js":((e,r,t)=>{t.r(r),t.d(r,{SmolVLMImageProcessor:()=>s.Idefics3ImageProcessor});var s=t("./src/models/idefics3/image_processing_idefics3.js")}),"./src/models/smolvlm/processing_smolvlm.js":((e,r,t)=>{t.r(r),t.d(r,{SmolVLMProcessor:()=>s.Idefics3Processor});var s=t("./src/models/idefics3/processing_idefics3.js")}),"./src/models/snac/feature_extraction_snac.js":((e,r,t)=>{t.r(r),t.d(r,{SnacFeatureExtractor:()=>o});var s=t("./src/models/dac/feature_extraction_dac.js");class o extends s.DacFeatureExtractor{}}),"./src/models/speecht5/feature_extraction_speecht5.js":((e,r,t)=>{t.r(r),t.d(r,{SpeechT5FeatureExtractor:()=>o});var s=t("./src/base/feature_extraction_utils.js");class o extends s.FeatureExtractor{}}),"./src/models/speecht5/processing_speecht5.js":((e,r,t)=>{t.r(r),t.d(r,{SpeechT5Processor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/tokenizers.js"),a=t("./src/models/auto/feature_extraction_auto.js");class n extends s.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=a.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/swin2sr/image_processing_swin2sr.js":((e,r,t)=>{t.r(r),t.d(r,{Swin2SRImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(n,i,l,c={}){let[_,u,d]=i;return super.pad_image(n,i,{width:u+(l-u%l)%l,height:_+(l-_%l)%l},{mode:"symmetric",center:!1,constant_values:-1,...c})}}}),"./src/models/ultravox/processing_ultravox.js":((e,r,t)=>{t.r(r),t.d(r,{UltravoxProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!0;async _call(l,c=null,_={}){if(Array.isArray(l))throw new Error("Batched inputs are not supported yet.");let u={};if(c){let g=c.length,{input_features:h}=await this.feature_extractor(c,{..._,max_length:g}),x=Math.round(g/this.config.encoder_ds_factor+1e-4),F=1+Math.ceil(x/this.config.stack_factor);u.audio_token_len=[F],u.audio_values=h;let v=this.config.audio_placeholder;if(!l.includes(v))throw new Error(`The input text does not contain the image token ${v}.`);l=l.replaceAll(v,v.repeat(F))}return{...this.tokenizer(l,{add_special_tokens:!1,..._}),...u}}}}),"./src/models/vit/image_processing_vit.js":((e,r,t)=>{t.r(r),t.d(r,{ViTFeatureExtractor:()=>a,ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/vitmatte/image_processing_vitmatte.js":((e,r,t)=>{t.r(r),t.d(r,{VitMatteImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(i,l){Array.isArray(i)||(i=[i]),Array.isArray(l)||(l=[l]);let c=await Promise.all(i.map(d=>this.preprocess(d))),_=await Promise.all(l.map(d=>this.preprocess(d,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,o.stack)(c.map((d,g)=>(0,o.cat)([d.pixel_values,_[g].pixel_values],0)),0),original_sizes:c.map(d=>d.original_size),reshaped_input_sizes:c.map(d=>d.reshaped_input_size)}}}}),"./src/models/vitpose/image_processing_vitpose.js":((e,r,t)=>{t.r(r),t.d(r,{VitPoseImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_pose_estimation(n,i,{threshold:l=null}={}){let c=n.tolist(),[_,u,d,g]=n.dims,h=[];for(let x=0;x<_;++x){let F=c[x],v=i[x],b=[];for(let C=0;C<v.length;++C){let y=v[C],P=[],I=[],f=[],E=y.at(-2)/g,D=y.at(-1)/d;for(let O=0;O<F.length;++O){let[U,W]=[0,0],z=0,X=-1/0,J=F[O];for(let re=0;re<J.length;++re){let oe=J[re];for(let ne=0;ne<oe.length;++ne){let ye=oe[ne];z+=ye,X=Math.max(X,ye),U+=(ne+.5)*ye,W+=re*ye}}if(l!=null&&X<l)continue;let q=[E*U/z,D*W/z];P.push(q),f.push(O),I.push(X)}b.push({bbox:y,scores:I,labels:f,keypoints:P})}h.push(b)}return h}}}),"./src/models/voxtral/processing_voxtral.js":((e,r,t)=>{t.r(r),t.d(r,{VoxtralProcessor:()=>u});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js"),n=t("./src/utils/tensor.js");let i="[AUDIO]",l="[BEGIN_AUDIO]",c=375;function _(d,g){let h=[];for(let x=0;x<d.length;x+=g)h.push(d.subarray(x,Math.min(x+g,d.length)));return h}class u extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!1;async _call(g,h=null,x={}){if(Array.isArray(g))throw new Error("Batched inputs are not supported yet.");let F={};if(h){if(!g.includes(i))throw new Error(`The input text does not contain the audio token ${i}.`);Array.isArray(h)||(h=[h]);let b=g.split(i),C=b.length-1;if(C!==h.length)throw new Error(`The number of audio inputs (${h.length}) does not match the number of audio tokens in the text (${C}).`);let y=this.feature_extractor.config.n_samples,P=h.map(O=>_(O,y)),I=P.map(O=>O.length),f=P.flat(),E=(await Promise.all(f.map(O=>this.feature_extractor(O,x)))).map(O=>O.input_features);F.audio_values=E.length>1?(0,n.cat)(E,0):E[0];let D=b[0];for(let O=0;O<I.length;++O){D+=l;for(let U=0;U<I[O];++U)D+=i.repeat(c);D+=b[O+1]}g=D}return{...this.tokenizer(g,{add_special_tokens:!1,...x}),...F}}}}),"./src/models/wav2vec2/feature_extraction_wav2vec2.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2FeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{_zero_mean_unit_var_norm(i){let c=i.reduce((u,d)=>u+d,0)/i.length,_=i.reduce((u,d)=>u+(d-c)**2,0)/i.length;return i.map(u=>(u-c)/Math.sqrt(_+1e-7))}async _call(i){(0,s.validate_audio_inputs)(i,"Wav2Vec2FeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=i;this.config.do_normalize&&(l=this._zero_mean_unit_var_norm(l));let c=[1,l.length];return{input_values:new o.Tensor("float32",l,c),attention_mask:new o.Tensor("int64",new BigInt64Array(l.length).fill(1n),c)}}}}),"./src/models/wav2vec2/processing_wav2vec2.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2Processor:()=>n});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=s.AutoTokenizer;static feature_extractor_class=o.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2ProcessorWithLM:()=>n});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=s.AutoTokenizer;static feature_extractor_class=o.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/wespeaker/feature_extraction_wespeaker.js":((e,r,t)=>{t.r(r),t.d(r,{WeSpeakerFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"hamming",{periodic:!1}),this.min_num_frames=this.config.min_num_frames}async _extract_fbank_features(l){return l=l.map(c=>c*32768),(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(l){(0,s.validate_audio_inputs)(l,"WeSpeakerFeatureExtractor");let c=(await this._extract_fbank_features(l)).unsqueeze_(0);if(this.config.fbank_centering_span===null){let _=c.mean(1).data,u=c.data,[d,g,h]=c.dims;for(let x=0;x<d;++x){let F=x*g*h,v=x*h;for(let b=0;b<g;++b){let C=F+b*h;for(let y=0;y<h;++y)u[C+y]-=_[v+y]}}}return{input_features:c}}}}),"./src/models/whisper/common_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WHISPER_LANGUAGE_MAPPING:()=>o,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>a,whisper_language_to_code:()=>n});let s=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],o=new Map(s),a=new Map([...s.map(([i,l])=>[l,i]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function n(i){i=i.toLowerCase();let l=a.get(i);if(l===void 0){let c=i.match(/^<\|([a-z]{2})\|>$/);if(c&&(i=c[1]),o.has(i))l=i;else{let u=i.length===2?o.keys():o.values();throw new Error(`Language "${i}" is not supported. Must be one of: ${JSON.stringify(Array.from(u))}`)}}return l}}),"./src/models/whisper/feature_extraction_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperFeatureExtractor:()=>i});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js"),n=t("./src/utils/maths.js");class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,a.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney"),this.window=(0,a.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(c){let _=await(0,a.spectrogram)(c,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:Math.min(Math.floor(c.length/this.config.hop_length),this.config.nb_max_frames)}),u=_.data,d=(0,n.max)(u)[0];for(let g=0;g<u.length;++g)u[g]=(Math.max(u[g],d-8)+4)/4;return _}async _call(c,{max_length:_=null}={}){(0,s.validate_audio_inputs)(c,"WhisperFeatureExtractor");let u,d=_??this.config.n_samples;return c.length>d?(c.length>this.config.n_samples&&console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),u=c.slice(0,d)):(u=new Float32Array(d),u.set(c)),{input_features:(await this._extract_fbank_features(u)).unsqueeze_(0)}}}}),"./src/models/whisper/generation_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperGenerationConfig:()=>o});var s=t("./src/generation/configuration_utils.js");class o extends s.GenerationConfig{return_timestamps=null;return_token_timestamps=null;num_frames=null;alignment_heads=null;task=null;language=null;no_timestamps_token_id=null;prompt_ids=null;is_multilingual=null;lang_to_id=null;task_to_id=null;max_initial_timestamp_index=1}}),"./src/models/whisper/processing_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/yolos/image_processing_yolos.js":((e,r,t)=>{t.r(r),t.d(r,{YolosFeatureExtractor:()=>a,YolosImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...i){return(0,s.post_process_object_detection)(...i)}}class a extends o{}}),"./src/ops/registry.js":((e,r,t)=>{t.r(r),t.d(r,{TensorOpRegistry:()=>n});var s=t("./src/backends/onnx.js"),o=t("./src/utils/tensor.js");let a=async(i,l,c)=>{let _=await(0,s.createInferenceSession)(new Uint8Array(i),l);return(async u=>{let d=(0,s.isONNXProxy)(),g=Object.fromEntries(Object.entries(u).map(([x,F])=>[x,(d?F.clone():F).ort_tensor])),h=await(0,s.runInferenceSession)(_,g);return Array.isArray(c)?c.map(x=>new o.Tensor(h[x])):new o.Tensor(h[c])})};class n{static session_options={};static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=a([8,10,18,0,58,129,1,10,41,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,18,10,4,109,111,100,101,34,7,110,101,97,114,101,115,116,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,21],this.session_options,"y")),this._nearest_interpolate_4d}static get bilinear_interpolate_4d(){return this._bilinear_interpolate_4d||(this._bilinear_interpolate_4d=a([8,9,18,0,58,128,1,10,40,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,17,10,4,109,111,100,101,34,6,108,105,110,101,97,114,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bilinear_interpolate_4d}static get bicubic_interpolate_4d(){return this._bicubic_interpolate_4d||(this._bicubic_interpolate_4d=a([8,9,18,0,58,127,10,39,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,16,10,4,109,111,100,101,34,5,99,117,98,105,99,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bicubic_interpolate_4d}static get matmul(){return this._matmul||(this._matmul=a([8,9,18,0,58,55,10,17,10,1,97,10,1,98,18,1,99,34,6,77,97,116,77,117,108,18,1,114,90,9,10,1,97,18,4,10,2,8,1,90,9,10,1,98,18,4,10,2,8,1,98,9,10,1,99,18,4,10,2,8,1,66,2,16,20],this.session_options,"c")),this._matmul}static get stft(){return this._stft||(this._stft=a([8,7,18,0,58,148,1,10,38,10,1,115,10,1,106,10,1,119,10,1,108,18,1,111,34,4,83,84,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,115,90,26,10,1,115,18,21,10,19,8,1,18,15,10,3,18,1,98,10,3,18,1,115,10,3,18,1,99,90,11,10,1,106,18,6,10,4,8,7,18,0,90,16,10,1,119,18,11,10,9,8,1,18,5,10,3,18,1,119,90,11,10,1,108,18,6,10,4,8,7,18,0,98,31,10,1,111,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,102,10,3,18,1,100,10,3,18,1,99,66,2,16,17],this.session_options,"o")),this._stft}static get rfft(){return this._rfft||(this._rfft=a([8,9,18,0,58,97,10,33,10,1,120,10,0,10,1,97,18,1,121,34,3,68,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,100,90,21,10,1,120,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,90,11,10,1,97,18,6,10,4,8,7,18,0,98,21,10,1,121,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,66,2,16,20],this.session_options,"y")),this._rfft}static get top_k(){return this._top_k||(this._top_k=a([8,10,18,0,58,73,10,18,10,1,120,10,1,107,18,1,118,18,1,105,34,4,84,111,112,75,18,1,116,90,9,10,1,120,18,4,10,2,8,1,90,15,10,1,107,18,10,10,8,8,7,18,4,10,2,8,1,98,9,10,1,118,18,4,10,2,8,1,98,9,10,1,105,18,4,10,2,8,7,66,2,16,21],this.session_options,["v","i"])),this._top_k}static get slice(){return this._slice||(this._slice=a([8,7,18,0,58,96,10,25,10,1,120,10,1,115,10,1,101,10,1,97,10,1,116,18,1,121,34,5,83,108,105,99,101,18,1,114,90,9,10,1,120,18,4,10,2,8,1,90,9,10,1,115,18,4,10,2,8,7,90,9,10,1,101,18,4,10,2,8,7,90,9,10,1,97,18,4,10,2,8,7,90,9,10,1,116,18,4,10,2,8,7,98,9,10,1,121,18,4,10,2,8,1,66,2,16,13],this.session_options,"y")),this._slice}}}),"./src/pipelines.js":((e,r,t)=>{t.r(r),t.d(r,{AudioClassificationPipeline:()=>z,AutomaticSpeechRecognitionPipeline:()=>J,BackgroundRemovalPipeline:()=>ne,DepthEstimationPipeline:()=>ue,DocumentQuestionAnsweringPipeline:()=>R,FeatureExtractionPipeline:()=>U,FillMaskPipeline:()=>y,ImageClassificationPipeline:()=>re,ImageFeatureExtractionPipeline:()=>W,ImageSegmentationPipeline:()=>oe,ImageToImagePipeline:()=>ee,ImageToTextPipeline:()=>q,ObjectDetectionPipeline:()=>Y,Pipeline:()=>F,QuestionAnsweringPipeline:()=>C,SummarizationPipeline:()=>I,Text2TextGenerationPipeline:()=>P,TextClassificationPipeline:()=>v,TextGenerationPipeline:()=>D,TextToAudioPipeline:()=>L,TokenClassificationPipeline:()=>b,TranslationPipeline:()=>f,ZeroShotAudioClassificationPipeline:()=>X,ZeroShotClassificationPipeline:()=>O,ZeroShotImageClassificationPipeline:()=>ye,ZeroShotObjectDetectionPipeline:()=>H,pipeline:()=>Le});var s=t("./src/tokenizers.js"),o=t("./src/models.js"),a=t("./src/models/auto/processing_auto.js"),n=t("./src/base/processing_utils.js"),i=t("./src/utils/generic.js"),l=t("./src/utils/core.js"),c=t("./src/utils/maths.js"),_=t("./src/utils/audio.js"),u=t("./src/utils/tensor.js"),d=t("./src/utils/image.js");async function g(we){return Array.isArray(we)||(we=[we]),await Promise.all(we.map(A=>d.RawImage.read(A)))}async function h(we,A){return Array.isArray(we)||(we=[we]),await Promise.all(we.map(le=>typeof le=="string"||le instanceof URL?(0,_.read_audio)(le,A):le instanceof Float64Array?new Float32Array(le):le))}function x(we,A){A&&(we=we.map(ve=>ve|0));let[le,ge,be,Ae]=we;return{xmin:le,ymin:ge,xmax:be,ymax:Ae}}class F extends i.Callable{constructor({task:A,model:le,tokenizer:ge=null,processor:be=null}){super(),this.task=A,this.model=le,this.tokenizer=ge,this.processor=be}async dispose(){await this.model.dispose()}}class v extends F{constructor(A){super(A)}async _call(A,{top_k:le=1}={}){let ge=this.tokenizer(A,{padding:!0,truncation:!0}),be=await this.model(ge),Ae=this.model.config.problem_type==="multi_label_classification"?Pe=>Pe.sigmoid():Pe=>new u.Tensor("float32",(0,c.softmax)(Pe.data),Pe.dims),ve=this.model.config.id2label,pe=[];for(let Pe of be.logits){let fe=Ae(Pe),Te=await(0,u.topk)(fe,le),We=Te[0].tolist(),Re=Te[1].tolist().map((Ne,ot)=>({label:ve?ve[Ne]:`LABEL_${Ne}`,score:We[ot]}));le===1?pe.push(...Re):pe.push(Re)}return Array.isArray(A)||le===1?pe:pe[0]}}class b extends F{constructor(A){super(A)}async _call(A,{ignore_labels:le=["O"]}={}){let ge=Array.isArray(A),be=this.tokenizer(ge?A:[A],{padding:!0,truncation:!0}),ve=(await this.model(be)).logits,pe=this.model.config.id2label,Pe=[];for(let fe=0;fe<ve.dims[0];++fe){let Te=be.input_ids[fe],We=ve[fe],$e=[];for(let Re=0;Re<We.dims[0];++Re){let Ne=We[Re],ot=(0,c.max)(Ne.data)[1],De=pe?pe[ot]:`LABEL_${ot}`;if(le.includes(De))continue;let Qe=this.tokenizer.decode([Te[Re].item()],{skip_special_tokens:!0});if(Qe==="")continue;let je=(0,c.softmax)(Ne.data);$e.push({entity:De,score:je[ot],index:Re,word:Qe})}Pe.push($e)}return ge?Pe:Pe[0]}}class C extends F{constructor(A){super(A)}async _call(A,le,{top_k:ge=1}={}){let be=this.tokenizer(A,{text_pair:le,padding:!0,truncation:!0}),{start_logits:Ae,end_logits:ve}=await this.model(be),pe=be.input_ids.tolist(),Pe=be.attention_mask.tolist(),fe=this.tokenizer.all_special_ids,Te=[];for(let We=0;We<Ae.dims[0];++We){let $e=pe[We],Re=$e.findIndex(Ke=>Ke==this.tokenizer.sep_token_id),Ne=Pe[We].map((Ke,bt)=>Ke==1&&(bt===0||bt>Re&&fe.findIndex(At=>At==$e[bt])===-1)),ot=Ae[We].tolist(),De=ve[We].tolist();for(let Ke=1;Ke<ot.length;++Ke)(Pe[We]==0||Ke<=Re||fe.findIndex(bt=>bt==$e[Ke])!==-1)&&(ot[Ke]=-1/0,De[Ke]=-1/0);let Qe=(0,c.softmax)(ot).map((Ke,bt)=>[Ke,bt]),je=(0,c.softmax)(De).map((Ke,bt)=>[Ke,bt]);Qe[0][0]=0,je[0][0]=0;let pt=(0,l.product)(Qe,je).filter(Ke=>Ke[0][1]<=Ke[1][1]).map(Ke=>[Ke[0][1],Ke[1][1],Ke[0][0]*Ke[1][0]]).sort((Ke,bt)=>bt[2]-Ke[2]);for(let Ke=0;Ke<Math.min(pt.length,ge);++Ke){let[bt,At,Lt]=pt[Ke],fr=$e.slice(bt,At+1),zt=this.tokenizer.decode(fr,{skip_special_tokens:!0});Te.push({answer:zt,score:Lt})}}return ge===1?Te[0]:Te}}class y extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=this.tokenizer(A,{padding:!0,truncation:!0}),{logits:be}=await this.model(ge),Ae=[],ve=ge.input_ids.tolist();for(let pe=0;pe<ve.length;++pe){let Pe=ve[pe],fe=Pe.findIndex(Ne=>Ne==this.tokenizer.mask_token_id);if(fe===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);let Te=be[pe][fe],We=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Te.data),Te.dims),le),$e=We[0].tolist(),Re=We[1].tolist();Ae.push(Re.map((Ne,ot)=>{let De=Pe.slice();return De[fe]=Ne,{score:$e[ot],token:Number(Ne),token_str:this.tokenizer.decode([Ne]),sequence:this.tokenizer.decode(De,{skip_special_tokens:!0})}}))}return Array.isArray(A)?Ae:Ae[0]}}class P extends F{_key="generated_text";constructor(A){super(A)}async _call(A,le={}){Array.isArray(A)||(A=[A]),this.model.config.prefix&&(A=A.map(Pe=>this.model.config.prefix+Pe));let ge=this.model.config.task_specific_params;ge&&ge[this.task]&&ge[this.task].prefix&&(A=A.map(Pe=>ge[this.task].prefix+Pe));let be=this.tokenizer,Ae={padding:!0,truncation:!0},ve;this instanceof f&&"_build_translation_inputs"in be?ve=be._build_translation_inputs(A,Ae,le):ve=be(A,Ae);let pe=await this.model.generate({...ve,...le});return be.batch_decode(pe,{skip_special_tokens:!0}).map(Pe=>({[this._key]:Pe}))}}class I extends P{_key="summary_text";constructor(A){super(A)}}class f extends P{_key="translation_text";constructor(A){super(A)}}function E(we){return Array.isArray(we)&&we.every(A=>"role"in A&&"content"in A)}class D extends F{constructor(A){super(A)}async _call(A,le={}){let ge=!1,be=!1,Ae=le.add_special_tokens??(this.tokenizer.add_bos_token||this.tokenizer.add_eos_token)??!1,ve;if(typeof A=="string")ve=A=[A];else if(Array.isArray(A)&&A.every(Re=>typeof Re=="string"))ge=!0,ve=A;else{if(E(A))A=[A];else if(Array.isArray(A)&&A.every(E))ge=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");be=!0,ve=A.map(Re=>this.tokenizer.apply_chat_template(Re,{tokenize:!1,add_generation_prompt:!0})),Ae=!1}let pe=be?!1:le.return_full_text??!0;this.tokenizer.padding_side="left";let Pe=this.tokenizer(ve,{add_special_tokens:Ae,padding:!0,truncation:!0}),fe=await this.model.generate({...Pe,...le}),Te=this.tokenizer.batch_decode(fe,{skip_special_tokens:!0}),We;!pe&&Pe.input_ids.dims.at(-1)>0&&(We=this.tokenizer.batch_decode(Pe.input_ids,{skip_special_tokens:!0}).map(Re=>Re.length));let $e=Array.from({length:A.length},Re=>[]);for(let Re=0;Re<Te.length;++Re){let Ne=Math.floor(Re/fe.dims[0]*A.length);We&&(Te[Re]=Te[Re].slice(We[Ne])),$e[Ne].push({generated_text:be?[...A[Ne],{role:"assistant",content:Te[Re]}]:Te[Re]})}return!ge&&$e.length===1?$e[0]:$e}}class O extends F{constructor(A){super(A),this.label2id=Object.fromEntries(Object.entries(this.model.config.label2id).map(([le,ge])=>[le.toLowerCase(),ge])),this.entailment_id=this.label2id.entailment,this.entailment_id===void 0&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=this.label2id.contradiction??this.label2id.not_entailment,this.contradiction_id===void 0&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(A,le,{hypothesis_template:ge="This example is {}.",multi_label:be=!1}={}){let Ae=Array.isArray(A);Ae||(A=[A]),Array.isArray(le)||(le=[le]);let ve=le.map(fe=>ge.replace("{}",fe)),pe=be||le.length===1,Pe=[];for(let fe of A){let Te=[];for(let Re of ve){let Ne=this.tokenizer(fe,{text_pair:Re,padding:!0,truncation:!0}),ot=await this.model(Ne);pe?Te.push([ot.logits.data[this.contradiction_id],ot.logits.data[this.entailment_id]]):Te.push(ot.logits.data[this.entailment_id])}let $e=(pe?Te.map(Re=>(0,c.softmax)(Re)[1]):(0,c.softmax)(Te)).map((Re,Ne)=>[Re,Ne]).sort((Re,Ne)=>Ne[0]-Re[0]);Pe.push({sequence:fe,labels:$e.map(Re=>le[Re[1]]),scores:$e.map(Re=>Re[0])})}return Ae?Pe:Pe[0]}}class U extends F{constructor(A){super(A)}async _call(A,{pooling:le="none",normalize:ge=!1,quantize:be=!1,precision:Ae="binary"}={}){let ve=this.tokenizer(A,{padding:!0,truncation:!0}),pe=await this.model(ve),Pe=pe.last_hidden_state??pe.logits??pe.token_embeddings;switch(le){case"none":break;case"mean":Pe=(0,u.mean_pooling)(Pe,ve.attention_mask);break;case"first_token":case"cls":Pe=Pe.slice(null,0);break;case"last_token":case"eos":Pe=Pe.slice(null,-1);break;default:throw Error(`Pooling method '${le}' not supported.`)}return ge&&(Pe=Pe.normalize(2,-1)),be&&(Pe=(0,u.quantize_embeddings)(Pe,Ae)),Pe}}class W extends F{constructor(A){super(A)}async _call(A,{pool:le=null}={}){let ge=await g(A),{pixel_values:be}=await this.processor(ge),Ae=await this.model({pixel_values:be}),ve;if(le){if(!("pooler_output"in Ae))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");ve=Ae.pooler_output}else ve=Ae.last_hidden_state??Ae.logits??Ae.image_embeds;return ve}}class z extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=this.processor.feature_extractor.config.sampling_rate,be=await h(A,ge),Ae=this.model.config.id2label,ve=[];for(let pe of be){let Pe=await this.processor(pe),Te=(await this.model(Pe)).logits[0],We=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Te.data),Te.dims),le),$e=We[0].tolist(),Ne=We[1].tolist().map((ot,De)=>({label:Ae?Ae[ot]:`LABEL_${ot}`,score:$e[De]}));ve.push(Ne)}return Array.isArray(A)?ve:ve[0]}}class X extends F{constructor(A){super(A)}async _call(A,le,{hypothesis_template:ge="This is a sound of {}."}={}){let be=!Array.isArray(A);be&&(A=[A]);let Ae=le.map(Te=>ge.replace("{}",Te)),ve=this.tokenizer(Ae,{padding:!0,truncation:!0}),pe=this.processor.feature_extractor.config.sampling_rate,Pe=await h(A,pe),fe=[];for(let Te of Pe){let We=await this.processor(Te),$e=await this.model({...ve,...We}),Re=(0,c.softmax)($e.logits_per_audio.data);fe.push([...Re].map((Ne,ot)=>({score:Ne,label:le[ot]})))}return be?fe[0]:fe}}class J extends F{constructor(A){super(A)}async _call(A,le={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(A,le);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":case"parakeet_ctc":return this._call_wav2vec2(A,le);case"moonshine":return this._call_moonshine(A,le);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(A,le){le.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),le.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');let ge=!Array.isArray(A);ge&&(A=[A]);let be=this.processor.feature_extractor.config.sampling_rate,Ae=await h(A,be),ve=[];for(let pe of Ae){let Pe=await this.processor(pe),Te=(await this.model(Pe)).logits[0],We=[];for(let Re of Te)We.push((0,c.max)(Re.data)[1]);let $e=this.tokenizer.decode(We,{skip_special_tokens:!0}).trim();ve.push({text:$e})}return ge?ve[0]:ve}async _call_whisper(A,le){let ge=le.return_timestamps??!1,be=le.chunk_length_s??0,Ae=le.force_full_sequences??!1,ve=le.stride_length_s??null,pe={...le};ge==="word"&&(pe.return_token_timestamps=!0,pe.return_timestamps=!1);let Pe=!Array.isArray(A);Pe&&(A=[A]);let fe=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,Te=this.processor.feature_extractor.config.hop_length,We=this.processor.feature_extractor.config.sampling_rate,$e=await h(A,We),Re=[];for(let Ne of $e){let ot=[];if(be>0){if(ve===null)ve=be/6;else if(be<=ve)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");let je=We*be,pt=We*ve,Ke=je-2*pt,bt=0;for(;;){let At=bt+je,Lt=Ne.subarray(bt,At),fr=await this.processor(Lt),zt=bt===0,yr=At>=Ne.length;if(ot.push({stride:[Lt.length,zt?0:pt,yr?0:pt],input_features:fr.input_features,is_last:yr}),yr)break;bt+=Ke}}else ot=[{stride:[Ne.length,0,0],input_features:(await this.processor(Ne)).input_features,is_last:!0}];for(let je of ot){pe.num_frames=Math.floor(je.stride[0]/Te);let pt=await this.model.generate({inputs:je.input_features,...pe});ge==="word"?(je.tokens=pt.sequences.tolist()[0],je.token_timestamps=pt.token_timestamps.tolist()[0].map(Ke=>(0,c.round)(Ke,2))):je.tokens=pt[0].tolist(),je.stride=je.stride.map(Ke=>Ke/We)}let[De,Qe]=this.tokenizer._decode_asr(ot,{time_precision:fe,return_timestamps:ge,force_full_sequences:Ae});Re.push({text:De,...Qe})}return Pe?Re[0]:Re}async _call_moonshine(A,le){let ge=!Array.isArray(A);ge&&(A=[A]);let be=this.processor.feature_extractor.config.sampling_rate,Ae=await h(A,be),ve=[];for(let pe of Ae){let Pe=await this.processor(pe),fe=Math.floor(pe.length/be)*6,Te=await this.model.generate({max_new_tokens:fe,...le,...Pe}),We=this.processor.batch_decode(Te,{skip_special_tokens:!0})[0];ve.push({text:We})}return ge?ve[0]:ve}}class q extends F{constructor(A){super(A)}async _call(A,le={}){let ge=Array.isArray(A),be=await g(A),{pixel_values:Ae}=await this.processor(be),ve=[];for(let pe of Ae){pe.dims=[1,...pe.dims];let Pe=await this.model.generate({inputs:pe,...le}),fe=this.tokenizer.batch_decode(Pe,{skip_special_tokens:!0}).map(Te=>({generated_text:Te.trim()}));ve.push(fe)}return ge?ve:ve[0]}}class re extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=await g(A),{pixel_values:be}=await this.processor(ge),Ae=await this.model({pixel_values:be}),ve=this.model.config.id2label,pe=[];for(let Pe of Ae.logits){let fe=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Pe.data),Pe.dims),le),Te=fe[0].tolist(),$e=fe[1].tolist().map((Re,Ne)=>({label:ve?ve[Re]:`LABEL_${Re}`,score:Te[Ne]}));pe.push($e)}return Array.isArray(A)?pe:pe[0]}}class oe extends F{constructor(A){super(A),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(A,{threshold:le=.5,mask_threshold:ge=.5,overlap_mask_area_threshold:be=.8,label_ids_to_fuse:Ae=null,target_sizes:ve=null,subtask:pe=null}={}){if(Array.isArray(A)&&A.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");let fe=await g(A),Te=fe.map(je=>[je.height,je.width]),We=await this.processor(fe),{inputNames:$e,outputNames:Re}=this.model.sessions.model;if(!$e.includes("pixel_values")){if($e.length!==1)throw Error(`Expected a single input name, but got ${$e.length} inputs: ${$e}.`);let je=$e[0];if(je in We)throw Error(`Input name ${je} already exists in the inputs.`);We[je]=We.pixel_values}let Ne=await this.model(We),ot=null;if(pe!==null)ot=this.subtasks_mapping[pe];else if(this.processor.image_processor){for(let[je,pt]of Object.entries(this.subtasks_mapping))if(pt in this.processor.image_processor){ot=this.processor.image_processor[pt].bind(this.processor.image_processor),pe=je;break}}let De=this.model.config.id2label,Qe=[];if(pe)if(pe==="panoptic"||pe==="instance"){let je=ot(Ne,le,ge,be,Ae,ve??Te)[0],pt=je.segmentation;for(let Ke of je.segments_info){let bt=new Uint8ClampedArray(pt.data.length);for(let Lt=0;Lt<pt.data.length;++Lt)pt.data[Lt]===Ke.id&&(bt[Lt]=255);let At=new d.RawImage(bt,pt.dims[1],pt.dims[0],1);Qe.push({score:Ke.score,label:De[Ke.label_id],mask:At})}}else if(pe==="semantic"){let{segmentation:je,labels:pt}=ot(Ne,ve??Te)[0];for(let Ke of pt){let bt=new Uint8ClampedArray(je.data.length);for(let Lt=0;Lt<je.data.length;++Lt)je.data[Lt]===Ke&&(bt[Lt]=255);let At=new d.RawImage(bt,je.dims[1],je.dims[0],1);Qe.push({score:null,label:De[Ke],mask:At})}}else throw Error(`Subtask ${pe} not supported.`);else{let pt=Ne[Re[0]];for(let Ke=0;Ke<Te.length;++Ke){let bt=Te[Ke],At=pt[Ke];At.data.some(fr=>fr<-1e-5||fr>1+1e-5)&&At.sigmoid_();let Lt=await d.RawImage.fromTensor(At.mul_(255).to("uint8")).resize(bt[1],bt[0]);Qe.push({label:null,score:null,mask:Lt})}}return Qe}}class ne extends oe{constructor(A){super(A)}async _call(A,le={}){if(Array.isArray(A)&&A.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");let be=await g(A),Ae=await super._call(A,le);return be.map((pe,Pe)=>{let fe=pe.clone();return fe.putAlpha(Ae[Pe].mask),fe})}}class ye extends F{constructor(A){super(A)}async _call(A,le,{hypothesis_template:ge="This is a photo of {}"}={}){let be=Array.isArray(A),Ae=await g(A),ve=le.map($e=>ge.replace("{}",$e)),pe=this.tokenizer(ve,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:Pe}=await this.processor(Ae),fe=await this.model({...pe,pixel_values:Pe}),Te=this.model.config.model_type==="siglip"?$e=>$e.sigmoid().data:$e=>(0,c.softmax)($e.data),We=[];for(let $e of fe.logits_per_image){let Ne=[...Te($e)].map((ot,De)=>({score:ot,label:le[De]}));Ne.sort((ot,De)=>De.score-ot.score),We.push(Ne)}return be?We:We[0]}}class Y extends F{constructor(A){super(A)}async _call(A,{threshold:le=.9,percentage:ge=!1}={}){let be=Array.isArray(A);if(be&&A.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");let Ae=await g(A),ve=ge?null:Ae.map(Re=>[Re.height,Re.width]),{pixel_values:pe,pixel_mask:Pe}=await this.processor(Ae),fe=await this.model({pixel_values:pe,pixel_mask:Pe}),Te=this.processor.image_processor.post_process_object_detection(fe,le,ve),We=this.model.config.id2label,$e=Te.map(Re=>Re.boxes.map((Ne,ot)=>({score:Re.scores[ot],label:We[Re.classes[ot]],box:x(Ne,!ge)})));return be?$e:$e[0]}}class H extends F{constructor(A){super(A)}async _call(A,le,{threshold:ge=.1,top_k:be=null,percentage:Ae=!1}={}){let ve=Array.isArray(A),pe=await g(A),Pe=this.tokenizer(le,{padding:!0,truncation:!0}),fe=await this.processor(pe),Te=[];for(let We=0;We<pe.length;++We){let $e=pe[We],Re=Ae?null:[[$e.height,$e.width]],Ne=fe.pixel_values[We].unsqueeze_(0),ot=await this.model({...Pe,pixel_values:Ne}),De;if("post_process_grounded_object_detection"in this.processor){let Qe=this.processor.post_process_grounded_object_detection(ot,Pe.input_ids,{box_threshold:ge,text_threshold:ge,target_sizes:Re})[0];De=Qe.boxes.map((je,pt)=>({score:Qe.scores[pt],label:Qe.labels[pt],box:x(je,!Ae)}))}else{let Qe=this.processor.image_processor.post_process_object_detection(ot,ge,Re,!0)[0];De=Qe.boxes.map((je,pt)=>({score:Qe.scores[pt],label:le[Qe.classes[pt]],box:x(je,!Ae)}))}De.sort((Qe,je)=>je.score-Qe.score),be!==null&&(De=De.slice(0,be)),Te.push(De)}return ve?Te:Te[0]}}class R extends F{constructor(A){super(A)}async _call(A,le,ge={}){let be=(await g(A))[0],{pixel_values:Ae}=await this.processor(be),ve=`<s_docvqa><s_question>${le}</s_question><s_answer>`,pe=this.tokenizer(ve,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,Pe=await this.model.generate({inputs:Ae,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:pe,...ge}),Te=this.tokenizer.batch_decode(Pe)[0].match(/<s_answer>(.*?)<\/s_answer>/),We=null;return Te&&Te.length>=2&&(We=Te[1].trim()),[{answer:We}]}}class L extends F{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(A){super(A),this.vocoder=A.vocoder??null}async _prepare_speaker_embeddings(A){if((typeof A=="string"||A instanceof URL)&&(A=new Float32Array(await(await fetch(A)).arrayBuffer())),A instanceof Float32Array)A=new u.Tensor("float32",A,[A.length]);else if(!(A instanceof u.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");return A}async _call(A,{speaker_embeddings:le=null,num_inference_steps:ge,speed:be}={}){return this.processor?this._call_text_to_spectrogram(A,{speaker_embeddings:le}):this.model.config.model_type==="supertonic"?this._call_supertonic(A,{speaker_embeddings:le,num_inference_steps:ge,speed:be}):this._call_text_to_waveform(A)}async _call_supertonic(A,{speaker_embeddings:le,num_inference_steps:ge,speed:be}){if(!le)throw new Error("Speaker embeddings must be provided for Supertonic models.");le=await this._prepare_speaker_embeddings(le);let{sampling_rate:Ae,style_dim:ve}=this.model.config;le=le.view(1,-1,ve);let pe=this.tokenizer(A,{padding:!0,truncation:!0}),{waveform:Pe}=await this.model.generate_speech({...pe,style:le,num_inference_steps:ge,speed:be});return new _.RawAudio(Pe.data,Ae)}async _call_text_to_waveform(A){let le=this.tokenizer(A,{padding:!0,truncation:!0}),{waveform:ge}=await this.model(le),be=this.model.config.sampling_rate;return new _.RawAudio(ge.data,be)}async _call_text_to_spectrogram(A,{speaker_embeddings:le}){this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await o.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"}));let{input_ids:ge}=this.tokenizer(A,{padding:!0,truncation:!0});le=await this._prepare_speaker_embeddings(le),le=le.view(1,-1);let{waveform:be}=await this.model.generate_speech(ge,le,{vocoder:this.vocoder}),Ae=this.processor.feature_extractor.config.sampling_rate;return new _.RawAudio(be.data,Ae)}}class ee extends F{constructor(A){super(A)}async _call(A){let le=await g(A),ge=await this.processor(le),be=await this.model(ge),Ae=[];for(let ve of be.reconstruction){let pe=ve.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");Ae.push(d.RawImage.fromTensor(pe))}return Ae.length>1?Ae:Ae[0]}}class ue extends F{constructor(A){super(A)}async _call(A){let le=await g(A),ge=await this.processor(le),{predicted_depth:be}=await this.model(ge),Ae=[];for(let ve=0;ve<le.length;++ve){let pe=be[ve],[Pe,fe]=pe.dims.slice(-2),[Te,We]=le[ve].size,$e=(await(0,u.interpolate_4d)(pe.view(1,1,Pe,fe),{size:[We,Te],mode:"bilinear"})).view(We,Te),Re=$e.min().item(),Ne=$e.max().item(),ot=$e.sub(Re).div_(Ne-Re).mul_(255).to("uint8").unsqueeze(0),De=d.RawImage.fromTensor(ot);Ae.push({predicted_depth:$e,depth:De})}return Ae.length>1?Ae:Ae[0]}}let ke=Object.freeze({"text-classification":{tokenizer:s.AutoTokenizer,pipeline:v,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:s.AutoTokenizer,pipeline:b,model:o.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:s.AutoTokenizer,pipeline:C,model:o.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:s.AutoTokenizer,pipeline:y,model:o.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:s.AutoTokenizer,pipeline:I,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:s.AutoTokenizer,pipeline:f,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:s.AutoTokenizer,pipeline:P,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:s.AutoTokenizer,pipeline:D,model:o.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:s.AutoTokenizer,pipeline:O,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:z,model:o.AutoModelForAudioClassification,processor:a.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:s.AutoTokenizer,pipeline:X,model:o.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:s.AutoTokenizer,pipeline:J,model:[o.AutoModelForSpeechSeq2Seq,o.AutoModelForCTC],processor:a.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:s.AutoTokenizer,pipeline:L,model:[o.AutoModelForTextToWaveform,o.AutoModelForTextToSpectrogram],processor:[a.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:s.AutoTokenizer,pipeline:q,model:o.AutoModelForVision2Seq,processor:a.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:re,model:o.AutoModelForImageClassification,processor:a.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:oe,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:ne,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:a.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:s.AutoTokenizer,pipeline:ye,model:o.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:Y,model:o.AutoModelForObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:s.AutoTokenizer,pipeline:H,model:o.AutoModelForZeroShotObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:s.AutoTokenizer,pipeline:R,model:o.AutoModelForDocumentQuestionAnswering,processor:a.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:ee,model:o.AutoModelForImageToImage,processor:a.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:ue,model:o.AutoModelForDepthEstimation,processor:a.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:s.AutoTokenizer,pipeline:U,model:o.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:a.AutoProcessor,pipeline:W,model:[o.AutoModelForImageFeatureExtraction,o.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),Ie=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function Le(we,A=null,{progress_callback:le=null,config:ge=null,cache_dir:be=null,local_files_only:Ae=!1,revision:ve="main",device:pe=null,dtype:Pe=null,subfolder:fe="onnx",use_external_data_format:Te=null,model_file_name:We=null,session_options:$e={}}={}){we=Ie[we]??we;let Re=ke[we.split("_",1)[0]];if(!Re)throw Error(`Unsupported pipeline: ${we}. Must be one of [${Object.keys(ke)}]`);A||(A=Re.default.model,console.log(`No model specified. Using default model: "${A}".`));let Ne={progress_callback:le,config:ge,cache_dir:be,local_files_only:Ae,revision:ve,device:pe,dtype:Pe,subfolder:fe,use_external_data_format:Te,model_file_name:We,session_options:$e},ot=new Map([["tokenizer",Re.tokenizer],["model",Re.model],["processor",Re.processor]]),De=await rt(ot,A,Ne);De.task=we,(0,l.dispatchCallback)(le,{status:"ready",task:we,model:A});let Qe=Re.pipeline;return new Qe(De)}async function rt(we,A,le){let ge=Object.create(null),be=[];for(let[Ae,ve]of we.entries()){if(!ve)continue;let pe;Array.isArray(ve)?pe=new Promise(async(Pe,fe)=>{let Te;for(let We of ve){if(We===null){Pe(null);return}try{Pe(await We.from_pretrained(A,le));return}catch($e){if($e.message?.includes("Unsupported model type"))Te=$e;else if($e.message?.includes("Could not locate file"))Te=$e;else{fe($e);return}}}fe(Te)}):pe=ve.from_pretrained(A,le),ge[Ae]=pe,be.push(pe)}await Promise.all(be);for(let[Ae,ve]of Object.entries(ge))ge[Ae]=await ve;return ge}}),"./src/tokenizers.js":((e,r,t)=>{t.r(r),t.d(r,{AlbertTokenizer:()=>qt,AutoTokenizer:()=>Wo,BartTokenizer:()=>qe,BertTokenizer:()=>Cs,BlenderbotSmallTokenizer:()=>Ue,BlenderbotTokenizer:()=>ze,BloomTokenizer:()=>Nt,CLIPTokenizer:()=>As,CamembertTokenizer:()=>Z,CodeGenTokenizer:()=>Is,CodeLlamaTokenizer:()=>Or,CohereTokenizer:()=>Ds,ConvBertTokenizer:()=>Q,DebertaTokenizer:()=>St,DebertaV2Tokenizer:()=>Xr,DistilBertTokenizer:()=>K,ElectraTokenizer:()=>xe,EsmTokenizer:()=>gr,FalconTokenizer:()=>_s,GPT2Tokenizer:()=>ut,GPTNeoXTokenizer:()=>Fs,GemmaTokenizer:()=>as,Grok1Tokenizer:()=>Nr,HerbertTokenizer:()=>k,LlamaTokenizer:()=>ur,M2M100Tokenizer:()=>_r,MBart50Tokenizer:()=>tt,MBartTokenizer:()=>wt,MPNetTokenizer:()=>Lr,MarianTokenizer:()=>ns,MgpstrTokenizer:()=>Vs,MobileBertTokenizer:()=>Ss,NllbTokenizer:()=>ar,NougatTokenizer:()=>Ht,PreTrainedTokenizer:()=>ft,Qwen2Tokenizer:()=>Ns,RoFormerTokenizer:()=>N,RobertaTokenizer:()=>gt,SiglipTokenizer:()=>$s,SpeechT5Tokenizer:()=>at,SqueezeBertTokenizer:()=>Qr,T5Tokenizer:()=>et,TokenizerModel:()=>U,VitsTokenizer:()=>js,Wav2Vec2CTCTokenizer:()=>Wr,WhisperTokenizer:()=>ps,XLMRobertaTokenizer:()=>Cr,XLMTokenizer:()=>ce,is_chinese_char:()=>C});var s=t("./src/utils/generic.js"),o=t("./src/utils/core.js"),a=t("./src/utils/hub.js"),n=t("./src/utils/maths.js"),i=t("./src/utils/tensor.js"),l=t("./src/utils/data-structures.js"),c=t("./node_modules/@huggingface/jinja/dist/index.js"),_=t("./src/models/whisper/common_whisper.js");async function u(de,S){let G=await Promise.all([(0,a.getModelJSON)(de,"tokenizer.json",!0,S),(0,a.getModelJSON)(de,"tokenizer_config.json",!0,S)]);return S.legacy!==null&&(G[1].legacy=S.legacy),G}function d(de,S){let G=[],te=0;for(let se of de.matchAll(S)){let me=se[0];te<se.index&&G.push(de.slice(te,se.index)),me.length>0&&G.push(me),te=se.index+me.length}return te<de.length&&G.push(de.slice(te)),G}function g(de,S=!0){if(de.Regex!==void 0){let G=de.Regex.replace(/\\([#&~])/g,"$1");for(let[te,se]of D)G=G.replaceAll(te,se);return new RegExp(G,"gu")}else if(de.String!==void 0){let G=(0,o.escapeRegExp)(de.String);return new RegExp(S?G:`(${G})`,"gu")}else return console.warn("Unknown pattern type:",de),null}function h(de){return new Map(Object.entries(de))}function x(de){let S=de.dims;switch(S.length){case 1:return de.tolist();case 2:if(S[0]!==1)throw new Error("Unable to decode tensor with `batch size !== 1`. Use `tokenizer.batch_decode(...)` for batched inputs.");return de.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${S.length}.`)}}function F(de){return de.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n\'t/g,"n't").replace(/ \'m/g,"'m").replace(/ \'s/g,"'s").replace(/ \'ve/g,"'ve").replace(/ \'re/g,"'re")}function v(de){return de.replace(/\p{M}/gu,"")}function b(de){return v(de.toLowerCase())}function C(de){return de>=19968&&de<=40959||de>=13312&&de<=19903||de>=131072&&de<=173791||de>=173824&&de<=177983||de>=177984&&de<=178207||de>=178208&&de<=183983||de>=63744&&de<=64255||de>=194560&&de<=195103}function y(de,S,G){let te=[],se=0;for(;se<de.length;){if(te.push(de[se]),(S.get(de[se])??G)!==G){++se;continue}for(;++se<de.length&&(S.get(de[se])??G)===G;)S.get(te.at(-1))!==G&&(te[te.length-1]+=de[se])}return te}function P(de){return de.match(/\S+/g)||[]}let I="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",f=new RegExp(`^[${I}]+$`,"gu"),E=".,!?\u2026\u3002\uFF0C\u3001\u0964\u06D4\u060C",D=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],["(?i:[sdmt]|ll|ve|re)","(?:[sS]|[dD]|[mM]|[tT]|[lL][lL]|[vV][eE]|[rR][eE])"],["[^\\r\\n\\p{L}\\p{N}]?+","[^\\r\\n\\p{L}\\p{N}]?"],["[^\\s\\p{L}\\p{N}]++","[^\\s\\p{L}\\p{N}]+"],[` ?[^(\\s|[${E}])]+`,` ?[^\\s${E}]+`]]);class O{constructor(S){this.content=S.content,this.id=S.id,this.single_word=S.single_word??!1,this.lstrip=S.lstrip??!1,this.rstrip=S.rstrip??!1,this.special=S.special??!1,this.normalized=S.normalized??null}}class U extends s.Callable{constructor(S){super(),this.config=S,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}static fromConfig(S,...G){switch(S.type){case"WordPiece":return new W(S);case"Unigram":return new z(S,...G);case"BPE":return new q(S);default:if(S.vocab)return Array.isArray(S.vocab)?new z(S,...G):Object.hasOwn(S,"continuing_subword_prefix")&&Object.hasOwn(S,"unk_token")?Object.hasOwn(S,"merges")?new q(S):new W(S):new re(S,...G);throw new Error(`Unknown TokenizerModel type: ${S.type}`)}}_call(S){return S=this.encode(S),this.fuse_unk&&(S=y(S,this.tokens_to_ids,this.unk_token_id)),S}encode(S){throw Error("encode should be implemented in subclass.")}convert_tokens_to_ids(S){return S.map(G=>this.tokens_to_ids.get(G)??this.unk_token_id)}convert_ids_to_tokens(S){return S.map(G=>this.vocab[G]??this.unk_token)}}class W extends U{constructor(S){super(S),this.tokens_to_ids=h(S.vocab),this.unk_token_id=this.tokens_to_ids.get(S.unk_token),this.unk_token=S.unk_token,this.max_input_chars_per_word=S.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(let[G,te]of this.tokens_to_ids)this.vocab[te]=G}encode(S){let G=[];for(let te of S){let se=[...te];if(se.length>this.max_input_chars_per_word){G.push(this.unk_token);continue}let me=!1,Ce=0,Ye=[];for(;Ce<se.length;){let Xe=se.length,Ze=null;for(;Ce<Xe;){let He=se.slice(Ce,Xe).join("");if(Ce>0&&(He=this.config.continuing_subword_prefix+He),this.tokens_to_ids.has(He)){Ze=He;break}--Xe}if(Ze===null){me=!0;break}Ye.push(Ze),Ce=Xe}me?G.push(this.unk_token):G.push(...Ye)}return G}}class z extends U{constructor(S,G){super(S);let te=S.vocab.length;this.vocab=new Array(te),this.scores=new Array(te);for(let se=0;se<te;++se)[this.vocab[se],this.scores[se]]=S.vocab[se];this.unk_token_id=S.unk_id,this.unk_token=this.vocab[S.unk_id],this.tokens_to_ids=new Map(this.vocab.map((se,me)=>[se,me])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=G.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.minScore=(0,n.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new l.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(S){let G=S.chars,te=1,se=0;for(;se<G.length;){let me=!1,Ce=[],Ye=G.slice(se).join(""),Xe=this.trie.commonPrefixSearch(Ye);for(let Ze of Xe){Ce.push(Ze);let He=this.tokens_to_ids.get(Ze),It=this.scores[He],yt=(0,o.len)(Ze);S.insert(se,yt,It,He),!me&&yt===te&&(me=!0)}me||S.insert(se,te,this.unk_score,this.unk_token_id),se+=te}}tokenize(S){let G=new l.TokenLattice(S,this.bos_token_id,this.eos_token_id);return this.populateNodes(G),G.tokens()}encode(S){let G=[];for(let te of S){let se=this.tokenize(te);G.push(...se)}return G}}let X=(()=>{let de=[...Array.from({length:94},(se,me)=>me+33),...Array.from({length:12},(se,me)=>me+161),...Array.from({length:82},(se,me)=>me+174)],S=de.slice(),G=0;for(let se=0;se<256;++se)de.includes(se)||(de.push(se),S.push(256+G),G+=1);let te=S.map(se=>String.fromCharCode(se));return Object.fromEntries(de.map((se,me)=>[se,te[me]]))})(),J=(0,o.reverseDictionary)(X);class q extends U{constructor(S){super(S),this.tokens_to_ids=h(S.vocab),this.unk_token_id=this.tokens_to_ids.get(S.unk_token),this.unk_token=S.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(let[te,se]of this.tokens_to_ids)this.vocab[se]=te;let G=Array.isArray(S.merges[0]);this.merges=G?S.merges:S.merges.map(te=>te.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((te,se)=>[JSON.stringify(te),se])),this.end_of_word_suffix=S.end_of_word_suffix,this.continuing_subword_suffix=S.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new l.LRUCache(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(S){if(S.length===0)return[];let G=this.cache.get(S);if(G!==void 0)return G;let te=Array.from(S);this.end_of_word_suffix&&(te[te.length-1]+=this.end_of_word_suffix);let se=[];if(te.length>1){let me=new l.PriorityQueue((Xe,Ze)=>Xe.score<Ze.score),Ce={token:te[0],bias:0,prev:null,next:null},Ye=Ce;for(let Xe=1;Xe<te.length;++Xe){let Ze={bias:Xe/te.length,token:te[Xe],prev:Ye,next:null};Ye.next=Ze,this._add_node(me,Ye),Ye=Ze}for(;!me.isEmpty();){let Xe=me.pop();if(Xe.deleted||!Xe.next||Xe.next.deleted)continue;if(Xe.deleted=!0,Xe.next.deleted=!0,Xe.prev){let He={...Xe.prev};Xe.prev.deleted=!0,Xe.prev=He,He.prev?He.prev.next=He:Ce=He}let Ze={token:Xe.token+Xe.next.token,bias:Xe.bias,prev:Xe.prev,next:Xe.next.next};Ze.prev?(Ze.prev.next=Ze,this._add_node(me,Ze.prev)):Ce=Ze,Ze.next&&(Ze.next.prev=Ze,this._add_node(me,Ze))}for(let Xe=Ce;Xe!==null;Xe=Xe.next)se.push(Xe.token)}else se=te;if(this.continuing_subword_suffix)for(let me=0;me<se.length-1;++me)se[me]+=this.continuing_subword_suffix;return S.length<this.max_length_to_cache&&this.cache.put(S,se),se}_add_node(S,G){let te=this.bpe_ranks.get(JSON.stringify([G.token,G.next.token]));te!==void 0&&(G.score=te+G.bias,S.push(G))}encode(S){let G=[];for(let te of S){if(this.ignore_merges&&this.tokens_to_ids.has(te)){G.push(te);continue}let se=this.bpe(te);for(let me of se)if(this.tokens_to_ids.has(me))G.push(me);else if(this.byte_fallback){let Ce=Array.from(this.text_encoder.encode(me)).map(Ye=>`<0x${Ye.toString(16).toUpperCase().padStart(2,"0")}>`);Ce.every(Ye=>this.tokens_to_ids.has(Ye))?G.push(...Ce):G.push(this.unk_token)}else G.push(this.unk_token)}return G}}class re extends U{constructor(S,G){super(S),this.tokens_to_ids=h(G.target_lang?S.vocab[G.target_lang]:S.vocab),this.bos_token=G.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=G.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=G.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=G.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(let[te,se]of this.tokens_to_ids)this.vocab[se]=te}encode(S){return S}}class oe extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"BertNormalizer":return new rt(S);case"Precompiled":return new zt(S);case"Sequence":return new Le(S);case"Replace":return new ne(S);case"NFC":return new Y(S);case"NFD":return new H(S);case"NFKC":return new R(S);case"NFKD":return new L(S);case"Strip":return new ee(S);case"StripAccents":return new ue(S);case"Lowercase":return new ke(S);case"Prepend":return new Ie(S);default:throw new Error(`Unknown Normalizer type: ${S.type}`)}}normalize(S){throw Error("normalize should be implemented in subclass.")}_call(S){return this.normalize(S)}}class ne extends oe{normalize(S){let G=g(this.config.pattern);return G===null?S:S.replaceAll(G,this.config.content)}}class ye extends oe{form=void 0;normalize(S){return S=S.normalize(this.form),S}}class Y extends ye{form="NFC"}class H extends ye{form="NFD"}class R extends ye{form="NFKC"}class L extends ye{form="NFKD"}class ee extends oe{normalize(S){return this.config.strip_left&&this.config.strip_right?S=S.trim():(this.config.strip_left&&(S=S.trimStart()),this.config.strip_right&&(S=S.trimEnd())),S}}class ue extends oe{normalize(S){return S=v(S),S}}class ke extends oe{normalize(S){return S=S.toLowerCase(),S}}class Ie extends oe{normalize(S){return S=this.config.prepend+S,S}}class Le extends oe{constructor(S){super(S),this.normalizers=S.normalizers.map(G=>oe.fromConfig(G))}normalize(S){return this.normalizers.reduce((G,te)=>te.normalize(G),S)}}class rt extends oe{_tokenize_chinese_chars(S){let G=[];for(let te=0;te<S.length;++te){let se=S[te],me=se.charCodeAt(0);C(me)?(G.push(" "),G.push(se),G.push(" ")):G.push(se)}return G.join("")}stripAccents(S){return S.normalize("NFD").replace(/\p{Mn}/gu,"")}_is_control(S){switch(S){case" ":case`
|
|
2851
|
-
`:case"\r":return!1;default:return/^\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}$/u.test(S)}}_clean_text(S){let G=[];for(let te of S){let se=te.charCodeAt(0);se===0||se===65533||this._is_control(te)||(/^\s$/.test(te)?G.push(" "):G.push(te))}return G.join("")}normalize(S){return this.config.clean_text&&(S=this._clean_text(S)),this.config.handle_chinese_chars&&(S=this._tokenize_chinese_chars(S)),this.config.lowercase?(S=S.toLowerCase(),this.config.strip_accents!==!1&&(S=this.stripAccents(S))):this.config.strip_accents&&(S=this.stripAccents(S)),S}}class we extends s.Callable{static fromConfig(S){if(S===null)return null;switch(S.type){case"BertPreTokenizer":return new A(S);case"Sequence":return new yr(S);case"Whitespace":return new zs(S);case"WhitespaceSplit":return new Ys(S);case"Metaspace":return new Lt(S);case"ByteLevel":return new le(S);case"Split":return new ge(S);case"Punctuation":return new be(S);case"Digits":return new Ae(S);case"Replace":return new Zs(S);case"FixedLength":return new or(S);default:throw new Error(`Unknown PreTokenizer type: ${S.type}`)}}pre_tokenize_text(S,G){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(S,G){return(Array.isArray(S)?S.map(te=>this.pre_tokenize_text(te,G)):this.pre_tokenize_text(S,G)).flat()}_call(S,G){return this.pre_tokenize(S,G)}}class A extends we{constructor(S){super(),this.pattern=new RegExp(`[^\\s${I}]+|[${I}]`,"gu")}pre_tokenize_text(S,G){return S.trim().match(this.pattern)||[]}}class le extends we{constructor(S){super(),this.config=S,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=X,this.text_encoder=new TextEncoder}pre_tokenize_text(S,G){return this.add_prefix_space&&!S.startsWith(" ")&&(S=" "+S),(this.use_regex?S.match(this.pattern)||[]:[S]).map(se=>Array.from(this.text_encoder.encode(se),me=>this.byte_encoder[me]).join(""))}}class ge extends we{constructor(S){super(),this.config=S,this.pattern=g(this.config.pattern,this.config.invert)}pre_tokenize_text(S,G){return this.pattern===null?[]:this.config.invert?S.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?S.split(this.pattern).filter(te=>te):d(S,this.pattern)}}class be extends we{constructor(S){super(),this.config=S,this.pattern=new RegExp(`[^${I}]+|[${I}]+`,"gu")}pre_tokenize_text(S,G){return S.match(this.pattern)||[]}}class Ae extends we{constructor(S){super(),this.config=S;let G=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(G,"gu")}pre_tokenize_text(S,G){return S.match(this.pattern)||[]}}class ve extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"TemplateProcessing":return new fe(S);case"ByteLevel":return new Te(S);case"RobertaProcessing":return new Pe(S);case"BertProcessing":return new pe(S);case"Sequence":return new We(S);default:throw new Error(`Unknown PostProcessor type: ${S.type}`)}}post_process(S,...G){throw Error("post_process should be implemented in subclass.")}_call(S,...G){return this.post_process(S,...G)}}class pe extends ve{constructor(S){super(S),this.cls=S.cls[0],this.sep=S.sep[0]}post_process(S,G=null,{add_special_tokens:te=!0}={}){te&&(S=(0,o.mergeArrays)([this.cls],S,[this.sep]));let se=new Array(S.length).fill(0);if(G!==null){let me=te&&this instanceof Pe?[this.sep]:[],Ce=te?[this.sep]:[];S=(0,o.mergeArrays)(S,me,G,Ce),se=(0,o.mergeArrays)(se,new Array(G.length+me.length+Ce.length).fill(1))}return{tokens:S,token_type_ids:se}}}class Pe extends pe{}class fe extends ve{constructor(S){super(S),this.single=S.single,this.pair=S.pair}post_process(S,G=null,{add_special_tokens:te=!0}={}){let se=G===null?this.single:this.pair,me=[],Ce=[];for(let Ye of se)"SpecialToken"in Ye?te&&(me.push(Ye.SpecialToken.id),Ce.push(Ye.SpecialToken.type_id)):"Sequence"in Ye&&(Ye.Sequence.id==="A"?(me=(0,o.mergeArrays)(me,S),Ce=(0,o.mergeArrays)(Ce,new Array(S.length).fill(Ye.Sequence.type_id))):Ye.Sequence.id==="B"&&(me=(0,o.mergeArrays)(me,G),Ce=(0,o.mergeArrays)(Ce,new Array(G.length).fill(Ye.Sequence.type_id))));return{tokens:me,token_type_ids:Ce}}}class Te extends ve{post_process(S,G=null){return G&&(S=(0,o.mergeArrays)(S,G)),{tokens:S}}}class We extends ve{constructor(S){super(S),this.processors=S.processors.map(G=>ve.fromConfig(G))}post_process(S,G=null,te={}){let se;for(let me of this.processors)if(me instanceof Te)S=me.post_process(S).tokens,G&&(G=me.post_process(G).tokens);else{let Ce=me.post_process(S,G,te);S=Ce.tokens,se=Ce.token_type_ids}return{tokens:S,token_type_ids:se}}}class $e extends s.Callable{constructor(S){super(),this.config=S,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=S.trim_offsets}static fromConfig(S){if(S===null)return null;switch(S.type){case"WordPiece":return new Qe(S);case"Metaspace":return new fr(S);case"ByteLevel":return new je(S);case"Replace":return new Re(S);case"ByteFallback":return new Ne(S);case"Fuse":return new ot(S);case"Strip":return new De(S);case"Sequence":return new Ke(S);case"CTC":return new pt(S);case"BPEDecoder":return new bt(S);default:throw new Error(`Unknown Decoder type: ${S.type}`)}}_call(S){return this.decode(S)}decode(S){return this.decode_chain(S).join("")}decode_chain(S){throw Error("`decode_chain` should be implemented in subclass.")}}class Re extends $e{decode_chain(S){let G=g(this.config.pattern);return G===null?S:S.map(te=>te.replaceAll(G,this.config.content))}}class Ne extends $e{constructor(S){super(S),this.text_decoder=new TextDecoder}decode_chain(S){let G=[],te=[];for(let se of S){let me=null;if(se.length===6&&se.startsWith("<0x")&&se.endsWith(">")){let Ce=parseInt(se.slice(3,5),16);isNaN(Ce)||(me=Ce)}if(me!==null)te.push(me);else{if(te.length>0){let Ce=this.text_decoder.decode(Uint8Array.from(te));G.push(Ce),te=[]}G.push(se)}}if(te.length>0){let se=this.text_decoder.decode(Uint8Array.from(te));G.push(se),te=[]}return G}}class ot extends $e{decode_chain(S){return[S.join("")]}}class De extends $e{constructor(S){super(S),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(S){return S.map(G=>{let te=0;for(let me=0;me<this.start&&G[me]===this.content;++me){te=me+1;continue}let se=G.length;for(let me=0;me<this.stop;++me){let Ce=G.length-me-1;if(G[Ce]===this.content){se=Ce;continue}else break}return G.slice(te,se)})}}class Qe extends $e{constructor(S){super(S),this.cleanup=S.cleanup}decode_chain(S){return S.map((G,te)=>(te!==0&&(G.startsWith(this.config.prefix)?G=G.replace(this.config.prefix,""):G=" "+G),this.cleanup&&(G=F(G)),G))}}class je extends $e{constructor(S){super(S),this.byte_decoder=J,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(S){let G=S.join(""),te=new Uint8Array([...G].map(me=>this.byte_decoder[me]));return this.text_decoder.decode(te)}decode_chain(S){let G=[],te=[];for(let se of S)this.added_tokens.find(me=>me.content===se)!==void 0?(te.length>0&&(G.push(this.convert_tokens_to_string(te)),te=[]),G.push(se)):te.push(se);return te.length>0&&G.push(this.convert_tokens_to_string(te)),G}}class pt extends $e{constructor(S){super(S),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(S){if(S.length===0)return"";let G=[S[0]];for(let me=1;me<S.length;++me)S[me]!==G.at(-1)&&G.push(S[me]);let se=G.filter(me=>me!==this.pad_token).join("");return this.cleanup&&(se=F(se).replaceAll(this.word_delimiter_token," ").trim()),se}decode_chain(S){return[this.convert_tokens_to_string(S)]}}class Ke extends $e{constructor(S){super(S),this.decoders=S.decoders.map(G=>$e.fromConfig(G))}decode_chain(S){return this.decoders.reduce((G,te)=>te.decode_chain(G),S)}}class bt extends $e{constructor(S){super(S),this.suffix=this.config.suffix}decode_chain(S){return S.map((G,te)=>G.replaceAll(this.suffix,te===S.length-1?"":" "))}}class At extends $e{decode_chain(S){let G="";for(let te=1;te<S.length;te+=2)G+=S[te];return[G]}}class Lt extends we{constructor(S){super(),this.replacement=S.replacement,this.strRep=S.str_rep||this.replacement,this.prepend_scheme=S.prepend_scheme??"always"}pre_tokenize_text(S,{section_index:G=void 0}={}){let te=S.replaceAll(" ",this.strRep);return!te.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&G===0)&&(te=this.strRep+te),[te]}}class fr extends $e{constructor(S){super(S),this.replacement=S.replacement}decode_chain(S){let G=[];for(let te=0;te<S.length;++te){let se=S[te].replaceAll(this.replacement," ");te==0&&se.startsWith(" ")&&(se=se.substring(1)),G.push(se)}return G}}class zt extends oe{constructor(S){super(S),this.charsmap=S.precompiled_charsmap}normalize(S){return S=S.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,""),S=S.replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," "),S.includes("\uFF5E")?S=S.split("\uFF5E").map(te=>te.normalize("NFKC")).join("\uFF5E"):S=S.normalize("NFKC"),S}}class yr extends we{constructor(S){super(),this.tokenizers=S.pretokenizers.map(G=>we.fromConfig(G))}pre_tokenize_text(S,G){return this.tokenizers.reduce((te,se)=>se.pre_tokenize(te,G),[S])}}class zs extends we{constructor(S){super()}pre_tokenize_text(S,G){return S.match(/\w+|[^\w\s]+/g)||[]}}class Ys extends we{constructor(S){super()}pre_tokenize_text(S,G){return P(S)}}class Zs extends we{constructor(S){super(),this.config=S,this.pattern=g(this.config.pattern),this.content=this.config.content}pre_tokenize_text(S,G){return this.pattern===null?[S]:[S.replaceAll(this.pattern,this.config.content)]}}class or extends we{constructor(S){super(),this._length=S.length}pre_tokenize_text(S,G){let te=[];for(let se=0;se<S.length;se+=this._length)te.push(S.slice(se,se+this._length));return te}}let Dr=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function Yr(de,S,G,te){for(let se of Object.keys(de)){let me=S-de[se].length,Ce=G(se),Ye=new Array(me).fill(Ce);de[se]=te==="right"?(0,o.mergeArrays)(de[se],Ye):(0,o.mergeArrays)(Ye,de[se])}}function Rs(de,S){for(let G of Object.keys(de))de[G].length=S}class ft extends s.Callable{return_token_type_ids=!1;padding_side="right";constructor(S,G){super(),this.config=G,this.normalizer=oe.fromConfig(S.normalizer),this.pre_tokenizer=we.fromConfig(S.pre_tokenizer),this.model=U.fromConfig(S.model,G),this.post_processor=ve.fromConfig(S.post_processor),this.decoder=$e.fromConfig(S.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(let te of S.added_tokens){let se=new O(te);this.added_tokens.push(se),this.model.tokens_to_ids.set(se.content,se.id),this.model.vocab[se.id]=se.content,se.special&&(this.special_tokens.push(se.content),this.all_special_ids.push(se.id))}if(this.additional_special_tokens=G.additional_special_tokens??[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_splitter=new l.DictionarySplitter(this.added_tokens.map(te=>te.content)),this.added_tokens_map=new Map(this.added_tokens.map(te=>[te.content,te])),this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.bos_token=this.getToken("bos_token"),this.bos_token_id=this.model.tokens_to_ids.get(this.bos_token),this.eos_token=this.getToken("eos_token"),this.eos_token_id=this.model.tokens_to_ids.get(this.eos_token),this.model_max_length=G.model_max_length,this.remove_space=G.remove_space,this.clean_up_tokenization_spaces=G.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=G.do_lowercase_and_remove_accent??!1,G.padding_side&&(this.padding_side=G.padding_side),this.add_bos_token=G.add_bos_token,this.add_eos_token=G.add_eos_token,this.legacy=!1,this.chat_template=G.chat_template??null,Array.isArray(this.chat_template)){let te=Object.create(null);for(let{name:se,template:me}of this.chat_template){if(typeof se!="string"||typeof me!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');te[se]=me}this.chat_template=te}this._compiled_template_cache=new Map}getToken(...S){for(let G of S){let te=this.config[G];if(te)if(typeof te=="object"){if(te.__type==="AddedToken")return te.content;throw Error(`Unknown token: ${te}`)}else return te}return null}static async from_pretrained(S,{progress_callback:G=null,config:te=null,cache_dir:se=null,local_files_only:me=!1,revision:Ce="main",legacy:Ye=null}={}){let Xe=await u(S,{progress_callback:G,config:te,cache_dir:se,local_files_only:me,revision:Ce,legacy:Ye});return new this(...Xe)}_call(S,{text_pair:G=null,add_special_tokens:te=!0,padding:se=!1,truncation:me=null,max_length:Ce=null,return_tensor:Ye=!0,return_token_type_ids:Xe=null}={}){let Ze=Array.isArray(S),He;if(Ze){if(S.length===0)throw Error("text array must be non-empty");if(G!==null){if(Array.isArray(G)){if(S.length!==G.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");He=S.map((yt,Xt)=>this._encode_plus(yt,{text_pair:G[Xt],add_special_tokens:te,return_token_type_ids:Xe}))}else He=S.map(yt=>this._encode_plus(yt,{add_special_tokens:te,return_token_type_ids:Xe}))}else{if(S==null)throw Error("text may not be null or undefined");if(Array.isArray(G))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");He=[this._encode_plus(S,{text_pair:G,add_special_tokens:te,return_token_type_ids:Xe})]}if(Ce===null?Ce=this.model_max_length:me===null&&(se===!0?(console.warn("`max_length` is ignored when `padding: true` and there is no truncation strategy. To pad to max length, use `padding: 'max_length'`."),Ce=this.model_max_length):se===!1&&(console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation: true` to explicitly truncate examples to max length."),me=!0)),se===!0&&(Ce=Math.min((0,n.max)(He.map(yt=>yt.input_ids.length))[0],Ce??1/0)),Ce=Math.min(Ce,this.model_max_length??1/0),se||me)for(let yt=0;yt<He.length;++yt)He[yt].input_ids.length!==Ce&&(He[yt].input_ids.length>Ce?me&&Rs(He[yt],Ce):se&&Yr(He[yt],Ce,Xt=>Xt==="input_ids"?this.pad_token_id:0,this.padding_side));let It={};if(Ye){if(!(se&&me)&&He.some(Xt=>{for(let Mr of Object.keys(Xt))if(Xt[Mr].length!==He[0][Mr]?.length)return!0;return!1}))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");let yt=[He.length,He[0].input_ids.length];for(let Xt of Object.keys(He[0]))It[Xt]=new i.Tensor("int64",BigInt64Array.from(He.flatMap(Mr=>Mr[Xt]).map(BigInt)),yt)}else{for(let yt of Object.keys(He[0]))It[yt]=He.map(Xt=>Xt[yt]);if(!Ze)for(let yt of Object.keys(It))It[yt]=It[yt][0]}return It}_encode_text(S){if(S===null)return null;let G=this.added_tokens_splitter.split(S);for(let se=0;se<G.length;++se){let me=this.added_tokens_map.get(G[se]);me&&(me.lstrip&&se>0&&(G[se-1]=G[se-1].trimEnd()),me.rstrip&&se<G.length-1&&(G[se+1]=G[se+1].trimStart()))}return G.flatMap((se,me)=>{if(se.length===0)return[];if(this.added_tokens_map.has(se))return[se];if(this.remove_space===!0&&(se=se.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(se=b(se)),this.normalizer!==null&&(se=this.normalizer(se)),se.length===0)return[];let Ce=this.pre_tokenizer!==null?this.pre_tokenizer(se,{section_index:me}):[se];return this.model(Ce)})}_encode_plus(S,{text_pair:G=null,add_special_tokens:te=!0,return_token_type_ids:se=null}={}){let{tokens:me,token_type_ids:Ce}=this._tokenize_helper(S,{pair:G,add_special_tokens:te}),Ye=this.model.convert_tokens_to_ids(me),Xe={input_ids:Ye,attention_mask:new Array(Ye.length).fill(1)};return(se??this.return_token_type_ids)&&Ce&&(Xe.token_type_ids=Ce),Xe}_tokenize_helper(S,{pair:G=null,add_special_tokens:te=!1}={}){let se=this._encode_text(S),me=this._encode_text(G);return this.post_processor?this.post_processor(se,me,{add_special_tokens:te}):{tokens:(0,o.mergeArrays)(se??[],me??[])}}tokenize(S,{pair:G=null,add_special_tokens:te=!1}={}){return this._tokenize_helper(S,{pair:G,add_special_tokens:te}).tokens}encode(S,{text_pair:G=null,add_special_tokens:te=!0,return_token_type_ids:se=null}={}){return this._encode_plus(S,{text_pair:G,add_special_tokens:te,return_token_type_ids:se}).input_ids}batch_decode(S,G={}){return S instanceof i.Tensor&&(S=S.tolist()),S.map(te=>this.decode(te,G))}decode(S,G={}){if(S instanceof i.Tensor&&(S=x(S)),!Array.isArray(S)||S.length===0||!(0,o.isIntegralNumber)(S[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(S,G)}decode_single(S,{skip_special_tokens:G=!1,clean_up_tokenization_spaces:te=null}){let se=this.model.convert_ids_to_tokens(S);G&&(se=se.filter(Ce=>!this.special_tokens.includes(Ce)));let me=this.decoder?this.decoder(se):se.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(me=me.replaceAll(this.decoder.end_of_word_suffix," "),G&&(me=me.trim())),(te??this.clean_up_tokenization_spaces)&&(me=F(me)),me}get_chat_template({chat_template:S=null,tools:G=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){let te=this.chat_template;if(S!==null&&Object.hasOwn(te,S))S=te[S];else if(S===null)if(G!==null&&"tool_use"in te)S=te.tool_use;else if("default"in te)S=te.default;else throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(te).sort()}.`)}else if(S===null)if(this.chat_template)S=this.chat_template;else throw Error("Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating");return S}apply_chat_template(S,{tools:G=null,documents:te=null,chat_template:se=null,add_generation_prompt:me=!1,tokenize:Ce=!0,padding:Ye=!1,truncation:Xe=!1,max_length:Ze=null,return_tensor:He=!0,return_dict:It=!1,tokenizer_kwargs:yt={},...Xt}={}){if(se=this.get_chat_template({chat_template:se,tools:G}),typeof se!="string")throw Error(`chat_template must be a string, but got ${typeof se}`);let Mr=this._compiled_template_cache.get(se);Mr===void 0&&(Mr=new c.Template(se),this._compiled_template_cache.set(se,Mr));let nr=Object.create(null);for(let ir of Dr){let Tr=this.getToken(ir);Tr&&(nr[ir]=Tr)}let Br=Mr.render({messages:S,add_generation_prompt:me,tools:G,documents:te,...nr,...Xt});if(Ce){let ir=this._call(Br,{add_special_tokens:!1,padding:Ye,truncation:Xe,max_length:Ze,return_tensor:He,...yt});return It?ir:ir.input_ids}return Br}}class Cs extends ft{return_token_type_ids=!0}class qt extends ft{return_token_type_ids=!0}class Ss extends ft{return_token_type_ids=!0}class Qr extends ft{return_token_type_ids=!0}class St extends ft{return_token_type_ids=!0}class Xr extends ft{return_token_type_ids=!0}class k extends ft{return_token_type_ids=!0}class Q extends ft{return_token_type_ids=!0}class N extends ft{return_token_type_ids=!0}class K extends ft{}class Z extends ft{}class ce extends ft{return_token_type_ids=!0;constructor(S,G){super(S,G),console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class xe extends ft{return_token_type_ids=!0}class et extends ft{}class ut extends ft{}class qe extends ft{}class wt extends ft{constructor(S,G){super(S,G),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)),this.lang_to_token=te=>te}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class tt extends wt{}class gt extends ft{}class Nt extends ft{}let Qt="\u2581";class ur extends ft{padding_side="left";constructor(S,G){super(S,G),this.legacy=G.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Lt({replacement:Qt,prepend_scheme:"first"}))}_encode_text(S){if(S===null)return null;if(this.legacy||S.length===0)return super._encode_text(S);let G=super._encode_text(Qt+S.replaceAll(Qt," "));return G.length>1&&G[0]===Qt&&this.special_tokens.includes(G[1])&&(G=G.slice(1)),G}}class Or extends ft{}class Cr extends ft{}class Lr extends ft{}class _s extends ft{}class Fs extends ft{}class gr extends ft{}class Ns extends ft{}class as extends ft{}class Nr extends ft{}function Gr(de,S,G,te){if(!("language_codes"in de)||!Array.isArray(de.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in de)||!(de.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in de)||typeof de.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");let se=te.src_lang,me=te.tgt_lang;if(!de.language_codes.includes(me))throw new Error(`Target language code "${me}" is not valid. Must be one of: {${de.language_codes.join(", ")}}`);if(se!==void 0){if(!de.language_codes.includes(se))throw new Error(`Source language code "${se}" is not valid. Must be one of: {${de.language_codes.join(", ")}}`);for(let Ce of de.post_processor.config.single)if("SpecialToken"in Ce&&de.languageRegex.test(Ce.SpecialToken.id)){Ce.SpecialToken.id=de.lang_to_token(se);break}}return te.forced_bos_token_id=de.model.convert_tokens_to_ids([de.lang_to_token(me)])[0],de._call(S,G)}class ar extends ft{constructor(S,G){super(S,G),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)),this.lang_to_token=te=>te}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class _r extends ft{constructor(S,G){super(S,G),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)).map(te=>te.slice(2,-2)),this.lang_to_token=te=>`__${te}__`}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class ps extends ft{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(S,{return_timestamps:G=!1,return_language:te=!1,time_precision:se=null,force_full_sequences:me=!0}={}){if(se===null)throw Error("Must specify time_precision");let Ce=null,Ye=G==="word";function Xe(){return{language:Ce,timestamp:[null,null],text:""}}let Ze=[],He=Xe(),It=0,yt=this.timestamp_begin,Mr=yt+1500,nr=[],Br=[],ir=!1,Tr=null,zr=new Set(this.all_special_ids);for(let Yt of S){let vr=Yt.tokens,Sr=Ye?Yt.token_timestamps:null,Jr=null,ms=yt;if("stride"in Yt){let[lr,pr,wr]=Yt.stride;if(It-=pr,Tr=lr-wr,pr&&(ms=pr/se+yt),wr)for(let er=vr.length-1;er>=0;--er){let Kr=Number(vr[er]);if(Kr>=yt){if(Jr!==null&&(Kr-yt)*se<Tr)break;Jr=Kr}}}let Fr=[],is=[];for(let lr=0;lr<vr.length;++lr){let pr=Number(vr[lr]);if(zr.has(pr)){let wr=this.decode([pr]),er=_.WHISPER_LANGUAGE_MAPPING.get(wr.slice(2,-2));if(er!==void 0){if(Ce!==null&&er!==Ce&&!G){nr.push(Fr);let Kr=this.findLongestCommonSequence(nr)[0],Ws=this.decode(Kr);He.text=Ws,Ze.push(He),nr=[],Fr=[],He=Xe()}Ce=He.language=er}}else if(pr>=yt&&pr<=Mr){let wr=(pr-yt)*se+It,er=(0,n.round)(wr,2);if(Jr!==null&&pr>=Jr)ir=!0;else if(ir||nr.length>0&&pr<ms)ir=!1;else if(He.timestamp[0]===null)He.timestamp[0]=er;else if(er!==He.timestamp[0]){He.timestamp[1]=er,nr.push(Fr),Ye&&Br.push(is);let[Kr,Ws]=this.findLongestCommonSequence(nr,Br),Os=this.decode(Kr);He.text=Os,Ye&&(He.words=this.collateWordTimestamps(Kr,Ws,Ce)),Ze.push(He),nr=[],Fr=[],Br=[],is=[],He=Xe()}}else if(Fr.push(pr),Ye){let wr=(0,n.round)(Sr[lr]+It,2),er;if(lr+1<Sr.length){er=(0,n.round)(Sr[lr+1]+It,2);let Kr=this.decode([pr]);f.test(Kr)&&(er=(0,n.round)(Math.min(wr+se,er),2))}else er=null;is.push([wr,er])}}if("stride"in Yt){let[lr,pr,wr]=Yt.stride;It+=lr-wr}Fr.length>0?(nr.push(Fr),Ye&&Br.push(is)):nr.every(lr=>lr.length===0)&&(He=Xe(),nr=[],Fr=[],Br=[],is=[])}if(nr.length>0){if(me&&G)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");let[Yt,vr]=this.findLongestCommonSequence(nr,Br),Sr=this.decode(Yt);He.text=Sr,Ye&&(He.words=this.collateWordTimestamps(Yt,vr,Ce)),Ze.push(He)}let Pr=Object.create(null),Zr=Ze.map(Yt=>Yt.text).join("");if(G||te){for(let Yt=0;Yt<Ze.length;++Yt){let vr=Ze[Yt];G||delete vr.timestamp,te||delete vr.language}if(Ye){let Yt=[];for(let vr of Ze)for(let Sr of vr.words)Yt.push(Sr);Pr={chunks:Yt}}else Pr={chunks:Ze}}return[Zr,Pr]}findLongestCommonSequence(S,G=null){let te=S[0],se=te.length,me=[],Ce=Array.isArray(G)&&G.length>0,Ye=Ce?[]:null,Xe=Ce?G[0]:null;for(let Ze=1;Ze<S.length;++Ze){let He=S[Ze],It=0,yt=[se,se,0,0],Xt=He.length;for(let Pr=1;Pr<se+Xt;++Pr){let Zr=Math.max(0,se-Pr),Yt=Math.min(se,se+Xt-Pr),vr=te.slice(Zr,Yt),Sr=Math.max(0,Pr-se),Jr=Math.min(Xt,Pr),ms=He.slice(Sr,Jr);if(vr.length!==ms.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");let Fr;Ce?Fr=vr.filter((pr,wr)=>pr===ms[wr]&&Xe[Zr+wr]<=G[Ze][Sr+wr]).length:Fr=vr.filter((pr,wr)=>pr===ms[wr]).length;let is=Pr/1e4,lr=Fr/Pr+is;Fr>1&&lr>It&&(It=lr,yt=[Zr,Yt,Sr,Jr])}let[Mr,nr,Br,ir]=yt,Tr=Math.floor((nr+Mr)/2),zr=Math.floor((ir+Br)/2);me.push(...te.slice(0,Tr)),te=He.slice(zr),se=te.length,Ce&&(Ye.push(...Xe.slice(0,Tr)),Xe=G[Ze].slice(zr))}return me.push(...te),Ce?(Ye.push(...Xe),[me,Ye]):[me,[]]}collateWordTimestamps(S,G,te){let[se,me,Ce]=this.combineTokensIntoWords(S,te),Ye=[];for(let Xe=0;Xe<se.length;++Xe){let Ze=Ce[Xe];Ye.push({text:se[Xe],timestamp:[G[Ze.at(0)][0],G[Ze.at(-1)][1]]})}return Ye}combineTokensIntoWords(S,G,te=`"'\u201C\xA1\xBF([{-`,se=`"'.\u3002,\uFF0C!\uFF01?\uFF1F:\uFF1A\u201D)]}\u3001`){G=G??"english";let me,Ce,Ye;return["chinese","japanese","thai","lao","myanmar"].includes(G)?[me,Ce,Ye]=this.splitTokensOnUnicode(S):[me,Ce,Ye]=this.splitTokensOnSpaces(S),this.mergePunctuations(me,Ce,Ye,te,se)}decode(S,G){let te;return G?.decode_with_timestamps?(S instanceof i.Tensor&&(S=x(S)),te=this.decodeWithTimestamps(S,G)):te=super.decode(S,G),te}decodeWithTimestamps(S,G){let te=G?.time_precision??.02,se=Array.from(this.all_special_ids).at(-1)+1,me=[[]];for(let Ce of S)if(Ce=Number(Ce),Ce>=se){let Ye=((Ce-se)*te).toFixed(2);me.push(`<|${Ye}|>`),me.push([])}else me[me.length-1].push(Ce);return me=me.map(Ce=>typeof Ce=="string"?Ce:super.decode(Ce,G)),me.join("")}splitTokensOnUnicode(S){let G=this.decode(S,{decode_with_timestamps:!0}),te="\uFFFD",se=[],me=[],Ce=[],Ye=[],Xe=[],Ze=0;for(let He=0;He<S.length;++He){let It=S[He];Ye.push(It),Xe.push(He);let yt=this.decode(Ye,{decode_with_timestamps:!0});(!yt.includes(te)||G[Ze+yt.indexOf(te)]===te)&&(se.push(yt),me.push(Ye),Ce.push(Xe),Ye=[],Xe=[],Ze+=yt.length)}return[se,me,Ce]}splitTokensOnSpaces(S){let[G,te,se]=this.splitTokensOnUnicode(S),me=[],Ce=[],Ye=[],Xe=new RegExp(`^[${I}]$`,"gu");for(let Ze=0;Ze<G.length;++Ze){let He=G[Ze],It=te[Ze],yt=se[Ze],Xt=It[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),Mr=He.startsWith(" "),nr=He.trim(),Br=Xe.test(nr);if(Xt||Mr||Br||me.length===0)me.push(He),Ce.push(It),Ye.push(yt);else{let ir=me.length-1;me[ir]+=He,Ce[ir].push(...It),Ye[ir].push(...yt)}}return[me,Ce,Ye]}mergePunctuations(S,G,te,se,me){let Ce=structuredClone(S),Ye=structuredClone(G),Xe=structuredClone(te),Ze=Ce.length-2,He=Ce.length-1;for(;Ze>=0;)Ce[Ze].startsWith(" ")&&se.includes(Ce[Ze].trim())?(Ce[He]=Ce[Ze]+Ce[He],Ye[He]=(0,o.mergeArrays)(Ye[Ze],Ye[He]),Xe[He]=(0,o.mergeArrays)(Xe[Ze],Xe[He]),Ce[Ze]="",Ye[Ze]=[],Xe[Ze]=[]):He=Ze,--Ze;for(Ze=0,He=1;He<Ce.length;)!Ce[Ze].endsWith(" ")&&me.includes(Ce[He])?(Ce[Ze]+=Ce[He],Ye[Ze]=(0,o.mergeArrays)(Ye[Ze],Ye[He]),Xe[Ze]=(0,o.mergeArrays)(Xe[Ze],Xe[He]),Ce[He]="",Ye[He]=[],Xe[He]=[]):Ze=He,++He;return[Ce.filter(It=>It),Ye.filter(It=>It.length>0),Xe.filter(It=>It.length>0)]}}class Is extends ft{}class As extends ft{}class $s extends ft{}class ns extends ft{constructor(S,G){super(S,G),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(te=>this.languageRegex.test(te)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(S){if(S===null)return null;let[G,...te]=S.trim().split(this.languageRegex);if(te.length===0)return super._encode_text(G);if(te.length===2){let[se,me]=te;return this.supported_language_codes.includes(se)||console.warn(`Unsupported language code "${se}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,o.mergeArrays)([se],super._encode_text(me))}}}class Wr extends ft{}class ze extends ft{}class Ue extends ft{}class at extends ft{}class Ht extends ft{}class js extends ft{constructor(S,G){super(S,G),this.decoder=new At({})}}class Ds extends ft{}class Vs extends ft{}class Wo{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:et,DistilBertTokenizer:K,CamembertTokenizer:Z,DebertaTokenizer:St,DebertaV2Tokenizer:Xr,BertTokenizer:Cs,HerbertTokenizer:k,ConvBertTokenizer:Q,RoFormerTokenizer:N,XLMTokenizer:ce,ElectraTokenizer:xe,MobileBertTokenizer:Ss,SqueezeBertTokenizer:Qr,AlbertTokenizer:qt,GPT2Tokenizer:ut,BartTokenizer:qe,MBartTokenizer:wt,MBart50Tokenizer:tt,RobertaTokenizer:gt,WhisperTokenizer:ps,CodeGenTokenizer:Is,CLIPTokenizer:As,SiglipTokenizer:$s,MarianTokenizer:ns,BloomTokenizer:Nt,NllbTokenizer:ar,M2M100Tokenizer:_r,LlamaTokenizer:ur,CodeLlamaTokenizer:Or,XLMRobertaTokenizer:Cr,MPNetTokenizer:Lr,FalconTokenizer:_s,GPTNeoXTokenizer:Fs,EsmTokenizer:gr,Wav2Vec2CTCTokenizer:Wr,BlenderbotTokenizer:ze,BlenderbotSmallTokenizer:Ue,SpeechT5Tokenizer:at,NougatTokenizer:Ht,VitsTokenizer:js,Qwen2Tokenizer:Ns,GemmaTokenizer:as,Grok1Tokenizer:Nr,CohereTokenizer:Ds,MgpstrTokenizer:Vs,PreTrainedTokenizer:ft};static async from_pretrained(S,{progress_callback:G=null,config:te=null,cache_dir:se=null,local_files_only:me=!1,revision:Ce="main",legacy:Ye=null}={}){let[Xe,Ze]=await u(S,{progress_callback:G,config:te,cache_dir:se,local_files_only:me,revision:Ce,legacy:Ye}),He=Ze.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer",It=this.TOKENIZER_CLASS_MAPPING[He];return It||(console.warn(`Unknown tokenizer class "${He}", attempting to construct from base class.`),It=ft),new It(Xe,Ze)}}}),"./src/utils/audio.js":((e,r,t)=>{t.r(r),t.d(r,{RawAudio:()=>W,hamming:()=>d,hanning:()=>u,mel_filter_bank:()=>C,read_audio:()=>c,spectrogram:()=>E,window_function:()=>D});var s=t("./src/utils/hub.js"),o=t("./src/utils/maths.js"),a=t("./src/utils/core.js"),n=t("./src/env.js"),i=t("./src/utils/tensor.js"),l=t("?7992");async function c(z,X){if(typeof AudioContext>"u")throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");let J=await(await(0,s.getFile)(z)).arrayBuffer(),q=new AudioContext({sampleRate:X});typeof X>"u"&&console.warn(`No sampling rate provided, using default of ${q.sampleRate}Hz.`);let re=await q.decodeAudioData(J),oe;if(re.numberOfChannels===2){let ne=Math.sqrt(2),ye=re.getChannelData(0),Y=re.getChannelData(1);oe=new Float32Array(ye.length);for(let H=0;H<re.length;++H)oe[H]=ne*(ye[H]+Y[H])/2}else oe=re.getChannelData(0);return oe}function _(z,X){if(z<1)return new Float64Array;if(z===1)return new Float64Array([1]);let J=1-X,q=2*Math.PI/(z-1),re=new Float64Array(z);for(let oe=0;oe<z;++oe)re[oe]=X-J*Math.cos(oe*q);return re}function u(z){return _(z,.5)}function d(z){return _(z,.54)}let g={htk:z=>2595*Math.log10(1+z/700),kaldi:z=>1127*Math.log(1+z/700),slaney:(z,X=1e3,J=15,q=27/Math.log(6.4))=>z>=X?J+Math.log(z/X)*q:3*z/200};function h(z,X="htk"){let J=g[X];if(!J)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof z=="number"?J(z):z.map(q=>J(q))}let x={htk:z=>700*(10**(z/2595)-1),kaldi:z=>700*(Math.exp(z/1127)-1),slaney:(z,X=1e3,J=15,q=Math.log(6.4)/27)=>z>=J?X*Math.exp(q*(z-J)):200*z/3};function F(z,X="htk"){let J=x[X];if(!J)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof z=="number"?J(z):z.map(q=>J(q))}function v(z,X){let J=Float64Array.from({length:X.length-1},(ne,ye)=>X[ye+1]-X[ye]),q=Array.from({length:z.length},()=>new Array(X.length));for(let ne=0;ne<z.length;++ne){let ye=q[ne];for(let Y=0;Y<X.length;++Y)ye[Y]=X[Y]-z[ne]}let re=X.length-2,oe=Array.from({length:re},()=>new Array(z.length));for(let ne=0;ne<z.length;++ne){let ye=q[ne];for(let Y=0;Y<re;++Y){let H=-ye[Y]/J[Y],R=ye[Y+2]/J[Y+1];oe[Y][ne]=Math.max(0,Math.min(H,R))}}return oe}function b(z,X,J){let q=(X-z)/(J-1);return Float64Array.from({length:J},(re,oe)=>z+q*oe)}function C(z,X,J,q,re,oe=null,ne="htk",ye=!1){if(oe!==null&&oe!=="slaney")throw new Error('norm must be one of null or "slaney"');if(z<2)throw new Error(`Require num_frequency_bins: ${z} >= 2`);if(J>q)throw new Error(`Require min_frequency: ${J} <= max_frequency: ${q}`);let Y=h(J,ne),H=h(q,ne),R=b(Y,H,X+2),L=F(R,ne),ee;if(ye){let ke=re/((z-1)*2);ee=h(Float64Array.from({length:z},(Ie,Le)=>Le*ke),ne),L=R}else ee=b(0,Math.floor(re/2),z);let ue=v(ee,L);if(oe!==null&&oe==="slaney")for(let ke=0;ke<X;++ke){let Ie=ue[ke],Le=2/(L[ke+2]-L[ke]);for(let rt=0;rt<z;++rt)Ie[rt]*=Le}return ue}function y(z,X,J){let q=new z.constructor(z.length+X+J),re=z.length-1;for(let oe=0;oe<z.length;++oe)q[X+oe]=z[oe];for(let oe=1;oe<=X;++oe)q[X-oe]=z[(0,a.calculateReflectOffset)(oe,re)];for(let oe=1;oe<=J;++oe)q[re+X+oe]=z[(0,a.calculateReflectOffset)(re-oe,re)];return q}function P(z,X,J,q,re){if(J<=0)throw new Error("reference must be greater than zero");if(q<=0)throw new Error("min_value must be greater than zero");J=Math.max(q,J);let oe=Math.log10(J);for(let ne=0;ne<z.length;++ne)z[ne]=X*Math.log10(Math.max(q,z[ne])-oe);if(re!==null){if(re<=0)throw new Error("db_range must be greater than zero");let ne=(0,o.max)(z)[0]-re;for(let ye=0;ye<z.length;++ye)z[ye]=Math.max(z[ye],ne)}return z}function I(z,X=1,J=1e-5,q=null){return P(z,20,X,J,q)}function f(z,X=1,J=1e-10,q=null){return P(z,10,X,J,q)}async function E(z,X,J,q,{fft_length:re=null,power:oe=1,center:ne=!0,pad_mode:ye="reflect",onesided:Y=!0,preemphasis:H=null,preemphasis_htk_flavor:R=!0,mel_filters:L=null,mel_floor:ee=1e-10,log_mel:ue=null,reference:ke=1,min_value:Ie=1e-10,db_range:Le=null,remove_dc_offset:rt=null,min_num_frames:we=null,max_num_frames:A=null,do_pad:le=!0,transpose:ge=!1,mel_offset:be=0}={}){let Ae=X.length;if(re===null&&(re=J),J>re)throw Error(`frame_length (${J}) may not be larger than fft_length (${re})`);if(Ae!==J)throw new Error(`Length of the window (${Ae}) must equal frame_length (${J})`);if(q<=0)throw new Error("hop_length must be greater than zero");if(oe===null&&L!==null)throw new Error("You have provided `mel_filters` but `power` is `None`. Mel spectrogram computation is not yet supported for complex-valued spectrogram. Specify `power` to fix this issue.");if(!R)throw new Error("`preemphasis_htk_flavor=false` is not currently supported.");if(ne)switch(ye){case"reflect":{let Qe=Math.floor((re-1)/2)+1;z=y(z,Qe,Qe);break}case"constant":{let Qe=Math.floor(re/2),je=new z.constructor(z.length+2*Qe);je.set(z,Qe),z=je;break}default:throw new Error(`pad_mode="${ye}" not implemented yet.`)}let ve=Math.floor(1+Math.floor((z.length-J)/q));we!==null&&ve<we&&(ve=we);let pe=Y?Math.floor(re/2)+1:re,Pe=ve,fe=ve;A!==null&&(A>ve?le&&(fe=A):fe=Pe=A);let Te=new o.FFT(re),We=new Float64Array(re),$e=new Float64Array(Te.outputBufferSize),Re=new Float32Array(pe*fe);for(let Qe=0;Qe<Pe;++Qe){let je=Qe*q,pt=Math.min(z.length-je,J);pt!==J&&We.fill(0,0,J);for(let Ke=0;Ke<pt;++Ke)We[Ke]=z[je+Ke];if(rt){let Ke=0;for(let At=0;At<pt;++At)Ke+=We[At];let bt=Ke/pt;for(let At=0;At<pt;++At)We[At]-=bt}if(H!==null){for(let Ke=pt-1;Ke>=1;--Ke)We[Ke]-=H*We[Ke-1];We[0]*=1-H}for(let Ke=0;Ke<X.length;++Ke)We[Ke]*=X[Ke];Te.realTransform($e,We);for(let Ke=0;Ke<pe;++Ke){let bt=Ke<<1;Re[Ke*fe+Qe]=$e[bt]**2+$e[bt+1]**2}}if(oe!==null&&oe!==2){let Qe=oe/2;for(let je=0;je<Re.length;++je)Re[je]**=Qe}let Ne=L.length,ot=await(0,i.matmul)(new i.Tensor("float32",L.flat(),[Ne,pe]),new i.Tensor("float32",Re,[pe,fe]));ge&&(ot=ot.transpose(1,0));let De=ot.data;for(let Qe=0;Qe<De.length;++Qe)De[Qe]=be+Math.max(ee,De[Qe]);if(oe!==null&&ue!==null){let Qe=Math.min(De.length,Pe*Ne);switch(ue){case"log":for(let je=0;je<Qe;++je)De[je]=Math.log(De[je]);break;case"log10":for(let je=0;je<Qe;++je)De[je]=Math.log10(De[je]);break;case"dB":if(oe===1)I(De,ke,Ie,Le);else if(oe===2)f(De,ke,Ie,Le);else throw new Error(`Cannot use log_mel option '${ue}' with power ${oe}`);break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${ue}'`)}}return ot}function D(z,X,{periodic:J=!0,frame_length:q=null,center:re=!0}={}){let oe=J?z+1:z,ne;switch(X){case"boxcar":ne=new Float64Array(oe).fill(1);break;case"hann":case"hann_window":ne=u(oe);break;case"hamming":ne=d(oe);break;case"povey":ne=u(oe).map(ye=>Math.pow(ye,.85));break;default:throw new Error(`Unknown window type ${X}.`)}if(J&&(ne=ne.subarray(0,z)),q===null)return ne;if(z>q)throw new Error(`Length of the window (${z}) may not be larger than frame_length (${q})`);return ne}function O(z,X){let J=44,q=new ArrayBuffer(J+z.length*4),re=new DataView(q);U(re,0,"RIFF"),re.setUint32(4,36+z.length*4,!0),U(re,8,"WAVE"),U(re,12,"fmt "),re.setUint32(16,16,!0),re.setUint16(20,3,!0),re.setUint16(22,1,!0),re.setUint32(24,X,!0),re.setUint32(28,X*4,!0),re.setUint16(32,4,!0),re.setUint16(34,32,!0),U(re,36,"data"),re.setUint32(40,z.length*4,!0);for(let oe=0;oe<z.length;++oe,J+=4)re.setFloat32(J,z[oe],!0);return q}function U(z,X,J){for(let q=0;q<J.length;++q)z.setUint8(X+q,J.charCodeAt(q))}class W{constructor(X,J){this.audio=X,this.sampling_rate=J}toWav(){return O(this.audio,this.sampling_rate)}toBlob(){let X=this.toWav();return new Blob([X],{type:"audio/wav"})}async save(X){let J;if(n.apis.IS_BROWSER_ENV){if(n.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save a file from a Web Worker.");J=a.saveBlob}else if(n.apis.IS_FS_AVAILABLE)J=async(q,re)=>{let oe=await re.arrayBuffer();l.writeFileSync(q,Buffer.from(oe))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await J(X,this.toBlob())}}}),"./src/utils/constants.js":((e,r,t)=>{t.r(r),t.d(r,{CHAT_TEMPLATE_NAME:()=>l,CONFIG_NAME:()=>o,FEATURE_EXTRACTOR_NAME:()=>a,GENERATION_CONFIG_NAME:()=>c,GITHUB_ISSUE_URL:()=>s,IMAGE_PROCESSOR_NAME:()=>n,PROCESSOR_NAME:()=>i});let s="https://github.com/huggingface/transformers.js/issues/new/choose",o="config.json",a="preprocessor_config.json",n=a,i="processor_config.json",l="chat_template.jinja",c="generation_config.json"}),"./src/utils/core.js":((e,r,t)=>{t.r(r),t.d(r,{calculateDimensions:()=>c,calculateReflectOffset:()=>g,count:()=>v,dispatchCallback:()=>s,escapeRegExp:()=>a,isIntegralNumber:()=>i,isNullishDimension:()=>l,isTypedArray:()=>n,len:()=>F,mergeArrays:()=>u,pick:()=>x,pop:()=>_,product:()=>d,reverseDictionary:()=>o,saveBlob:()=>h});function s(b,C){b&&b(C)}function o(b){return Object.fromEntries(Object.entries(b).map(([C,y])=>[y,C]))}function a(b){return b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function n(b){return b?.prototype?.__proto__?.constructor?.name==="TypedArray"}function i(b){return Number.isInteger(b)||typeof b=="bigint"}function l(b){return b==null||b===-1}function c(b){let C=[],y=b;for(;Array.isArray(y);)C.push(y.length),y=y[0];return C}function _(b,C,y=void 0){let P=b[C];if(P!==void 0)return delete b[C],P;if(y===void 0)throw Error(`Key ${C} does not exist in object.`);return y}function u(...b){return Array.prototype.concat.apply([],b)}function d(...b){return b.reduce((C,y)=>C.flatMap(P=>y.map(I=>[P,I])))}function g(b,C){return Math.abs((b+C)%(2*C)-C)}function h(b,C){let y=URL.createObjectURL(C),P=document.createElement("a");P.href=y,P.download=b,P.click(),P.remove(),URL.revokeObjectURL(y)}function x(b,C){return Object.assign({},...C.map(y=>{if(b[y]!==void 0)return{[y]:b[y]}}))}function F(b){let C=0;for(let y of b)++C;return C}function v(b,C){let y=0;for(let P of b)P===C&&++y;return y}}),"./src/utils/data-structures.js":((e,r,t)=>{t.r(r),t.d(r,{CharTrie:()=>o,DictionarySplitter:()=>l,LRUCache:()=>c,PriorityQueue:()=>s,TokenLattice:()=>n});class s{constructor(u=(g,h)=>g>h,d=1/0){this._heap=[],this._comparator=u,this._maxSize=d}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...u){return this.extend(u)}extend(u){for(let d of u)if(this.size<this._maxSize)this._heap.push(d),this._siftUp();else{let g=this._smallest();this._comparator(d,this._heap[g])&&(this._heap[g]=d,this._siftUpFrom(g))}return this.size}pop(){let u=this.peek(),d=this.size-1;return d>0&&this._swap(0,d),this._heap.pop(),this._siftDown(),u}replace(u){let d=this.peek();return this._heap[0]=u,this._siftDown(),d}_parent(u){return(u+1>>>1)-1}_left(u){return(u<<1)+1}_right(u){return u+1<<1}_greater(u,d){return this._comparator(this._heap[u],this._heap[d])}_swap(u,d){let g=this._heap[u];this._heap[u]=this._heap[d],this._heap[d]=g}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(u){for(;u>0&&this._greater(u,this._parent(u));)this._swap(u,this._parent(u)),u=this._parent(u)}_siftDown(){let u=0;for(;this._left(u)<this.size&&this._greater(this._left(u),u)||this._right(u)<this.size&&this._greater(this._right(u),u);){let d=this._right(u)<this.size&&this._greater(this._right(u),this._left(u))?this._right(u):this._left(u);this._swap(u,d),u=d}}_smallest(){return 2**Math.floor(Math.log2(this.size))-1}}class o{constructor(){this.root=a.default()}extend(u){for(let d of u)this.push(d)}push(u){let d=this.root;for(let g of u){let h=d.children.get(g);h===void 0&&(h=a.default(),d.children.set(g,h)),d=h}d.isLeaf=!0}*commonPrefixSearch(u){let d=this.root;if(d===void 0)return;let g="";for(let h of u){if(g+=h,d=d.children.get(h),d===void 0)return;d.isLeaf&&(yield g)}}}class a{constructor(u,d){this.isLeaf=u,this.children=d}static default(){return new a(!1,new Map)}}class n{constructor(u,d,g){this.chars=Array.from(u),this.len=this.chars.length,this.bosTokenId=d,this.eosTokenId=g,this.nodes=[],this.beginNodes=Array.from({length:this.len+1},()=>[]),this.endNodes=Array.from({length:this.len+1},()=>[]);let h=new i(this.bosTokenId,0,0,0,0),x=new i(this.eosTokenId,1,this.len,0,0);this.nodes.push(h.clone()),this.nodes.push(x.clone()),this.beginNodes[this.len].push(x),this.endNodes[0].push(h)}insert(u,d,g,h){let x=this.nodes.length,F=new i(h,x,u,d,g);this.beginNodes[u].push(F),this.endNodes[u+d].push(F),this.nodes.push(F)}viterbi(){let u=this.len,d=0;for(;d<=u;){if(this.beginNodes[d].length==0)return[];for(let v of this.beginNodes[d]){v.prev=null;let b=0,C=null;for(let y of this.endNodes[d]){let P=y.backtraceScore+v.score;(C===null||P>b)&&(C=y.clone(),b=P)}if(C!==null)v.prev=C,v.backtraceScore=b;else return[]}++d}let g=[],x=this.beginNodes[u][0].prev;if(x===null)return[];let F=x.clone();for(;F.prev!==null;)g.push(F.clone()),F=F.clone().prev.clone();return g.reverse(),g}piece(u){return this.chars.slice(u.pos,u.pos+u.length).join("")}tokens(){return this.viterbi().map(d=>this.piece(d))}tokenIds(){return this.viterbi().map(d=>d.tokenId)}}class i{constructor(u,d,g,h,x){this.tokenId=u,this.nodeId=d,this.pos=g,this.length=h,this.score=x,this.prev=null,this.backtraceScore=0}clone(){let u=new i(this.tokenId,this.nodeId,this.pos,this.length,this.score);return u.prev=this.prev,u.backtraceScore=this.backtraceScore,u}}class l{constructor(u){this.trie=this._buildTrie(u)}_buildTrie(u){let d=Object.create(null);for(let g of u){let h=d;for(let x=0;x<g.length;++x)h=h[g[x]]??=Object.create(null);h.end=g}return d}split(u){let d=[],g=u.length,h=0,x=0;for(;x<g;){let F=this.trie,v=null,b=x;for(;b<g&&(F=F[u[b]]);)F.end&&(v=F.end),++b;v?(x>h&&d.push(u.slice(h,x)),d.push(v),x+=v.length,h=x):++x}return h<g&&d.push(u.slice(h)),d}}class c{constructor(u){this.capacity=u,this.cache=new Map}get(u){if(!this.cache.has(u))return;let d=this.cache.get(u);return this.cache.delete(u),this.cache.set(u,d),d}put(u,d){this.cache.has(u)&&this.cache.delete(u),this.cache.set(u,d),this.cache.size>this.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}}}),"./src/utils/devices.js":((e,r,t)=>{t.r(r),t.d(r,{DEVICE_TYPES:()=>s});let s=Object.freeze({auto:"auto",gpu:"gpu",cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:"webnn","webnn-npu":"webnn-npu","webnn-gpu":"webnn-gpu","webnn-cpu":"webnn-cpu"})}),"./src/utils/dtypes.js":((e,r,t)=>{t.r(r),t.d(r,{DATA_TYPES:()=>n,DEFAULT_DEVICE_DTYPE_MAPPING:()=>i,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>l,isWebGpuFp16Supported:()=>a});var s=t("./src/env.js"),o=t("./src/utils/devices.js");let a=(function(){let c;return async function(){if(c===void 0)if(!s.apis.IS_WEBGPU_AVAILABLE)c=!1;else try{c=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{c=!1}return c}})(),n=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),i=Object.freeze({[o.DEVICE_TYPES.wasm]:n.q8}),l=Object.freeze({[n.fp32]:"",[n.fp16]:"_fp16",[n.int8]:"_int8",[n.uint8]:"_uint8",[n.q8]:"_quantized",[n.q4]:"_q4",[n.q4f16]:"_q4f16",[n.bnb4]:"_bnb4"})}),"./src/utils/generic.js":((e,r,t)=>{t.r(r),t.d(r,{Callable:()=>s});let s=class{constructor(){let o=function(...a){return o._call(...a)};return Object.setPrototypeOf(o,new.target.prototype)}_call(...o){throw Error("Must implement _call method in subclass")}}}),"./src/utils/hub.js":((e,r,t)=>{t.r(r),t.d(r,{MAX_EXTERNAL_DATA_CHUNKS:()=>i,getFile:()=>g,getModelFile:()=>b,getModelJSON:()=>y,getModelText:()=>C});var s=t("?7992"),o=t("?5af5"),a=t("./src/env.js"),n=t("./src/utils/core.js");let i=100,l={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};class c{constructor(E){if(this.filePath=E,this.headers=new Headers,this.exists=s.existsSync(E),this.exists){this.status=200,this.statusText="OK";let D=s.statSync(E);this.headers.set("content-length",D.size.toString()),this.updateContentType();let O=s.createReadStream(E);this.body=new ReadableStream({start(U){O.on("data",W=>U.enqueue(W)),O.on("end",()=>U.close()),O.on("error",W=>U.error(W))},cancel(){O.destroy()}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){let E=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",l[E]??"application/octet-stream")}clone(){let E=new c(this.filePath);return E.exists=this.exists,E.status=this.status,E.statusText=this.statusText,E.headers=new Headers(this.headers),E}async arrayBuffer(){return(await s.promises.readFile(this.filePath)).buffer}async blob(){let E=await s.promises.readFile(this.filePath);return new Blob([E],{type:this.headers.get("content-type")})}async text(){return await s.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function _(f,E=null,D=null){let O;try{O=new URL(f)}catch{return!1}return!(E&&!E.includes(O.protocol)||D&&!D.includes(O.hostname))}let u=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function d(f){return!(!u.test(f)||f.includes("..")||f.includes("--")||f.endsWith(".git")||f.endsWith(".ipynb"))}async function g(f){if(a.env.useFS&&!_(f,["http:","https:","blob:"]))return new c(f instanceof URL?f.protocol==="file:"?f.pathname:f.toString():f);if(typeof process<"u"&&process?.release?.name==="node"){let E=!!process.env?.TESTING_REMOTELY,D=a.env.version,O=new Headers;if(O.set("User-Agent",`transformers.js/${D}; is_ci/${E};`),_(f,["http:","https:"],["huggingface.co","hf.co"])){let W=process.env?.HF_TOKEN??process.env?.HF_ACCESS_TOKEN;W&&O.set("Authorization",`Bearer ${W}`)}return fetch(f,{headers:O})}else return fetch(f)}let h={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};function x(f,E,D){if(!D)return null;let O=h[f]??`Error (${f}) occurred while trying to load file`;throw Error(`${O}: "${E}".`)}class F{constructor(E){this.path=E}async match(E){let D=o.join(this.path,E),O=new c(D);if(O.exists)return O}async put(E,D,O=void 0){let U=o.join(this.path,E);try{let W=D.headers.get("Content-Length"),z=parseInt(W??"0"),X=0;await s.promises.mkdir(o.dirname(U),{recursive:!0});let J=s.createWriteStream(U),q=D.body.getReader();for(;;){let{done:re,value:oe}=await q.read();if(re)break;await new Promise((ye,Y)=>{J.write(oe,H=>{if(H){Y(H);return}ye()})}),X+=oe.length;let ne=z?X/z*100:0;O?.({progress:ne,loaded:X,total:z})}J.close()}catch(W){try{await s.promises.unlink(U)}catch{}throw W}}}async function v(f,...E){for(let D of E)try{let O=await f.match(D);if(O)return O}catch{continue}}async function b(f,E,D=!0,O={},U=!1){if(!a.env.allowLocalModels){if(O.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!a.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}(0,n.dispatchCallback)(O.progress_callback,{status:"initiate",name:f,file:E});let W;if(!W&&a.env.useCustomCache){if(!a.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!a.env.customCache.match||!a.env.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");W=a.env.customCache}if(!W&&a.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{W=await caches.open("transformers-cache")}catch(ee){console.warn("An error occurred while opening the browser cache:",ee)}}if(!W&&a.env.useFSCache){if(!a.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");W=new F(O.cache_dir??a.env.cacheDir)}let z=O.revision??"main",X=I(f,E),J=d(f),q=J?I(a.env.localModelPath,X):X,re=I(a.env.remoteHost,a.env.remotePathTemplate.replaceAll("{model}",f).replaceAll("{revision}",encodeURIComponent(z)),E),oe,ne=W instanceof F?z==="main"?X:I(f,z,E):re,ye=!1,Y;W&&(Y=await v(W,q,ne));let H=Y!==void 0;if(Y===void 0){if(a.env.allowLocalModels)if(_(X,["http:","https:"])){if(O.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${X}.`);if(!a.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${X}.`)}else try{Y=await g(q),oe=q}catch(ue){console.warn(`Unable to load from local path "${q}": "${ue}"`)}if(Y===void 0||Y.status===404){if(O.local_files_only||!a.env.allowRemoteModels){if(D)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${q}".`);return null}if(!J)throw Error(`Local file missing at "${q}" and download aborted due to invalid model ID "${f}".`);if(Y=await g(re),Y.status!==200)return x(Y.status,re,D);oe=ne}ye=W&&typeof Response<"u"&&Y instanceof Response&&Y.status===200}(0,n.dispatchCallback)(O.progress_callback,{status:"download",name:f,file:E});let R;if(!(a.apis.IS_NODE_ENV&&U)){let ee;O.progress_callback?H&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(ee=new Uint8Array(await Y.arrayBuffer()),(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,progress:100,loaded:ee.length,total:ee.length})):ee=await P(Y,ue=>{(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,...ue})}):ee=new Uint8Array(await Y.arrayBuffer()),R=ee}if(ye&&oe&&await W.match(oe)===void 0)if(R)await W.put(oe,new Response(R,{headers:Y.headers})).catch(ee=>{console.warn(`Unable to add response to browser cache: ${ee}.`)});else{let ee=O.progress_callback?ue=>(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,...ue}):void 0;await W.put(oe,Y,ee)}if((0,n.dispatchCallback)(O.progress_callback,{status:"done",name:f,file:E}),R){if(!a.apis.IS_NODE_ENV&&U)throw new Error("Cannot return path in a browser environment.");return R}if(Y instanceof c)return Y.filePath;let L=await W?.match(oe);if(L instanceof c)return L.filePath;if(L instanceof Response)return new Uint8Array(await L.arrayBuffer());if(typeof L=="string")return L;throw new Error("Unable to get model file path or buffer.")}async function C(f,E,D=!0,O={}){let U=await b(f,E,D,O,!1);return U===null?null:new TextDecoder("utf-8").decode(U)}async function y(f,E,D=!0,O={}){let U=await C(f,E,D,O);return U===null?{}:JSON.parse(U)}async function P(f,E){let D=f.headers.get("Content-Length");D===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let O=parseInt(D??"0"),U=new Uint8Array(O),W=0,z=f.body.getReader();async function X(){let{done:J,value:q}=await z.read();if(J)return;let re=W+q.length;if(re>O){O=re;let ne=new Uint8Array(O);ne.set(U),U=ne}U.set(q,W),W=re;let oe=W/O*100;return E({progress:oe,loaded:W,total:O}),X()}return await X(),U}function I(...f){return f=f.map((E,D)=>(D&&(E=E.replace(new RegExp("^/"),"")),D!==f.length-1&&(E=E.replace(new RegExp("/$"),"")),E)),f.join("/")}}),"./src/utils/image.js":((e,r,t)=>{t.r(r),t.d(r,{RawImage:()=>h,load_image:()=>x});var s=t("./src/utils/core.js"),o=t("./src/utils/hub.js"),a=t("./src/env.js"),n=t("./src/utils/tensor.js"),i=t("?2b25");let l,c,_,u=a.apis.IS_BROWSER_ENV||a.apis.IS_WEBWORKER_ENV;if(u)l=(F,v)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(F,v)},_=self.createImageBitmap,c=self.ImageData;else if(i)_=async F=>{let b=(await F.metadata()).channels,{data:C,info:y}=await F.rotate().raw().toBuffer({resolveWithObject:!0}),P=new h(new Uint8ClampedArray(C),y.width,y.height,y.channels);return b!==void 0&&b!==y.channels&&P.convert(b),P};else throw new Error("Unable to load image processing library.");let d={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},g=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class h{constructor(v,b,C,y){this.data=v,this.width=b,this.height=C,this.channels=y}get size(){return[this.width,this.height]}static async read(v){if(v instanceof h)return v;if(typeof v=="string"||v instanceof URL)return await this.fromURL(v);if(v instanceof Blob)return await this.fromBlob(v);if(typeof HTMLCanvasElement<"u"&&v instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&v instanceof OffscreenCanvas)return this.fromCanvas(v);throw new Error(`Unsupported input type: ${typeof v}`)}static fromCanvas(v){if(!u)throw new Error("fromCanvas() is only supported in browser environments.");let C=v.getContext("2d").getImageData(0,0,v.width,v.height).data;return new h(C,v.width,v.height,4)}static async fromURL(v){let b=await(0,o.getFile)(v);if(b.status!==200)throw new Error(`Unable to read image from "${v}" (${b.status} ${b.statusText})`);let C=await b.blob();return this.fromBlob(C)}static async fromBlob(v){if(u){let b=await _(v),C=l(b.width,b.height).getContext("2d");return C.drawImage(b,0,0),new this(C.getImageData(0,0,b.width,b.height).data,b.width,b.height,4)}else{let b=i(await v.arrayBuffer());return await _(b)}}static fromTensor(v,b="CHW"){if(v.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${v.dims.length} dimensions.`);if(b==="CHW")v=v.transpose(1,2,0);else if(b!=="HWC")throw new Error(`Unsupported channel format: ${b}`);if(!(v.data instanceof Uint8ClampedArray||v.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${v.type}`);switch(v.dims[2]){case 1:case 2:case 3:case 4:return new h(v.data,v.dims[1],v.dims[0],v.dims[2]);default:throw new Error(`Unsupported number of channels: ${v.dims[2]}`)}}grayscale(){if(this.channels===1)return this;let v=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let b=0,C=0;b<this.data.length;b+=this.channels){let y=this.data[b],P=this.data[b+1],I=this.data[b+2];v[C++]=Math.round(.2989*y+.587*P+.114*I)}break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,1)}rgb(){if(this.channels===3)return this;let v=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let b=0,C=0;b<this.data.length;++b)v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=this.data[b];break;case 4:for(let b=0,C=0;b<this.data.length;b+=4)v[C++]=this.data[b],v[C++]=this.data[b+1],v[C++]=this.data[b+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,3)}rgba(){if(this.channels===4)return this;let v=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let b=0,C=0;b<this.data.length;++b)v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=255;break;case 3:for(let b=0,C=0;b<this.data.length;b+=3)v[C++]=this.data[b],v[C++]=this.data[b+1],v[C++]=this.data[b+2],v[C++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,4)}putAlpha(v){if(v.width!==this.width||v.height!==this.height)throw new Error(`Expected mask size to be ${this.width}x${this.height}, but got ${v.width}x${v.height}`);if(v.channels!==1)throw new Error(`Expected mask to have 1 channel, but got ${v.channels}`);let b=this.data,C=v.data,y=this.width*this.height;if(this.channels===3){let P=new Uint8ClampedArray(y*4);for(let I=0,f=0,E=0;I<y;++I)P[E++]=b[f++],P[E++]=b[f++],P[E++]=b[f++],P[E++]=C[I];return this._update(P,this.width,this.height,4)}else if(this.channels===4){for(let P=0;P<y;++P)b[4*P+3]=C[P];return this}throw new Error(`Expected image to have 3 or 4 channels, but got ${this.channels}`)}async resize(v,b,{resample:C=2}={}){if(this.width===v&&this.height===b)return this;let y=d[C]??C,P=(0,s.isNullishDimension)(v),I=(0,s.isNullishDimension)(b);if(P&&I)return this;if(P?v=b/this.height*this.width:I&&(b=v/this.width*this.height),u){let f=this.channels,E=this.toCanvas(),D=l(v,b).getContext("2d");return D.drawImage(E,0,0,v,b),new h(D.getImageData(0,0,v,b).data,v,b,4).convert(f)}else{let f=this.toSharp();switch(y){case"box":case"hamming":(y==="box"||y==="hamming")&&(console.warn(`Resampling method ${y} is not yet supported. Using bilinear instead.`),y="bilinear");case"nearest":case"bilinear":case"bicubic":f=f.affine([v/this.width,0,0,b/this.height],{interpolator:y});break;case"lanczos":f=f.resize({width:v,height:b,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${y} is not supported.`)}return await _(f)}}async pad([v,b,C,y]){if(v=Math.max(v,0),b=Math.max(b,0),C=Math.max(C,0),y=Math.max(y,0),v===0&&b===0&&C===0&&y===0)return this;if(u){let P=this.channels,I=this.toCanvas(),f=this.width+v+b,E=this.height+C+y,D=l(f,E).getContext("2d");return D.drawImage(I,0,0,this.width,this.height,v,C,this.width,this.height),new h(D.getImageData(0,0,f,E).data,f,E,4).convert(P)}else{let P=this.toSharp().extend({left:v,right:b,top:C,bottom:y});return await _(P)}}async crop([v,b,C,y]){if(v=Math.max(v,0),b=Math.max(b,0),C=Math.min(C,this.width-1),y=Math.min(y,this.height-1),v===0&&b===0&&C===this.width-1&&y===this.height-1)return this;let P=C-v+1,I=y-b+1;if(u){let f=this.channels,E=this.toCanvas(),D=l(P,I).getContext("2d");return D.drawImage(E,v,b,P,I,0,0,P,I),new h(D.getImageData(0,0,P,I).data,P,I,4).convert(f)}else{let f=this.toSharp().extract({left:v,top:b,width:P,height:I});return await _(f)}}async center_crop(v,b){if(this.width===v&&this.height===b)return this;let C=(this.width-v)/2,y=(this.height-b)/2;if(u){let P=this.channels,I=this.toCanvas(),f=l(v,b).getContext("2d"),E=0,D=0,O=0,U=0;return C>=0?E=C:O=-C,y>=0?D=y:U=-y,f.drawImage(I,E,D,v,b,O,U,v,b),new h(f.getImageData(0,0,v,b).data,v,b,4).convert(P)}else{let P=this.toSharp();if(C>=0&&y>=0)P=P.extract({left:Math.floor(C),top:Math.floor(y),width:v,height:b});else if(C<=0&&y<=0){let I=Math.floor(-y),f=Math.floor(-C);P=P.extend({top:I,left:f,right:v-this.width-f,bottom:b-this.height-I})}else{let I=[0,0],f=0;y<0?(I[0]=Math.floor(-y),I[1]=b-this.height-I[0]):f=Math.floor(y);let E=[0,0],D=0;C<0?(E[0]=Math.floor(-C),E[1]=v-this.width-E[0]):D=Math.floor(C),P=P.extend({top:I[0],bottom:I[1],left:E[0],right:E[1]}).extract({left:D,top:f,width:v,height:b})}return await _(P)}}async toBlob(v="image/png",b=1){if(!u)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:v,quality:b})}toTensor(v="CHW"){let b=new n.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(v!=="HWC")if(v==="CHW")b=b.permute(2,0,1);else throw new Error(`Unsupported channel format: ${v}`);return b}toCanvas(){if(!u)throw new Error("toCanvas() is only supported in browser environments.");let v=this.clone().rgba(),b=l(v.width,v.height),C=new c(v.data,v.width,v.height);return b.getContext("2d").putImageData(C,0,0),b}split(){let{data:v,width:b,height:C,channels:y}=this,P=v.constructor,I=v.length/y,f=Array.from({length:y},()=>new P(I));for(let E=0;E<I;++E){let D=y*E;for(let O=0;O<y;++O)f[O][E]=v[D+O]}return f.map(E=>new h(E,b,C,1))}_update(v,b,C,y=null){return this.data=v,this.width=b,this.height=C,y!==null&&(this.channels=y),this}clone(){return new h(this.data.slice(),this.width,this.height,this.channels)}convert(v){if(this.channels===v)return this;switch(v){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(v){if(u){if(a.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");let b=v.split(".").pop().toLowerCase(),C=g.get(b)??"image/png",y=await this.toBlob(C);(0,s.saveBlob)(v,y)}else{if(a.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(v);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(u)throw new Error("toSharp() is only supported in server-side environments.");return i(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}let x=h.read.bind(h)}),"./src/utils/maths.js":((e,r,t)=>{t.r(r),t.d(r,{FFT:()=>x,bankers_round:()=>b,cos_sim:()=>l,dot:()=>i,dynamic_time_warping:()=>C,interpolate_data:()=>s,log_softmax:()=>n,magnitude:()=>c,max:()=>u,medianFilter:()=>F,min:()=>_,permute_data:()=>o,round:()=>v,softmax:()=>a});function s(y,[P,I,f],[E,D],O="bilinear",U=!1){let W=D/f,z=E/I,X=new y.constructor(E*D*P),J=I*f,q=E*D;for(let re=0;re<E;++re)for(let oe=0;oe<D;++oe){let ne=re*D+oe,ye=(oe+.5)/W-.5,Y=(re+.5)/z-.5,H=Math.floor(ye),R=Math.floor(Y),L=Math.min(H+1,f-1),ee=Math.min(R+1,I-1);H=Math.max(H,0),R=Math.max(R,0);let ue=ye-H,ke=Y-R,Ie=(1-ue)*(1-ke),Le=ue*(1-ke),rt=(1-ue)*ke,we=ue*ke,A=R*f,le=ee*f,ge=A+H,be=A+L,Ae=le+H,ve=le+L;for(let pe=0;pe<P;++pe){let Pe=pe*J;X[pe*q+ne]=Ie*y[Pe+ge]+Le*y[Pe+be]+rt*y[Pe+Ae]+we*y[Pe+ve]}}return X}function o(y,P,I){let f=new Array(I.length),E=new Array(I.length);for(let U=I.length-1,W=1;U>=0;--U)E[U]=W,f[U]=P[I[U]],W*=f[U];let D=I.map((U,W)=>E[I.indexOf(W)]),O=new y.constructor(y.length);for(let U=0;U<y.length;++U){let W=0;for(let z=P.length-1,X=U;z>=0;--z)W+=X%P[z]*D[z],X=Math.floor(X/P[z]);O[W]=y[U]}return[O,f]}function a(y){let P=u(y)[0],I=y.map(D=>Math.exp(D-P)),f=I.reduce((D,O)=>D+O,0);return I.map(D=>D/f)}function n(y){let P=u(y)[0],I=0;for(let D=0;D<y.length;++D)I+=Math.exp(y[D]-P);let f=Math.log(I);return y.map(D=>D-P-f)}function i(y,P){let I=0;for(let f=0;f<y.length;++f)I+=y[f]*P[f];return I}function l(y,P){let I=i(y,P),f=c(y),E=c(P);return I/(f*E)}function c(y){return Math.sqrt(y.reduce((P,I)=>P+I*I,0))}function _(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let f=1;f<y.length;++f)y[f]<P&&(P=y[f],I=f);return[P,I]}function u(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let f=1;f<y.length;++f)y[f]>P&&(P=y[f],I=f);return[P,I]}function d(y){return y>0&&(y&y-1)===0}class g{constructor(P){if(this.size=P|0,this.size<=1||!d(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=P<<1,this.table=new Float64Array(this.size*2);for(let f=0;f<this.table.length;f+=2){let E=Math.PI*f/this.size;this.table[f]=Math.cos(E),this.table[f+1]=-Math.sin(E)}let I=0;for(let f=1;this.size>f;f<<=1)++I;this._width=I%2===0?I-1:I,this._bitrev=new Int32Array(1<<this._width);for(let f=0;f<this._bitrev.length;++f){this._bitrev[f]=0;for(let E=0;E<this._width;E+=2){let D=this._width-E-2;this._bitrev[f]|=(f>>>E&3)<<D}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(P,I){let f=I||new Array(P.length>>>1);for(let E=0;E<P.length;E+=2)f[E>>>1]=P[E];return f}toComplexArray(P,I){let f=I||this.createComplexArray();for(let E=0;E<f.length;E+=2)f[E]=P[E>>>1],f[E+1]=0;return f}transform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._transform4(P,I,1)}realTransform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._realTransform4(P,I,1)}inverseTransform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._transform4(P,I,-1);for(let f=0;f<P.length;++f)P[f]/=this.size}_transform4(P,I,f){let E=this._csize,O=1<<this._width,U=E/O<<1,W,z,X=this._bitrev;if(U===4)for(W=0,z=0;W<E;W+=U,++z){let q=X[z];this._singleTransform2(I,P,W,q,O)}else for(W=0,z=0;W<E;W+=U,++z){let q=X[z];this._singleTransform4(I,P,W,q,O,f)}let J=this.table;for(O>>=2;O>=2;O>>=2){U=E/O<<1;let q=U>>>2;for(W=0;W<E;W+=U){let re=W+q-1;for(let oe=W,ne=0;oe<re;oe+=2,ne+=O){let ye=oe,Y=ye+q,H=Y+q,R=H+q,L=P[ye],ee=P[ye+1],ue=P[Y],ke=P[Y+1],Ie=P[H],Le=P[H+1],rt=P[R],we=P[R+1],A=J[ne],le=f*J[ne+1],ge=ue*A-ke*le,be=ue*le+ke*A,Ae=J[2*ne],ve=f*J[2*ne+1],pe=Ie*Ae-Le*ve,Pe=Ie*ve+Le*Ae,fe=J[3*ne],Te=f*J[3*ne+1],We=rt*fe-we*Te,$e=rt*Te+we*fe,Re=L+pe,Ne=ee+Pe,ot=L-pe,De=ee-Pe,Qe=ge+We,je=be+$e,pt=f*(ge-We),Ke=f*(be-$e);P[ye]=Re+Qe,P[ye+1]=Ne+je,P[Y]=ot+Ke,P[Y+1]=De-pt,P[H]=Re-Qe,P[H+1]=Ne-je,P[R]=ot-Ke,P[R+1]=De+pt}}}}_singleTransform2(P,I,f,E,D){let O=P[E],U=P[E+1],W=P[E+D],z=P[E+D+1];I[f]=O+W,I[f+1]=U+z,I[f+2]=O-W,I[f+3]=U-z}_singleTransform4(P,I,f,E,D,O){let U=D*2,W=D*3,z=P[E],X=P[E+1],J=P[E+D],q=P[E+D+1],re=P[E+U],oe=P[E+U+1],ne=P[E+W],ye=P[E+W+1],Y=z+re,H=X+oe,R=z-re,L=X-oe,ee=J+ne,ue=q+ye,ke=O*(J-ne),Ie=O*(q-ye);I[f]=Y+ee,I[f+1]=H+ue,I[f+2]=R+Ie,I[f+3]=L-ke,I[f+4]=Y-ee,I[f+5]=H-ue,I[f+6]=R-Ie,I[f+7]=L+ke}_realTransform4(P,I,f){let E=this._csize,O=1<<this._width,U=E/O<<1,W,z,X=this._bitrev;if(U===4)for(W=0,z=0;W<E;W+=U,++z){let re=X[z];this._singleRealTransform2(I,P,W,re>>>1,O>>>1)}else for(W=0,z=0;W<E;W+=U,++z){let re=X[z];this._singleRealTransform4(I,P,W,re>>>1,O>>>1,f)}let J=this.table;for(O>>=2;O>=2;O>>=2){U=E/O<<1;let re=U>>>1,oe=re>>>1,ne=oe>>>1;for(W=0;W<E;W+=U)for(let ye=0,Y=0;ye<=ne;ye+=2,Y+=O){let H=W+ye,R=H+oe,L=R+oe,ee=L+oe,ue=P[H],ke=P[H+1],Ie=P[R],Le=P[R+1],rt=P[L],we=P[L+1],A=P[ee],le=P[ee+1],ge=ue,be=ke,Ae=J[Y],ve=f*J[Y+1],pe=Ie*Ae-Le*ve,Pe=Ie*ve+Le*Ae,fe=J[2*Y],Te=f*J[2*Y+1],We=rt*fe-we*Te,$e=rt*Te+we*fe,Re=J[3*Y],Ne=f*J[3*Y+1],ot=A*Re-le*Ne,De=A*Ne+le*Re,Qe=ge+We,je=be+$e,pt=ge-We,Ke=be-$e,bt=pe+ot,At=Pe+De,Lt=f*(pe-ot),fr=f*(Pe-De);if(P[H]=Qe+bt,P[H+1]=je+At,P[R]=pt+fr,P[R+1]=Ke-Lt,ye===0){P[L]=Qe-bt,P[L+1]=je-At;continue}if(ye===ne)continue;let zt=W+oe-ye,yr=W+re-ye;P[zt]=pt-f*fr,P[zt+1]=-Ke-f*Lt,P[yr]=Qe-f*bt,P[yr+1]=-je+f*At}}let q=E>>>1;for(let re=2;re<q;re+=2)P[E-re]=P[re],P[E-re+1]=-P[re+1]}_singleRealTransform2(P,I,f,E,D){let O=P[E],U=P[E+D];I[f]=O+U,I[f+1]=0,I[f+2]=O-U,I[f+3]=0}_singleRealTransform4(P,I,f,E,D,O){let U=D*2,W=D*3,z=P[E],X=P[E+D],J=P[E+U],q=P[E+W],re=z+J,oe=z-J,ne=X+q,ye=O*(X-q);I[f]=re+ne,I[f+1]=0,I[f+2]=oe,I[f+3]=-ye,I[f+4]=re-ne,I[f+5]=0,I[f+6]=oe,I[f+7]=ye}}class h{constructor(P){let I=2*(P-1),f=2*(2*P-1),E=2**Math.ceil(Math.log2(f));this.bufferSize=E,this._a=I;let D=new Float64Array(f),O=new Float64Array(E);this._chirpBuffer=new Float64Array(E),this._buffer1=new Float64Array(E),this._buffer2=new Float64Array(E),this._outBuffer1=new Float64Array(E),this._outBuffer2=new Float64Array(E);let U=-2*Math.PI/P,W=Math.cos(U),z=Math.sin(U);for(let X=0;X<f>>1;++X){let J=(X+1-P)**2/2,q=Math.sqrt(W**2+z**2)**J,re=J*Math.atan2(z,W),oe=2*X;D[oe]=q*Math.cos(re),D[oe+1]=q*Math.sin(re),O[oe]=D[oe],O[oe+1]=-D[oe+1]}this._slicedChirpBuffer=D.subarray(I,f),this._f=new g(E>>1),this._f.transform(this._chirpBuffer,O)}_transform(P,I,f){let E=this._buffer1,D=this._buffer2,O=this._outBuffer1,U=this._outBuffer2,W=this._chirpBuffer,z=this._slicedChirpBuffer,X=this._a;if(f)for(let J=0;J<z.length;J+=2){let q=J+1,re=J>>1,oe=I[re];E[J]=oe*z[J],E[q]=oe*z[q]}else for(let J=0;J<z.length;J+=2){let q=J+1;E[J]=I[J]*z[J]-I[q]*z[q],E[q]=I[J]*z[q]+I[q]*z[J]}this._f.transform(O,E);for(let J=0;J<W.length;J+=2){let q=J+1;D[J]=O[J]*W[J]-O[q]*W[q],D[q]=O[J]*W[q]+O[q]*W[J]}this._f.inverseTransform(U,D);for(let J=0;J<U.length;J+=2){let q=U[J+X],re=U[J+X+1],oe=z[J],ne=z[J+1];P[J]=q*oe-re*ne,P[J+1]=q*ne+re*oe}}transform(P,I){this._transform(P,I,!1)}realTransform(P,I){this._transform(P,I,!0)}}class x{constructor(P){this.fft_length=P,this.isPowerOfTwo=d(P),this.isPowerOfTwo?(this.fft=new g(P),this.outputBufferSize=2*P):(this.fft=new h(P),this.outputBufferSize=this.fft.bufferSize)}realTransform(P,I){this.fft.realTransform(P,I)}transform(P,I){this.fft.transform(P,I)}}function F(y,P){if(P%2===0||P<=0)throw new Error("Window size must be a positive odd number");let I=new y.constructor(y.length),f=new y.constructor(P),E=Math.floor(P/2);for(let D=0;D<y.length;++D){let O=0;for(let U=-E;U<=E;++U){let W=D+U;W<0?W=Math.abs(W):W>=y.length&&(W=2*(y.length-1)-W),f[O++]=y[W]}f.sort(),I[D]=f[E]}return I}function v(y,P){let I=Math.pow(10,P);return Math.round(y*I)/I}function b(y){let P=Math.round(y);return Math.abs(y)%1===.5?P%2===0?P:P-1:P}function C(y){let P=y.length,I=y[0].length,f=[P+1,I+1],E=Array.from({length:f[0]},()=>Array(f[1]).fill(1/0));E[0][0]=0;let D=Array.from({length:f[0]},()=>Array(f[1]).fill(-1));for(let X=1;X<f[1];++X)for(let J=1;J<f[0];++J){let q=E[J-1][X-1],re=E[J-1][X],oe=E[J][X-1],ne,ye;q<re&&q<oe?(ne=q,ye=0):re<q&&re<oe?(ne=re,ye=1):(ne=oe,ye=2),E[J][X]=y[J-1][X-1]+ne,D[J][X]=ye}for(let X=0;X<f[1];++X)D[0][X]=2;for(let X=0;X<f[0];++X)D[X][0]=1;let O=P,U=I,W=[],z=[];for(;O>0||U>0;)switch(W.push(O-1),z.push(U-1),D[O][U]){case 0:--O,--U;break;case 1:--O;break;case 2:--U;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${O}, ${U}]. Please file a bug report.`)}return W.reverse(),z.reverse(),[W,z]}}),"./src/utils/tensor.js":((e,r,t)=>{t.r(r),t.d(r,{DataTypeMap:()=>n,Tensor:()=>i,cat:()=>I,full:()=>z,full_like:()=>X,interpolate:()=>_,interpolate_4d:()=>u,layer_norm:()=>b,matmul:()=>d,mean:()=>O,mean_pooling:()=>v,ones:()=>J,ones_like:()=>q,permute:()=>c,quantize_embeddings:()=>Y,rand:()=>ne,randn:()=>ye,rfft:()=>g,slice:()=>F,stack:()=>f,std_mean:()=>D,topk:()=>h,zeros:()=>re,zeros_like:()=>oe});var s=t("./src/utils/maths.js"),o=t("./src/backends/onnx.js"),a=t("./src/ops/registry.js");let n=Object.freeze({float32:Float32Array,float16:typeof Float16Array<"u"?Float16Array:Uint16Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array,uint4:Uint8Array,int4:Int8Array});class i{get dims(){return this.ort_tensor.dims}set dims(R){this.ort_tensor.dims=R}get type(){return this.ort_tensor.type}get data(){return this.ort_tensor.data}get size(){return this.ort_tensor.size}get location(){return this.ort_tensor.location}ort_tensor;constructor(...R){return(0,o.isONNXTensor)(R[0])?this.ort_tensor=R[0]:this.ort_tensor=new o.Tensor(R[0],R[1],R[2]),new Proxy(this,{get:(L,ee)=>{if(typeof ee=="string"){let ue=Number(ee);if(Number.isInteger(ue))return L._getitem(ue)}return L[ee]},set:(L,ee,ue)=>L[ee]=ue})}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){let[R,...L]=this.dims;if(L.length>0){let ee=L.reduce((ue,ke)=>ue*ke);for(let ue=0;ue<R;++ue)yield this._subarray(ue,ee,L)}else yield*this.data}_getitem(R){let[L,...ee]=this.dims;if(R=P(R,L),ee.length>0){let ue=ee.reduce((ke,Ie)=>ke*Ie);return this._subarray(R,ue,ee)}else return new i(this.type,[this.data[R]],ee)}indexOf(R){let L=this.data;for(let ee=0;ee<L.length;++ee)if(L[ee]==R)return ee;return-1}_subarray(R,L,ee){let ue=R*L,ke=(R+1)*L,Ie="subarray"in this.data?this.data.subarray(ue,ke):this.data.slice(ue,ke);return new i(this.type,Ie,ee)}item(){let R=this.data;if(R.length!==1)throw new Error(`a Tensor with ${R.length} elements cannot be converted to Scalar`);return R[0]}tolist(){return l(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=1/(1+Math.exp(-R[L]));return this}map(R){return this.clone().map_(R)}map_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]=R(L[ee],ee,L);return this}mul(R){return this.clone().mul_(R)}mul_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]*=R;return this}div(R){return this.clone().div_(R)}div_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]/=R;return this}add(R){return this.clone().add_(R)}add_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]+=R;return this}sub(R){return this.clone().sub_(R)}sub_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]-=R;return this}clone(){return new i(this.type,this.data.slice(),this.dims.slice())}slice(...R){let L=[],ee=[];for(let A=0;A<this.dims.length;++A){let le=R[A];if(le==null)ee.push([0,this.dims[A]]),L.push(this.dims[A]);else if(typeof le=="number")le=P(le,this.dims[A],A),ee.push([le,le+1]);else if(Array.isArray(le)&&le.length===2){let[ge,be]=le;if(ge=ge===null?0:P(ge,this.dims[A],A,!1),be=be===null?this.dims[A]:P(be,this.dims[A],A,!1),ge>be)throw new Error(`Invalid slice: ${le}`);let Ae=[Math.max(ge,0),Math.min(be,this.dims[A])];ee.push(Ae),L.push(Ae[1]-Ae[0])}else throw new Error(`Invalid slice: ${le}`)}let ue=ee.map(([A,le])=>le-A),ke=ue.reduce((A,le)=>A*le),Ie=this.data,Le=new Ie.constructor(ke),rt=this.stride(),we=!0;for(let A=1;A<ue.length;++A)if(ee[A][0]!==0||ee[A][1]!==this.dims[A]){we=!1;break}if(we){let A=ee[0][0]*rt[0],le=ee[0][1]*rt[0];if(ArrayBuffer.isView(Ie))Le.set(Ie.subarray(A,le));else if(Array.isArray(Ie)){let ge=Ie.slice(A,le);for(let be=0;be<ge.length;++be)Le[be]=ge[be]}else throw new Error("Unsupported data type for slicing")}else for(let A=0;A<ke;++A){let le=0;for(let ge=ue.length-1,be=A;ge>=0;--ge){let Ae=ue[ge];le+=(be%Ae+ee[ge][0])*rt[ge],be=Math.floor(be/Ae)}Le[A]=Ie[le]}return new i(this.type,Le,L)}permute(...R){return c(this,R)}transpose(...R){return this.permute(...R)}sum(R=null,L=!1){return this.norm(1,R,L)}norm(R="fro",L=null,ee=!1){if(R==="fro")R=2;else if(typeof R=="string")throw Error(`Unsupported norm: ${R}`);let ue=this.data,ke=(we,A)=>we+A**R;if(L===null){let we=ue.reduce(ke,0)**(1/R);return new i(this.type,[we],[])}let[Ie,Le,rt]=E(ke,this,L,ee);if(R!==1)for(let we=0;we<Le.length;++we)Le[we]=Le[we]**(1/R);return new i(Ie,Le,rt)}normalize_(R=2,L=1){L=P(L,this.dims.length);let ee=this.norm(R,L,!0),ue=this.data,ke=ee.data;for(let Ie=0;Ie<ue.length;++Ie){let Le=0;for(let rt=this.dims.length-1,we=Ie,A=1;rt>=0;--rt){let le=this.dims[rt];if(rt!==L){let ge=we%le;Le+=ge*A,A*=this.dims[rt]}we=Math.floor(we/le)}ue[Ie]/=ke[Le]}return this}normalize(R=2,L=1){return this.clone().normalize_(R,L)}stride(){return U(this.dims)}squeeze(R=null){return new i(this.type,this.data,C(this.dims,R))}squeeze_(R=null){return this.dims=C(this.dims,R),this}unsqueeze(R=null){return new i(this.type,this.data,y(this.dims,R))}unsqueeze_(R=null){return this.dims=y(this.dims,R),this}flatten_(R=0,L=-1){L=(L+this.dims.length)%this.dims.length;let ee=this.dims.slice(0,R),ue=this.dims.slice(R,L+1),ke=this.dims.slice(L+1);return this.dims=[...ee,ue.reduce((Ie,Le)=>Ie*Le,1),...ke],this}flatten(R=0,L=-1){return this.clone().flatten_(R,L)}view(...R){let L=-1;for(let ue=0;ue<R.length;++ue)if(R[ue]===-1){if(L!==-1)throw new Error("Only one dimension can be inferred");L=ue}let ee=this.data;if(L!==-1){let ue=R.reduce((ke,Ie,Le)=>Le!==L?ke*Ie:ke,1);R[L]=ee.length/ue}return new i(this.type,ee,R)}neg_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=-R[L];return this}neg(){return this.clone().neg_()}gt(R){let L=new Uint8Array(this.data.length),ee=this.data;for(let ue=0;ue<ee.length;++ue)L[ue]=ee[ue]>R?1:0;return new i("bool",L,this.dims)}lt(R){let L=new Uint8Array(this.data.length),ee=this.data;for(let ue=0;ue<ee.length;++ue)L[ue]=ee[ue]<R?1:0;return new i("bool",L,this.dims)}clamp_(R,L){let ee=this.data;for(let ue=0;ue<ee.length;++ue)ee[ue]=Math.min(Math.max(ee[ue],R),L);return this}clamp(R,L){return this.clone().clamp_(R,L)}round_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=Math.round(R[L]);return this}round(){return this.clone().round_()}mean(R=null,L=!1){return O(this,R,L)}min(R=null,L=!1){if(R===null){let Ie=(0,s.min)(this.data)[0];return new i(this.type,[Ie],[])}let[ee,ue,ke]=E((Ie,Le)=>Math.min(Ie,Le),this,R,L,1/0);return new i(ee,ue,ke)}max(R=null,L=!1){if(R===null){let Ie=(0,s.max)(this.data)[0];return new i(this.type,[Ie],[])}let[ee,ue,ke]=E((Ie,Le)=>Math.max(Ie,Le),this,R,L,-1/0);return new i(ee,ue,ke)}argmin(R=null,L=!1){if(R!==null)throw new Error("`dim !== null` not yet implemented.");let ee=(0,s.min)(this.data)[1];return new i("int64",[BigInt(ee)],[])}argmax(R=null,L=!1){if(R!==null)throw new Error("`dim !== null` not yet implemented.");let ee=(0,s.max)(this.data)[1];return new i("int64",[BigInt(ee)],[])}to(R){if(this.type===R)return this;if(!n.hasOwnProperty(R))throw new Error(`Unsupported type: ${R}`);let L,ee=["int64","uint64"].includes(this.type),ue=["int64","uint64"].includes(R);return ee&&!ue?L=Number:!ee&&ue&&(["float16","float32","float64"].includes(this.type)?L=ke=>BigInt(Math.floor(ke)):L=BigInt),new i(R,n[R].from(this.data,L),this.dims)}}function l(H,R){let L=H.length,ee=R.reduce((ke,Ie)=>ke*Ie);if(L!==ee)throw Error(`cannot reshape array of size ${L} into shape (${R})`);let ue=H;for(let ke=R.length-1;ke>=0;ke--)ue=ue.reduce((Ie,Le)=>{let rt=Ie[Ie.length-1];return rt.length<R[ke]?rt.push(Le):Ie.push([Le]),Ie},[[]]);return ue[0]}function c(H,R){let[L,ee]=(0,s.permute_data)(H.data,H.dims,R);return new i(H.type,L,ee)}function _(H,[R,L],ee="bilinear",ue=!1){let ke=H.dims.at(-3)??1,Ie=H.dims.at(-2),Le=H.dims.at(-1),rt=(0,s.interpolate_data)(H.data,[ke,Ie,Le],[R,L],ee,ue);return new i(H.type,rt,[ke,R,L])}async function u(H,{size:R=null,mode:L="bilinear"}={}){if(H.dims.length!==4)throw new Error("`interpolate_4d` currently only supports 4D input.");if(!R)throw new Error("`interpolate_4d` requires a `size` argument.");let ee;if(R.length===2)ee=[...H.dims.slice(0,2),...R];else if(R.length===3)ee=[H.dims[0],...R];else if(R.length===4)ee=R;else throw new Error("`size` must be of length 2, 3, or 4.");let ue;if(L==="nearest")ue=await a.TensorOpRegistry.nearest_interpolate_4d;else if(L==="bilinear")ue=await a.TensorOpRegistry.bilinear_interpolate_4d;else if(L==="bicubic")ue=await a.TensorOpRegistry.bicubic_interpolate_4d;else throw new Error(`Unsupported mode: ${L}`);let ke=new i("int64",new BigInt64Array(ee.map(BigInt)),[ee.length]);return await ue({x:H,s:ke})}async function d(H,R){return await(await a.TensorOpRegistry.matmul)({a:H,b:R})}async function g(H,R){return await(await a.TensorOpRegistry.rfft)({x:H,a:R})}async function h(H,R){let L=await a.TensorOpRegistry.top_k;return R==null?R=H.dims.at(-1):R=Math.min(R,H.dims.at(-1)),await L({x:H,k:new i("int64",[BigInt(R)],[1])})}let x=H=>new i("int64",H,[H.length]);async function F(H,R,L,ee,ue){return await(await a.TensorOpRegistry.slice)({x:H,s:x(R),e:x(L),a:x(ee),t:x(ue??new Array(ee.length).fill(1))})}function v(H,R){let L=H.data,ee=R.data,ue=[H.dims[0],H.dims[2]],ke=new L.constructor(ue[0]*ue[1]),[Ie,Le,rt]=H.dims,we=0;for(let A=0;A<Ie;++A){let le=A*rt*Le;for(let ge=0;ge<rt;++ge){let be=0,Ae=0,ve=A*Le,pe=le+ge;for(let fe=0;fe<Le;++fe){let Te=Number(ee[ve+fe]);Ae+=Te,be+=L[pe+fe*rt]*Te}let Pe=be/Ae;ke[we++]=Pe}}return new i(H.type,ke,ue)}function b(H,R,{eps:L=1e-5}={}){if(H.dims.length!==2)throw new Error("`layer_norm` currently only supports 2D input.");let[ee,ue]=H.dims;if(R.length!==1&&R[0]!==ue)throw new Error("`normalized_shape` must be a 1D array with shape `[input.dims[1]]`.");let[ke,Ie]=D(H,1,0,!0),Le=ke.data,rt=Ie.data,we=H.data,A=new we.constructor(we.length);for(let le=0;le<ee;++le){let ge=le*ue;for(let be=0;be<ue;++be){let Ae=ge+be;A[Ae]=(we[Ae]-rt[le])/(Le[le]+L)}}return new i(H.type,A,H.dims)}function C(H,R){return H=H.slice(),R===null?H=H.filter(L=>L!==1):typeof R=="number"?H[R]===1&&H.splice(R,1):Array.isArray(R)&&(H=H.filter((L,ee)=>L!==1||!R.includes(ee))),H}function y(H,R){return R=P(R,H.length+1),H=H.slice(),H.splice(R,0,1),H}function P(H,R,L=null,ee=!0){if(H<-R||H>=R){if(ee)throw new Error(`IndexError: index ${H} is out of bounds for dimension${L===null?"":" "+L} with size ${R}`);return H<-R?0:R}return H<0&&(H=(H%R+R)%R),H}function I(H,R=0){R=P(R,H[0].dims.length);let L=H[0].dims.slice();L[R]=H.reduce((Ie,Le)=>Ie+Le.dims[R],0);let ee=L.reduce((Ie,Le)=>Ie*Le,1),ue=new H[0].data.constructor(ee),ke=H[0].type;if(R===0){let Ie=0;for(let Le of H){let rt=Le.data;ue.set(rt,Ie),Ie+=rt.length}}else{let Ie=0;for(let Le=0;Le<H.length;++Le){let{data:rt,dims:we}=H[Le];for(let A=0;A<rt.length;++A){let le=0;for(let ge=we.length-1,be=A,Ae=1;ge>=0;--ge){let ve=we[ge],pe=be%ve;ge===R&&(pe+=Ie),le+=pe*Ae,Ae*=L[ge],be=Math.floor(be/ve)}ue[le]=rt[A]}Ie+=we[R]}}return new i(ke,ue,L)}function f(H,R=0){return I(H.map(L=>L.unsqueeze(R)),R)}function E(H,R,L=null,ee=!1,ue=null){let ke=R.data,Ie=R.dims;L=P(L,Ie.length);let Le=Ie.slice();Le[L]=1;let rt=new ke.constructor(ke.length/Ie[L]);ue!==null&&rt.fill(ue);for(let we=0;we<ke.length;++we){let A=0;for(let le=Ie.length-1,ge=we,be=1;le>=0;--le){let Ae=Ie[le];if(le!==L){let ve=ge%Ae;A+=ve*be,be*=Le[le]}ge=Math.floor(ge/Ae)}rt[A]=H(rt[A],ke[we],we,A)}return ee||Le.splice(L,1),[R.type,rt,Le]}function D(H,R=null,L=1,ee=!1){let ue=H.data,ke=H.dims;if(R===null){let be=ue.reduce((Pe,fe)=>Pe+fe,0)/ue.length,Ae=Math.sqrt(ue.reduce((Pe,fe)=>Pe+(fe-be)**2,0)/(ue.length-L)),ve=new i(H.type,[be],[]);return[new i(H.type,[Ae],[]),ve]}R=P(R,ke.length);let Ie=O(H,R,ee),Le=Ie.data,[rt,we,A]=E((ge,be,Ae,ve)=>ge+(be-Le[ve])**2,H,R,ee);for(let ge=0;ge<we.length;++ge)we[ge]=Math.sqrt(we[ge]/(ke[R]-L));return[new i(rt,we,A),Ie]}function O(H,R=null,L=!1){let ee=H.dims,ue=H.data;if(R===null){let rt=ue.reduce((we,A)=>we+A,0);return new i(H.type,[rt/ue.length],[])}R=P(R,ee.length);let[ke,Ie,Le]=E((rt,we)=>rt+we,H,R,L);if(ee[R]!==1)for(let rt=0;rt<Ie.length;++rt)Ie[rt]/=ee[R];return new i(ke,Ie,Le)}function U(H){let R=new Array(H.length);for(let L=H.length-1,ee=1;L>=0;--L)R[L]=ee,ee*=H[L];return R}function W(H,R,L,ee){let ue=H.reduce((ke,Ie)=>ke*Ie,1);return new i(L,new ee(ue).fill(R),H)}function z(H,R){let L,ee;if(typeof R=="number")L="float32",ee=Float32Array;else if(typeof R=="bigint")L="int64",ee=BigInt64Array;else if(typeof R=="boolean")L="bool",ee=Uint8Array;else throw new Error(`Unsupported data type: ${typeof R}`);return W(H,R,L,ee)}function X(H,R){return z(H.dims,R)}function J(H){return W(H,1n,"int64",BigInt64Array)}function q(H){return J(H.dims)}function re(H){return W(H,0n,"int64",BigInt64Array)}function oe(H){return re(H.dims)}function ne(H){let R=H.reduce((L,ee)=>L*ee,1);return new i("float32",Float32Array.from({length:R},()=>Math.random()),H)}function ye(H){let R=H.reduce((ee,ue)=>ee*ue,1);function L(){let ee=1-Math.random(),ue=1-Math.random();return Math.sqrt(-2*Math.log(ee))*Math.cos(2*Math.PI*ue)}return new i("float32",Float32Array.from({length:R},()=>L()),H)}function Y(H,R){if(H.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(H.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(R))throw new Error("The precision must be either 'binary' or 'ubinary'");let L=R==="binary",ee=L?"int8":"uint8",ue=L?Int8Array:Uint8Array,ke=H.data,Ie=new ue(ke.length/8);for(let Le=0;Le<ke.length;++Le){let rt=ke[Le]>0?1:0,we=Math.floor(Le/8),A=Le%8;Ie[we]|=rt<<7-A,L&&A===0&&(Ie[we]-=128)}return new i(ee,Ie,[H.dims[0],H.dims[1]/8])}}),"./src/utils/video.js":((e,r,t)=>{t.r(r),t.d(r,{RawVideo:()=>n,RawVideoFrame:()=>a,load_video:()=>i});var s=t("./src/utils/image.js"),o=t("./src/env.js");class a{constructor(c,_){this.image=c,this.timestamp=_}}class n{constructor(c,_){c.length>0&&c[0]instanceof s.RawImage&&(c=c.map((u,d)=>new a(u,(d+1)/(c.length+1)*_))),this.frames=c,this.duration=_}get width(){return this.frames[0].image.width}get height(){return this.frames[0].image.height}get fps(){return this.frames.length/this.duration}}async function i(l,{num_frames:c=null,fps:_=null}={}){if(!o.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(c==null&&_==null)throw new Error("Either num_frames or fps must be provided.");let u=[],d=document.createElement("video");if(d.crossOrigin="anonymous",d.muted=!0,typeof l=="string")d.src=l;else if(l instanceof Blob)d.src=URL.createObjectURL(l);else if(l instanceof HTMLVideoElement)d.src=l.src;else throw new Error("Invalid URL or video element provided.");if(await new Promise(C=>d.onloadedmetadata=C),d.seekable.start(0)===d.seekable.end(0)){let y=await(await fetch(d.src)).blob();d.src=URL.createObjectURL(y),await new Promise(P=>d.onloadedmetadata=P)}let g=d.duration,h,x;c!=null?(h=c,x=c===1?0:g/(c-1)):(x=1/_,h=Math.floor(g/x));let F=[];for(let C=0;C<h;++C)F.push(c===1?g/2:C*x);let v=document.createElement("canvas");v.width=d.videoWidth,v.height=d.videoHeight;let b=v.getContext("2d",{willReadFrequently:!0});for(let C of F){d.currentTime=C,await new Promise(f=>{d.onseeked=f}),b.drawImage(d,0,0,v.width,v.height);let y=b.getImageData(0,0,v.width,v.height),P=new s.RawImage(y.data,v.width,v.height,4),I=new a(P,C);u.push(I)}return d.remove(),new n(u,g)}})},I0={};function Vt(e){var r=I0[e];if(r!==void 0)return r.exports;var t=I0[e]={exports:{}};return gE[e](t,t.exports,Vt),t.exports}(()=>{var e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,r;Vt.t=function(t,s){if(s&1&&(t=this(t)),s&8||typeof t=="object"&&t&&(s&4&&t.__esModule||s&16&&typeof t.then=="function"))return t;var o=Object.create(null);Vt.r(o);var a={};r=r||[null,e({}),e([]),e(e)];for(var n=s&2&&t;typeof n=="object"&&!~r.indexOf(n);n=e(n))Object.getOwnPropertyNames(n).forEach(i=>a[i]=()=>t[i]);return a.default=()=>t,Vt.d(o,a),o}})();Vt.d=(e,r)=>{for(var t in r)Vt.o(r,t)&&!Vt.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})};Vt.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);Vt.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var p={};(()=>{Vt.r(p),Vt.d(p,{ASTFeatureExtractor:()=>u.ASTFeatureExtractor,ASTForAudioClassification:()=>t.ASTForAudioClassification,ASTModel:()=>t.ASTModel,ASTPreTrainedModel:()=>t.ASTPreTrainedModel,AlbertForMaskedLM:()=>t.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>t.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>t.AlbertForSequenceClassification,AlbertModel:()=>t.AlbertModel,AlbertPreTrainedModel:()=>t.AlbertPreTrainedModel,AlbertTokenizer:()=>s.AlbertTokenizer,ArceeForCausalLM:()=>t.ArceeForCausalLM,ArceeModel:()=>t.ArceeModel,ArceePreTrainedModel:()=>t.ArceePreTrainedModel,AudioClassificationPipeline:()=>r.AudioClassificationPipeline,AutoConfig:()=>o.AutoConfig,AutoFeatureExtractor:()=>d.AutoFeatureExtractor,AutoImageProcessor:()=>x.AutoImageProcessor,AutoModel:()=>t.AutoModel,AutoModelForAudioClassification:()=>t.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>t.AutoModelForAudioFrameClassification,AutoModelForAudioTextToText:()=>t.AutoModelForAudioTextToText,AutoModelForCTC:()=>t.AutoModelForCTC,AutoModelForCausalLM:()=>t.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>t.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>t.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>t.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>t.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>t.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>t.AutoModelForImageSegmentation,AutoModelForImageTextToText:()=>t.AutoModelForImageTextToText,AutoModelForImageToImage:()=>t.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>t.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>t.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>t.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>t.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>t.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>t.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>t.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>t.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>t.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>t.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>t.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>t.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>t.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>t.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>t.AutoModelForVision2Seq,AutoModelForXVector:()=>t.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>t.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>b.AutoProcessor,AutoTokenizer:()=>s.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>r.AutomaticSpeechRecognitionPipeline,BackgroundRemovalPipeline:()=>r.BackgroundRemovalPipeline,BartForConditionalGeneration:()=>t.BartForConditionalGeneration,BartForSequenceClassification:()=>t.BartForSequenceClassification,BartModel:()=>t.BartModel,BartPretrainedModel:()=>t.BartPretrainedModel,BartTokenizer:()=>s.BartTokenizer,BaseModelOutput:()=>t.BaseModelOutput,BaseStreamer:()=>C.BaseStreamer,BeitFeatureExtractor:()=>h.BeitFeatureExtractor,BeitForImageClassification:()=>t.BeitForImageClassification,BeitModel:()=>t.BeitModel,BeitPreTrainedModel:()=>t.BeitPreTrainedModel,BertForMaskedLM:()=>t.BertForMaskedLM,BertForQuestionAnswering:()=>t.BertForQuestionAnswering,BertForSequenceClassification:()=>t.BertForSequenceClassification,BertForTokenClassification:()=>t.BertForTokenClassification,BertModel:()=>t.BertModel,BertPreTrainedModel:()=>t.BertPreTrainedModel,BertTokenizer:()=>s.BertTokenizer,BitImageProcessor:()=>h.BitImageProcessor,BlenderbotForConditionalGeneration:()=>t.BlenderbotForConditionalGeneration,BlenderbotModel:()=>t.BlenderbotModel,BlenderbotPreTrainedModel:()=>t.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>t.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>t.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>t.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>s.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>s.BlenderbotTokenizer,BloomForCausalLM:()=>t.BloomForCausalLM,BloomModel:()=>t.BloomModel,BloomPreTrainedModel:()=>t.BloomPreTrainedModel,BloomTokenizer:()=>s.BloomTokenizer,CLIPFeatureExtractor:()=>h.CLIPFeatureExtractor,CLIPImageProcessor:()=>h.CLIPImageProcessor,CLIPModel:()=>t.CLIPModel,CLIPPreTrainedModel:()=>t.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>t.CLIPSegForImageSegmentation,CLIPSegModel:()=>t.CLIPSegModel,CLIPSegPreTrainedModel:()=>t.CLIPSegPreTrainedModel,CLIPTextModel:()=>t.CLIPTextModel,CLIPTextModelWithProjection:()=>t.CLIPTextModelWithProjection,CLIPTokenizer:()=>s.CLIPTokenizer,CLIPVisionModel:()=>t.CLIPVisionModel,CLIPVisionModelWithProjection:()=>t.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>t.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>t.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>t.CamembertForSequenceClassification,CamembertForTokenClassification:()=>t.CamembertForTokenClassification,CamembertModel:()=>t.CamembertModel,CamembertPreTrainedModel:()=>t.CamembertPreTrainedModel,CamembertTokenizer:()=>s.CamembertTokenizer,CausalLMOutput:()=>t.CausalLMOutput,CausalLMOutputWithPast:()=>t.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>h.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>t.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>t.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>t.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>u.ClapFeatureExtractor,ClapModel:()=>t.ClapModel,ClapPreTrainedModel:()=>t.ClapPreTrainedModel,ClapTextModelWithProjection:()=>t.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>P.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>t.CodeGenForCausalLM,CodeGenModel:()=>t.CodeGenModel,CodeGenPreTrainedModel:()=>t.CodeGenPreTrainedModel,CodeGenTokenizer:()=>s.CodeGenTokenizer,CodeLlamaTokenizer:()=>s.CodeLlamaTokenizer,CohereForCausalLM:()=>t.CohereForCausalLM,CohereModel:()=>t.CohereModel,CoherePreTrainedModel:()=>t.CoherePreTrainedModel,CohereTokenizer:()=>s.CohereTokenizer,ConvBertForMaskedLM:()=>t.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>t.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>t.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>t.ConvBertForTokenClassification,ConvBertModel:()=>t.ConvBertModel,ConvBertPreTrainedModel:()=>t.ConvBertPreTrainedModel,ConvBertTokenizer:()=>s.ConvBertTokenizer,ConvNextFeatureExtractor:()=>h.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>t.ConvNextForImageClassification,ConvNextImageProcessor:()=>h.ConvNextImageProcessor,ConvNextModel:()=>t.ConvNextModel,ConvNextPreTrainedModel:()=>t.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>t.ConvNextV2ForImageClassification,ConvNextV2Model:()=>t.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>t.ConvNextV2PreTrainedModel,DFineForObjectDetection:()=>t.DFineForObjectDetection,DFineModel:()=>t.DFineModel,DFinePreTrainedModel:()=>t.DFinePreTrainedModel,DINOv3ConvNextModel:()=>t.DINOv3ConvNextModel,DINOv3ConvNextPreTrainedModel:()=>t.DINOv3ConvNextPreTrainedModel,DINOv3ViTImageProcessor:()=>h.DINOv3ViTImageProcessor,DINOv3ViTModel:()=>t.DINOv3ViTModel,DINOv3ViTPreTrainedModel:()=>t.DINOv3ViTPreTrainedModel,DPTFeatureExtractor:()=>h.DPTFeatureExtractor,DPTForDepthEstimation:()=>t.DPTForDepthEstimation,DPTImageProcessor:()=>h.DPTImageProcessor,DPTModel:()=>t.DPTModel,DPTPreTrainedModel:()=>t.DPTPreTrainedModel,DacDecoderModel:()=>t.DacDecoderModel,DacDecoderOutput:()=>t.DacDecoderOutput,DacEncoderModel:()=>t.DacEncoderModel,DacEncoderOutput:()=>t.DacEncoderOutput,DacFeatureExtractor:()=>u.DacFeatureExtractor,DacModel:()=>t.DacModel,DacPreTrainedModel:()=>t.DacPreTrainedModel,DataTypeMap:()=>l.DataTypeMap,DebertaForMaskedLM:()=>t.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>t.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>t.DebertaForSequenceClassification,DebertaForTokenClassification:()=>t.DebertaForTokenClassification,DebertaModel:()=>t.DebertaModel,DebertaPreTrainedModel:()=>t.DebertaPreTrainedModel,DebertaTokenizer:()=>s.DebertaTokenizer,DebertaV2ForMaskedLM:()=>t.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>t.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>t.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>t.DebertaV2ForTokenClassification,DebertaV2Model:()=>t.DebertaV2Model,DebertaV2PreTrainedModel:()=>t.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>s.DebertaV2Tokenizer,DecisionTransformerModel:()=>t.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>t.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>h.DeiTFeatureExtractor,DeiTForImageClassification:()=>t.DeiTForImageClassification,DeiTImageProcessor:()=>h.DeiTImageProcessor,DeiTModel:()=>t.DeiTModel,DeiTPreTrainedModel:()=>t.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>t.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>t.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>r.DepthEstimationPipeline,DepthProForDepthEstimation:()=>t.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>t.DepthProPreTrainedModel,DetrFeatureExtractor:()=>h.DetrFeatureExtractor,DetrForObjectDetection:()=>t.DetrForObjectDetection,DetrForSegmentation:()=>t.DetrForSegmentation,DetrImageProcessor:()=>h.DetrImageProcessor,DetrModel:()=>t.DetrModel,DetrObjectDetectionOutput:()=>t.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>t.DetrPreTrainedModel,DetrSegmentationOutput:()=>t.DetrSegmentationOutput,Dinov2ForImageClassification:()=>t.Dinov2ForImageClassification,Dinov2Model:()=>t.Dinov2Model,Dinov2PreTrainedModel:()=>t.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>t.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>t.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>t.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>t.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>t.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>t.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>t.DistilBertForTokenClassification,DistilBertModel:()=>t.DistilBertModel,DistilBertPreTrainedModel:()=>t.DistilBertPreTrainedModel,DistilBertTokenizer:()=>s.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>r.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>h.DonutFeatureExtractor,DonutImageProcessor:()=>h.DonutImageProcessor,DonutSwinModel:()=>t.DonutSwinModel,DonutSwinPreTrainedModel:()=>t.DonutSwinPreTrainedModel,EdgeTamModel:()=>t.EdgeTamModel,EfficientNetForImageClassification:()=>t.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>h.EfficientNetImageProcessor,EfficientNetModel:()=>t.EfficientNetModel,EfficientNetPreTrainedModel:()=>t.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>t.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>t.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>t.ElectraForSequenceClassification,ElectraForTokenClassification:()=>t.ElectraForTokenClassification,ElectraModel:()=>t.ElectraModel,ElectraPreTrainedModel:()=>t.ElectraPreTrainedModel,ElectraTokenizer:()=>s.ElectraTokenizer,EncodecFeatureExtractor:()=>u.EncodecFeatureExtractor,EosTokenCriteria:()=>y.EosTokenCriteria,Ernie4_5ForCausalLM:()=>t.Ernie4_5ForCausalLM,Ernie4_5Model:()=>t.Ernie4_5Model,Ernie4_5PreTrainedModel:()=>t.Ernie4_5PreTrainedModel,EsmForMaskedLM:()=>t.EsmForMaskedLM,EsmForSequenceClassification:()=>t.EsmForSequenceClassification,EsmForTokenClassification:()=>t.EsmForTokenClassification,EsmModel:()=>t.EsmModel,EsmPreTrainedModel:()=>t.EsmPreTrainedModel,EsmTokenizer:()=>s.EsmTokenizer,ExaoneForCausalLM:()=>t.ExaoneForCausalLM,ExaoneModel:()=>t.ExaoneModel,ExaonePreTrainedModel:()=>t.ExaonePreTrainedModel,FFT:()=>c.FFT,FalconForCausalLM:()=>t.FalconForCausalLM,FalconModel:()=>t.FalconModel,FalconPreTrainedModel:()=>t.FalconPreTrainedModel,FalconTokenizer:()=>s.FalconTokenizer,FastViTForImageClassification:()=>t.FastViTForImageClassification,FastViTModel:()=>t.FastViTModel,FastViTPreTrainedModel:()=>t.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>r.FeatureExtractionPipeline,FeatureExtractor:()=>_.FeatureExtractor,FillMaskPipeline:()=>r.FillMaskPipeline,Florence2ForConditionalGeneration:()=>t.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>t.Florence2PreTrainedModel,Florence2Processor:()=>v.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>P.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>P.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>h.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>t.GLPNForDepthEstimation,GLPNModel:()=>t.GLPNModel,GLPNPreTrainedModel:()=>t.GLPNPreTrainedModel,GPT2LMHeadModel:()=>t.GPT2LMHeadModel,GPT2Model:()=>t.GPT2Model,GPT2PreTrainedModel:()=>t.GPT2PreTrainedModel,GPT2Tokenizer:()=>s.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>t.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>t.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>t.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>t.GPTJForCausalLM,GPTJModel:()=>t.GPTJModel,GPTJPreTrainedModel:()=>t.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>t.GPTNeoForCausalLM,GPTNeoModel:()=>t.GPTNeoModel,GPTNeoPreTrainedModel:()=>t.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>t.GPTNeoXForCausalLM,GPTNeoXModel:()=>t.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>t.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>s.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>t.Gemma2ForCausalLM,Gemma2Model:()=>t.Gemma2Model,Gemma2PreTrainedModel:()=>t.Gemma2PreTrainedModel,Gemma3ForCausalLM:()=>t.Gemma3ForCausalLM,Gemma3Model:()=>t.Gemma3Model,Gemma3PreTrainedModel:()=>t.Gemma3PreTrainedModel,Gemma3nAudioFeatureExtractor:()=>u.Gemma3nAudioFeatureExtractor,Gemma3nForConditionalGeneration:()=>t.Gemma3nForConditionalGeneration,Gemma3nPreTrainedModel:()=>t.Gemma3nPreTrainedModel,Gemma3nProcessor:()=>v.Gemma3nProcessor,GemmaForCausalLM:()=>t.GemmaForCausalLM,GemmaModel:()=>t.GemmaModel,GemmaPreTrainedModel:()=>t.GemmaPreTrainedModel,GemmaTokenizer:()=>s.GemmaTokenizer,GlmForCausalLM:()=>t.GlmForCausalLM,GlmModel:()=>t.GlmModel,GlmPreTrainedModel:()=>t.GlmPreTrainedModel,GraniteForCausalLM:()=>t.GraniteForCausalLM,GraniteModel:()=>t.GraniteModel,GraniteMoeHybridForCausalLM:()=>t.GraniteMoeHybridForCausalLM,GraniteMoeHybridModel:()=>t.GraniteMoeHybridModel,GraniteMoeHybridPreTrainedModel:()=>t.GraniteMoeHybridPreTrainedModel,GranitePreTrainedModel:()=>t.GranitePreTrainedModel,Grok1Tokenizer:()=>s.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>t.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>h.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>t.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>v.GroundingDinoProcessor,GroupViTModel:()=>t.GroupViTModel,GroupViTPreTrainedModel:()=>t.GroupViTPreTrainedModel,HeliumForCausalLM:()=>t.HeliumForCausalLM,HeliumModel:()=>t.HeliumModel,HeliumPreTrainedModel:()=>t.HeliumPreTrainedModel,HerbertTokenizer:()=>s.HerbertTokenizer,HieraForImageClassification:()=>t.HieraForImageClassification,HieraModel:()=>t.HieraModel,HieraPreTrainedModel:()=>t.HieraPreTrainedModel,HubertForCTC:()=>t.HubertForCTC,HubertForSequenceClassification:()=>t.HubertForSequenceClassification,HubertModel:()=>t.HubertModel,HubertPreTrainedModel:()=>t.HubertPreTrainedModel,IJepaForImageClassification:()=>t.IJepaForImageClassification,IJepaModel:()=>t.IJepaModel,IJepaPreTrainedModel:()=>t.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>t.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>h.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>t.Idefics3PreTrainedModel,Idefics3Processor:()=>v.Idefics3Processor,ImageClassificationPipeline:()=>r.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>r.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>u.ImageFeatureExtractor,ImageMattingOutput:()=>t.ImageMattingOutput,ImageProcessor:()=>g.ImageProcessor,ImageSegmentationPipeline:()=>r.ImageSegmentationPipeline,ImageToImagePipeline:()=>r.ImageToImagePipeline,ImageToTextPipeline:()=>r.ImageToTextPipeline,InterruptableStoppingCriteria:()=>y.InterruptableStoppingCriteria,JAISLMHeadModel:()=>t.JAISLMHeadModel,JAISModel:()=>t.JAISModel,JAISPreTrainedModel:()=>t.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>h.JinaCLIPImageProcessor,JinaCLIPModel:()=>t.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>t.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>v.JinaCLIPProcessor,JinaCLIPTextModel:()=>t.JinaCLIPTextModel,JinaCLIPVisionModel:()=>t.JinaCLIPVisionModel,Lfm2ForCausalLM:()=>t.Lfm2ForCausalLM,Lfm2Model:()=>t.Lfm2Model,Lfm2PreTrainedModel:()=>t.Lfm2PreTrainedModel,LiteWhisperForConditionalGeneration:()=>t.LiteWhisperForConditionalGeneration,Llama4ForCausalLM:()=>t.Llama4ForCausalLM,Llama4PreTrainedModel:()=>t.Llama4PreTrainedModel,LlamaForCausalLM:()=>t.LlamaForCausalLM,LlamaModel:()=>t.LlamaModel,LlamaPreTrainedModel:()=>t.LlamaPreTrainedModel,LlamaTokenizer:()=>s.LlamaTokenizer,LlavaForConditionalGeneration:()=>t.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>t.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>h.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>t.LlavaPreTrainedModel,LlavaProcessor:()=>v.LlavaProcessor,LlavaQwen2ForCausalLM:()=>t.LlavaQwen2ForCausalLM,LogitsProcessor:()=>P.LogitsProcessor,LogitsProcessorList:()=>P.LogitsProcessorList,LogitsWarper:()=>P.LogitsWarper,LongT5ForConditionalGeneration:()=>t.LongT5ForConditionalGeneration,LongT5Model:()=>t.LongT5Model,LongT5PreTrainedModel:()=>t.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>t.M2M100ForConditionalGeneration,M2M100Model:()=>t.M2M100Model,M2M100PreTrainedModel:()=>t.M2M100PreTrainedModel,M2M100Tokenizer:()=>s.M2M100Tokenizer,MBart50Tokenizer:()=>s.MBart50Tokenizer,MBartForCausalLM:()=>t.MBartForCausalLM,MBartForConditionalGeneration:()=>t.MBartForConditionalGeneration,MBartForSequenceClassification:()=>t.MBartForSequenceClassification,MBartModel:()=>t.MBartModel,MBartPreTrainedModel:()=>t.MBartPreTrainedModel,MBartTokenizer:()=>s.MBartTokenizer,MPNetForMaskedLM:()=>t.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>t.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>t.MPNetForSequenceClassification,MPNetForTokenClassification:()=>t.MPNetForTokenClassification,MPNetModel:()=>t.MPNetModel,MPNetPreTrainedModel:()=>t.MPNetPreTrainedModel,MPNetTokenizer:()=>s.MPNetTokenizer,MT5ForConditionalGeneration:()=>t.MT5ForConditionalGeneration,MT5Model:()=>t.MT5Model,MT5PreTrainedModel:()=>t.MT5PreTrainedModel,MarianMTModel:()=>t.MarianMTModel,MarianModel:()=>t.MarianModel,MarianPreTrainedModel:()=>t.MarianPreTrainedModel,MarianTokenizer:()=>s.MarianTokenizer,Mask2FormerImageProcessor:()=>h.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>h.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>t.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>h.MaskFormerImageProcessor,MaskFormerModel:()=>t.MaskFormerModel,MaskFormerPreTrainedModel:()=>t.MaskFormerPreTrainedModel,MaskedLMOutput:()=>t.MaskedLMOutput,MaxLengthCriteria:()=>y.MaxLengthCriteria,Metric3DForDepthEstimation:()=>t.Metric3DForDepthEstimation,Metric3DPreTrainedModel:()=>t.Metric3DPreTrainedModel,Metric3Dv2ForDepthEstimation:()=>t.Metric3Dv2ForDepthEstimation,Metric3Dv2PreTrainedModel:()=>t.Metric3Dv2PreTrainedModel,MgpstrForSceneTextRecognition:()=>t.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>t.MgpstrModelOutput,MgpstrPreTrainedModel:()=>t.MgpstrPreTrainedModel,MgpstrProcessor:()=>v.MgpstrProcessor,MgpstrTokenizer:()=>s.MgpstrTokenizer,MimiDecoderModel:()=>t.MimiDecoderModel,MimiDecoderOutput:()=>t.MimiDecoderOutput,MimiEncoderModel:()=>t.MimiEncoderModel,MimiEncoderOutput:()=>t.MimiEncoderOutput,MimiModel:()=>t.MimiModel,MimiPreTrainedModel:()=>t.MimiPreTrainedModel,MinLengthLogitsProcessor:()=>P.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>P.MinNewTokensLengthLogitsProcessor,Ministral3ForCausalLM:()=>t.Ministral3ForCausalLM,Ministral3Model:()=>t.Ministral3Model,Ministral3PreTrainedModel:()=>t.Ministral3PreTrainedModel,MinistralForCausalLM:()=>t.MinistralForCausalLM,MinistralModel:()=>t.MinistralModel,MinistralPreTrainedModel:()=>t.MinistralPreTrainedModel,Mistral3ForConditionalGeneration:()=>t.Mistral3ForConditionalGeneration,MistralForCausalLM:()=>t.MistralForCausalLM,MistralModel:()=>t.MistralModel,MistralPreTrainedModel:()=>t.MistralPreTrainedModel,MobileBertForMaskedLM:()=>t.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>t.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>t.MobileBertForSequenceClassification,MobileBertModel:()=>t.MobileBertModel,MobileBertPreTrainedModel:()=>t.MobileBertPreTrainedModel,MobileBertTokenizer:()=>s.MobileBertTokenizer,MobileLLMForCausalLM:()=>t.MobileLLMForCausalLM,MobileLLMModel:()=>t.MobileLLMModel,MobileLLMPreTrainedModel:()=>t.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>h.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>t.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>t.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>h.MobileNetV1ImageProcessor,MobileNetV1Model:()=>t.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>t.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>h.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>t.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>t.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>h.MobileNetV2ImageProcessor,MobileNetV2Model:()=>t.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>t.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>h.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>t.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>t.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>h.MobileNetV3ImageProcessor,MobileNetV3Model:()=>t.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>t.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>h.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>t.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>t.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>h.MobileNetV4ImageProcessor,MobileNetV4Model:()=>t.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>t.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>h.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>t.MobileViTForImageClassification,MobileViTImageProcessor:()=>h.MobileViTImageProcessor,MobileViTModel:()=>t.MobileViTModel,MobileViTPreTrainedModel:()=>t.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>t.MobileViTV2ForImageClassification,MobileViTV2Model:()=>t.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>t.MobileViTV2PreTrainedModel,ModelOutput:()=>t.ModelOutput,ModernBertDecoderForCausalLM:()=>t.ModernBertDecoderForCausalLM,ModernBertDecoderModel:()=>t.ModernBertDecoderModel,ModernBertDecoderPreTrainedModel:()=>t.ModernBertDecoderPreTrainedModel,ModernBertForMaskedLM:()=>t.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>t.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>t.ModernBertForTokenClassification,ModernBertModel:()=>t.ModernBertModel,ModernBertPreTrainedModel:()=>t.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>t.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>u.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>t.MoonshineForConditionalGeneration,MoonshineModel:()=>t.MoonshineModel,MoonshinePreTrainedModel:()=>t.MoonshinePreTrainedModel,MoonshineProcessor:()=>v.MoonshineProcessor,MptForCausalLM:()=>t.MptForCausalLM,MptModel:()=>t.MptModel,MptPreTrainedModel:()=>t.MptPreTrainedModel,MultiModalityCausalLM:()=>t.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>t.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>t.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>t.MusicgenForConditionalGeneration,MusicgenModel:()=>t.MusicgenModel,MusicgenPreTrainedModel:()=>t.MusicgenPreTrainedModel,NanoChatForCausalLM:()=>t.NanoChatForCausalLM,NanoChatModel:()=>t.NanoChatModel,NanoChatPreTrainedModel:()=>t.NanoChatPreTrainedModel,NeoBertForMaskedLM:()=>t.NeoBertForMaskedLM,NeoBertForQuestionAnswering:()=>t.NeoBertForQuestionAnswering,NeoBertForSequenceClassification:()=>t.NeoBertForSequenceClassification,NeoBertForTokenClassification:()=>t.NeoBertForTokenClassification,NeoBertModel:()=>t.NeoBertModel,NeoBertPreTrainedModel:()=>t.NeoBertPreTrainedModel,NllbTokenizer:()=>s.NllbTokenizer,NoBadWordsLogitsProcessor:()=>P.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>P.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>t.NomicBertModel,NomicBertPreTrainedModel:()=>t.NomicBertPreTrainedModel,NougatImageProcessor:()=>h.NougatImageProcessor,NougatTokenizer:()=>s.NougatTokenizer,OPTForCausalLM:()=>t.OPTForCausalLM,OPTModel:()=>t.OPTModel,OPTPreTrainedModel:()=>t.OPTPreTrainedModel,ObjectDetectionPipeline:()=>r.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>t.Olmo2ForCausalLM,Olmo2Model:()=>t.Olmo2Model,Olmo2PreTrainedModel:()=>t.Olmo2PreTrainedModel,OlmoForCausalLM:()=>t.OlmoForCausalLM,OlmoModel:()=>t.OlmoModel,OlmoPreTrainedModel:()=>t.OlmoPreTrainedModel,OpenELMForCausalLM:()=>t.OpenELMForCausalLM,OpenELMModel:()=>t.OpenELMModel,OpenELMPreTrainedModel:()=>t.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>h.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>t.OwlViTForObjectDetection,OwlViTImageProcessor:()=>h.OwlViTImageProcessor,OwlViTModel:()=>t.OwlViTModel,OwlViTPreTrainedModel:()=>t.OwlViTPreTrainedModel,OwlViTProcessor:()=>v.OwlViTProcessor,Owlv2ForObjectDetection:()=>t.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>h.Owlv2ImageProcessor,Owlv2Model:()=>t.Owlv2Model,Owlv2PreTrainedModel:()=>t.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>t.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>t.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>v.PaliGemmaProcessor,ParakeetFeatureExtractor:()=>u.ParakeetFeatureExtractor,ParakeetForCTC:()=>t.ParakeetForCTC,ParakeetPreTrainedModel:()=>t.ParakeetPreTrainedModel,PatchTSMixerForPrediction:()=>t.PatchTSMixerForPrediction,PatchTSMixerModel:()=>t.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>t.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>t.PatchTSTForPrediction,PatchTSTModel:()=>t.PatchTSTModel,PatchTSTPreTrainedModel:()=>t.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>t.Phi3ForCausalLM,Phi3Model:()=>t.Phi3Model,Phi3PreTrainedModel:()=>t.Phi3PreTrainedModel,Phi3VForCausalLM:()=>t.Phi3VForCausalLM,Phi3VImageProcessor:()=>h.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>t.Phi3VPreTrainedModel,Phi3VProcessor:()=>v.Phi3VProcessor,PhiForCausalLM:()=>t.PhiForCausalLM,PhiModel:()=>t.PhiModel,PhiPreTrainedModel:()=>t.PhiPreTrainedModel,Pipeline:()=>r.Pipeline,PixtralImageProcessor:()=>h.PixtralImageProcessor,PixtralProcessor:()=>v.PixtralProcessor,PreTrainedModel:()=>t.PreTrainedModel,PreTrainedTokenizer:()=>s.PreTrainedTokenizer,PretrainedConfig:()=>o.PretrainedConfig,PretrainedMixin:()=>t.PretrainedMixin,Processor:()=>F.Processor,PvtForImageClassification:()=>t.PvtForImageClassification,PvtImageProcessor:()=>h.PvtImageProcessor,PvtModel:()=>t.PvtModel,PvtPreTrainedModel:()=>t.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>u.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>t.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>t.PyAnnoteModel,PyAnnotePreTrainedModel:()=>t.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>v.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>t.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>r.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>t.Qwen2ForCausalLM,Qwen2Model:()=>t.Qwen2Model,Qwen2PreTrainedModel:()=>t.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>s.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>t.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>h.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>t.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>v.Qwen2VLProcessor,Qwen3ForCausalLM:()=>t.Qwen3ForCausalLM,Qwen3Model:()=>t.Qwen3Model,Qwen3PreTrainedModel:()=>t.Qwen3PreTrainedModel,RFDetrForObjectDetection:()=>t.RFDetrForObjectDetection,RFDetrModel:()=>t.RFDetrModel,RFDetrObjectDetectionOutput:()=>t.RFDetrObjectDetectionOutput,RFDetrPreTrainedModel:()=>t.RFDetrPreTrainedModel,RTDetrForObjectDetection:()=>t.RTDetrForObjectDetection,RTDetrImageProcessor:()=>h.RTDetrImageProcessor,RTDetrModel:()=>t.RTDetrModel,RTDetrObjectDetectionOutput:()=>t.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>t.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>t.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>t.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>t.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>t.RTDetrV2PreTrainedModel,RawAudio:()=>a.RawAudio,RawImage:()=>n.RawImage,RawVideo:()=>i.RawVideo,RawVideoFrame:()=>i.RawVideoFrame,RepetitionPenaltyLogitsProcessor:()=>P.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>t.ResNetForImageClassification,ResNetModel:()=>t.ResNetModel,ResNetPreTrainedModel:()=>t.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>t.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>t.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>t.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>t.RoFormerForTokenClassification,RoFormerModel:()=>t.RoFormerModel,RoFormerPreTrainedModel:()=>t.RoFormerPreTrainedModel,RoFormerTokenizer:()=>s.RoFormerTokenizer,RobertaForMaskedLM:()=>t.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>t.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>t.RobertaForSequenceClassification,RobertaForTokenClassification:()=>t.RobertaForTokenClassification,RobertaModel:()=>t.RobertaModel,RobertaPreTrainedModel:()=>t.RobertaPreTrainedModel,RobertaTokenizer:()=>s.RobertaTokenizer,Sam2ImageProcessor:()=>h.Sam2ImageProcessor,Sam2ImageSegmentationOutput:()=>t.Sam2ImageSegmentationOutput,Sam2Model:()=>t.Sam2Model,Sam2PreTrainedModel:()=>t.Sam2PreTrainedModel,Sam2Processor:()=>v.Sam2Processor,Sam2VideoProcessor:()=>v.Sam2VideoProcessor,Sam3ImageProcessor:()=>h.Sam3ImageProcessor,Sam3TrackerModel:()=>t.Sam3TrackerModel,SamImageProcessor:()=>h.SamImageProcessor,SamImageSegmentationOutput:()=>t.SamImageSegmentationOutput,SamModel:()=>t.SamModel,SamPreTrainedModel:()=>t.SamPreTrainedModel,SamProcessor:()=>v.SamProcessor,SapiensForDepthEstimation:()=>t.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>t.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>t.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>t.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>h.SegformerFeatureExtractor,SegformerForImageClassification:()=>t.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>t.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>h.SegformerImageProcessor,SegformerModel:()=>t.SegformerModel,SegformerPreTrainedModel:()=>t.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>t.Seq2SeqLMOutput,SequenceClassifierOutput:()=>t.SequenceClassifierOutput,SiglipImageProcessor:()=>h.SiglipImageProcessor,SiglipModel:()=>t.SiglipModel,SiglipPreTrainedModel:()=>t.SiglipPreTrainedModel,SiglipTextModel:()=>t.SiglipTextModel,SiglipTokenizer:()=>s.SiglipTokenizer,SiglipVisionModel:()=>t.SiglipVisionModel,SmolLM3ForCausalLM:()=>t.SmolLM3ForCausalLM,SmolLM3Model:()=>t.SmolLM3Model,SmolLM3PreTrainedModel:()=>t.SmolLM3PreTrainedModel,SmolVLMForConditionalGeneration:()=>t.SmolVLMForConditionalGeneration,SmolVLMImageProcessor:()=>h.SmolVLMImageProcessor,SmolVLMProcessor:()=>v.SmolVLMProcessor,SnacDecoderModel:()=>t.SnacDecoderModel,SnacEncoderModel:()=>t.SnacEncoderModel,SnacFeatureExtractor:()=>u.SnacFeatureExtractor,SnacModel:()=>t.SnacModel,SnacPreTrainedModel:()=>t.SnacPreTrainedModel,SpeechT5FeatureExtractor:()=>u.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>t.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>t.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>t.SpeechT5HifiGan,SpeechT5Model:()=>t.SpeechT5Model,SpeechT5PreTrainedModel:()=>t.SpeechT5PreTrainedModel,SpeechT5Processor:()=>v.SpeechT5Processor,SpeechT5Tokenizer:()=>s.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>t.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>t.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>t.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>t.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>t.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>s.SqueezeBertTokenizer,StableLmForCausalLM:()=>t.StableLmForCausalLM,StableLmModel:()=>t.StableLmModel,StableLmPreTrainedModel:()=>t.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>t.Starcoder2ForCausalLM,Starcoder2Model:()=>t.Starcoder2Model,Starcoder2PreTrainedModel:()=>t.Starcoder2PreTrainedModel,StoppingCriteria:()=>y.StoppingCriteria,StoppingCriteriaList:()=>y.StoppingCriteriaList,StyleTextToSpeech2Model:()=>t.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>t.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>r.SummarizationPipeline,SupertonicForConditionalGeneration:()=>t.SupertonicForConditionalGeneration,SupertonicPreTrainedModel:()=>t.SupertonicPreTrainedModel,SuppressTokensAtBeginLogitsProcessor:()=>P.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>t.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>h.Swin2SRImageProcessor,Swin2SRModel:()=>t.Swin2SRModel,Swin2SRPreTrainedModel:()=>t.Swin2SRPreTrainedModel,SwinForImageClassification:()=>t.SwinForImageClassification,SwinForSemanticSegmentation:()=>t.SwinForSemanticSegmentation,SwinModel:()=>t.SwinModel,SwinPreTrainedModel:()=>t.SwinPreTrainedModel,T5ForConditionalGeneration:()=>t.T5ForConditionalGeneration,T5Model:()=>t.T5Model,T5PreTrainedModel:()=>t.T5PreTrainedModel,T5Tokenizer:()=>s.T5Tokenizer,TableTransformerForObjectDetection:()=>t.TableTransformerForObjectDetection,TableTransformerModel:()=>t.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>t.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>t.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>P.TemperatureLogitsWarper,Tensor:()=>l.Tensor,Text2TextGenerationPipeline:()=>r.Text2TextGenerationPipeline,TextClassificationPipeline:()=>r.TextClassificationPipeline,TextGenerationPipeline:()=>r.TextGenerationPipeline,TextStreamer:()=>C.TextStreamer,TextToAudioPipeline:()=>r.TextToAudioPipeline,TokenClassificationPipeline:()=>r.TokenClassificationPipeline,TokenClassifierOutput:()=>t.TokenClassifierOutput,TokenizerModel:()=>s.TokenizerModel,TopKLogitsWarper:()=>P.TopKLogitsWarper,TopPLogitsWarper:()=>P.TopPLogitsWarper,TrOCRForCausalLM:()=>t.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>t.TrOCRPreTrainedModel,TranslationPipeline:()=>r.TranslationPipeline,UltravoxModel:()=>t.UltravoxModel,UltravoxPreTrainedModel:()=>t.UltravoxPreTrainedModel,UltravoxProcessor:()=>v.UltravoxProcessor,UniSpeechForCTC:()=>t.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>t.UniSpeechForSequenceClassification,UniSpeechModel:()=>t.UniSpeechModel,UniSpeechPreTrainedModel:()=>t.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>t.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>t.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>t.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>t.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>t.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>v.VLChatProcessor,VLMImageProcessor:()=>h.VLMImageProcessor,VaultGemmaForCausalLM:()=>t.VaultGemmaForCausalLM,VaultGemmaModel:()=>t.VaultGemmaModel,VaultGemmaPreTrainedModel:()=>t.VaultGemmaPreTrainedModel,ViTFeatureExtractor:()=>h.ViTFeatureExtractor,ViTForImageClassification:()=>t.ViTForImageClassification,ViTImageProcessor:()=>h.ViTImageProcessor,ViTMAEModel:()=>t.ViTMAEModel,ViTMAEPreTrainedModel:()=>t.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>t.ViTMSNForImageClassification,ViTMSNModel:()=>t.ViTMSNModel,ViTMSNPreTrainedModel:()=>t.ViTMSNPreTrainedModel,ViTModel:()=>t.ViTModel,ViTPreTrainedModel:()=>t.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>t.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>t.VitMatteForImageMatting,VitMatteImageProcessor:()=>h.VitMatteImageProcessor,VitMattePreTrainedModel:()=>t.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>t.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>h.VitPoseImageProcessor,VitPosePreTrainedModel:()=>t.VitPosePreTrainedModel,VitsModel:()=>t.VitsModel,VitsModelOutput:()=>t.VitsModelOutput,VitsPreTrainedModel:()=>t.VitsPreTrainedModel,VitsTokenizer:()=>s.VitsTokenizer,VoxtralForConditionalGeneration:()=>t.VoxtralForConditionalGeneration,VoxtralProcessor:()=>v.VoxtralProcessor,Wav2Vec2BertForCTC:()=>t.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>t.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>t.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>t.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>s.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>u.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>t.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>t.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>t.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>t.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>t.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>v.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>v.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>t.WavLMForAudioFrameClassification,WavLMForCTC:()=>t.WavLMForCTC,WavLMForSequenceClassification:()=>t.WavLMForSequenceClassification,WavLMForXVector:()=>t.WavLMForXVector,WavLMModel:()=>t.WavLMModel,WavLMPreTrainedModel:()=>t.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>u.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>t.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>t.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>u.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>t.WhisperForConditionalGeneration,WhisperModel:()=>t.WhisperModel,WhisperPreTrainedModel:()=>t.WhisperPreTrainedModel,WhisperProcessor:()=>v.WhisperProcessor,WhisperTextStreamer:()=>C.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>P.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>s.WhisperTokenizer,XLMForQuestionAnswering:()=>t.XLMForQuestionAnswering,XLMForSequenceClassification:()=>t.XLMForSequenceClassification,XLMForTokenClassification:()=>t.XLMForTokenClassification,XLMModel:()=>t.XLMModel,XLMPreTrainedModel:()=>t.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>t.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>t.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>t.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>t.XLMRobertaForTokenClassification,XLMRobertaModel:()=>t.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>t.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>s.XLMRobertaTokenizer,XLMTokenizer:()=>s.XLMTokenizer,XLMWithLMHeadModel:()=>t.XLMWithLMHeadModel,XVectorOutput:()=>t.XVectorOutput,YolosFeatureExtractor:()=>h.YolosFeatureExtractor,YolosForObjectDetection:()=>t.YolosForObjectDetection,YolosImageProcessor:()=>h.YolosImageProcessor,YolosModel:()=>t.YolosModel,YolosObjectDetectionOutput:()=>t.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>t.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>r.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>r.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>r.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>r.ZeroShotObjectDetectionPipeline,bankers_round:()=>c.bankers_round,cat:()=>l.cat,cos_sim:()=>c.cos_sim,dot:()=>c.dot,dynamic_time_warping:()=>c.dynamic_time_warping,env:()=>e.env,full:()=>l.full,full_like:()=>l.full_like,getCacheShapes:()=>o.getCacheShapes,hamming:()=>a.hamming,hanning:()=>a.hanning,interpolate:()=>l.interpolate,interpolate_4d:()=>l.interpolate_4d,interpolate_data:()=>c.interpolate_data,is_chinese_char:()=>s.is_chinese_char,layer_norm:()=>l.layer_norm,load_image:()=>n.load_image,load_video:()=>i.load_video,log_softmax:()=>c.log_softmax,magnitude:()=>c.magnitude,matmul:()=>l.matmul,max:()=>c.max,mean:()=>l.mean,mean_pooling:()=>l.mean_pooling,medianFilter:()=>c.medianFilter,mel_filter_bank:()=>a.mel_filter_bank,min:()=>c.min,ones:()=>l.ones,ones_like:()=>l.ones_like,permute:()=>l.permute,permute_data:()=>c.permute_data,pipeline:()=>r.pipeline,quantize_embeddings:()=>l.quantize_embeddings,rand:()=>l.rand,randn:()=>l.randn,read_audio:()=>a.read_audio,rfft:()=>l.rfft,round:()=>c.round,slice:()=>l.slice,softmax:()=>c.softmax,spectrogram:()=>a.spectrogram,stack:()=>l.stack,std_mean:()=>l.std_mean,topk:()=>l.topk,window_function:()=>a.window_function,zeros:()=>l.zeros,zeros_like:()=>l.zeros_like});var e=Vt("./src/env.js"),r=Vt("./src/pipelines.js"),t=Vt("./src/models.js"),s=Vt("./src/tokenizers.js"),o=Vt("./src/configs.js"),a=Vt("./src/utils/audio.js"),n=Vt("./src/utils/image.js"),i=Vt("./src/utils/video.js"),l=Vt("./src/utils/tensor.js"),c=Vt("./src/utils/maths.js"),_=Vt("./src/base/feature_extraction_utils.js"),u=Vt("./src/models/feature_extractors.js"),d=Vt("./src/models/auto/feature_extraction_auto.js"),g=Vt("./src/base/image_processors_utils.js"),h=Vt("./src/models/image_processors.js"),x=Vt("./src/models/auto/image_processing_auto.js"),F=Vt("./src/base/processing_utils.js"),v=Vt("./src/models/processors.js"),b=Vt("./src/models/auto/processing_auto.js"),C=Vt("./src/generation/streamers.js"),y=Vt("./src/generation/stopping_criteria.js"),P=Vt("./src/generation/logits_process.js")})();var VS=p.ASTFeatureExtractor,WS=p.ASTForAudioClassification,US=p.ASTModel,GS=p.ASTPreTrainedModel,KS=p.AlbertForMaskedLM,HS=p.AlbertForQuestionAnswering,qS=p.AlbertForSequenceClassification,QS=p.AlbertModel,XS=p.AlbertPreTrainedModel,JS=p.AlbertTokenizer,YS=p.ArceeForCausalLM,ZS=p.ArceeModel,eF=p.ArceePreTrainedModel,tF=p.AudioClassificationPipeline,rF=p.AutoConfig,sF=p.AutoFeatureExtractor,oF=p.AutoImageProcessor,aF=p.AutoModel,nF=p.AutoModelForAudioClassification,iF=p.AutoModelForAudioFrameClassification,lF=p.AutoModelForAudioTextToText,cF=p.AutoModelForCTC,dF=p.AutoModelForCausalLM,uF=p.AutoModelForDepthEstimation,_F=p.AutoModelForDocumentQuestionAnswering,pF=p.AutoModelForImageClassification,mF=p.AutoModelForImageFeatureExtraction,hF=p.AutoModelForImageMatting,fF=p.AutoModelForImageSegmentation,gF=p.AutoModelForImageTextToText,MF=p.AutoModelForImageToImage,wF=p.AutoModelForMaskGeneration,bF=p.AutoModelForMaskedLM,vF=p.AutoModelForNormalEstimation,xF=p.AutoModelForObjectDetection,yF=p.AutoModelForPoseEstimation,TF=p.AutoModelForQuestionAnswering,PF=p.AutoModelForSemanticSegmentation,EF=p.AutoModelForSeq2SeqLM,kF=p.AutoModelForSequenceClassification,CF=p.AutoModelForSpeechSeq2Seq,SF=p.AutoModelForTextToSpectrogram,FF=p.AutoModelForTextToWaveform,IF=p.AutoModelForTokenClassification,AF=p.AutoModelForUniversalSegmentation,$F=p.AutoModelForVision2Seq,DF=p.AutoModelForXVector,OF=p.AutoModelForZeroShotObjectDetection,LF=p.AutoProcessor,BF=p.AutoTokenizer,zF=p.AutomaticSpeechRecognitionPipeline,RF=p.BackgroundRemovalPipeline,NF=p.BartForConditionalGeneration,jF=p.BartForSequenceClassification,VF=p.BartModel,WF=p.BartPretrainedModel,UF=p.BartTokenizer,GF=p.BaseModelOutput,KF=p.BaseStreamer,HF=p.BeitFeatureExtractor,qF=p.BeitForImageClassification,QF=p.BeitModel,XF=p.BeitPreTrainedModel,JF=p.BertForMaskedLM,YF=p.BertForQuestionAnswering,ZF=p.BertForSequenceClassification,eI=p.BertForTokenClassification,tI=p.BertModel,rI=p.BertPreTrainedModel,sI=p.BertTokenizer,oI=p.BitImageProcessor,aI=p.BlenderbotForConditionalGeneration,nI=p.BlenderbotModel,iI=p.BlenderbotPreTrainedModel,lI=p.BlenderbotSmallForConditionalGeneration,cI=p.BlenderbotSmallModel,dI=p.BlenderbotSmallPreTrainedModel,uI=p.BlenderbotSmallTokenizer,_I=p.BlenderbotTokenizer,pI=p.BloomForCausalLM,mI=p.BloomModel,hI=p.BloomPreTrainedModel,fI=p.BloomTokenizer,gI=p.CLIPFeatureExtractor,MI=p.CLIPImageProcessor,wI=p.CLIPModel,bI=p.CLIPPreTrainedModel,vI=p.CLIPSegForImageSegmentation,xI=p.CLIPSegModel,yI=p.CLIPSegPreTrainedModel,TI=p.CLIPTextModel,PI=p.CLIPTextModelWithProjection,EI=p.CLIPTokenizer,kI=p.CLIPVisionModel,CI=p.CLIPVisionModelWithProjection,SI=p.CamembertForMaskedLM,FI=p.CamembertForQuestionAnswering,II=p.CamembertForSequenceClassification,AI=p.CamembertForTokenClassification,$I=p.CamembertModel,DI=p.CamembertPreTrainedModel,OI=p.CamembertTokenizer,LI=p.CausalLMOutput,BI=p.CausalLMOutputWithPast,zI=p.ChineseCLIPFeatureExtractor,RI=p.ChineseCLIPModel,NI=p.ChineseCLIPPreTrainedModel,jI=p.ClapAudioModelWithProjection,VI=p.ClapFeatureExtractor,WI=p.ClapModel,UI=p.ClapPreTrainedModel,GI=p.ClapTextModelWithProjection,KI=p.ClassifierFreeGuidanceLogitsProcessor,HI=p.CodeGenForCausalLM,qI=p.CodeGenModel,QI=p.CodeGenPreTrainedModel,XI=p.CodeGenTokenizer,JI=p.CodeLlamaTokenizer,YI=p.CohereForCausalLM,ZI=p.CohereModel,eA=p.CoherePreTrainedModel,tA=p.CohereTokenizer,rA=p.ConvBertForMaskedLM,sA=p.ConvBertForQuestionAnswering,oA=p.ConvBertForSequenceClassification,aA=p.ConvBertForTokenClassification,nA=p.ConvBertModel,iA=p.ConvBertPreTrainedModel,lA=p.ConvBertTokenizer,cA=p.ConvNextFeatureExtractor,dA=p.ConvNextForImageClassification,uA=p.ConvNextImageProcessor,_A=p.ConvNextModel,pA=p.ConvNextPreTrainedModel,mA=p.ConvNextV2ForImageClassification,hA=p.ConvNextV2Model,fA=p.ConvNextV2PreTrainedModel,gA=p.DFineForObjectDetection,MA=p.DFineModel,wA=p.DFinePreTrainedModel,bA=p.DINOv3ConvNextModel,vA=p.DINOv3ConvNextPreTrainedModel,xA=p.DINOv3ViTImageProcessor,yA=p.DINOv3ViTModel,TA=p.DINOv3ViTPreTrainedModel,PA=p.DPTFeatureExtractor,EA=p.DPTForDepthEstimation,kA=p.DPTImageProcessor,CA=p.DPTModel,SA=p.DPTPreTrainedModel,FA=p.DacDecoderModel,IA=p.DacDecoderOutput,AA=p.DacEncoderModel,$A=p.DacEncoderOutput,DA=p.DacFeatureExtractor,OA=p.DacModel,LA=p.DacPreTrainedModel,BA=p.DataTypeMap,zA=p.DebertaForMaskedLM,RA=p.DebertaForQuestionAnswering,NA=p.DebertaForSequenceClassification,jA=p.DebertaForTokenClassification,VA=p.DebertaModel,WA=p.DebertaPreTrainedModel,UA=p.DebertaTokenizer,GA=p.DebertaV2ForMaskedLM,KA=p.DebertaV2ForQuestionAnswering,HA=p.DebertaV2ForSequenceClassification,qA=p.DebertaV2ForTokenClassification,QA=p.DebertaV2Model,XA=p.DebertaV2PreTrainedModel,JA=p.DebertaV2Tokenizer,YA=p.DecisionTransformerModel,ZA=p.DecisionTransformerPreTrainedModel,e$=p.DeiTFeatureExtractor,t$=p.DeiTForImageClassification,r$=p.DeiTImageProcessor,s$=p.DeiTModel,o$=p.DeiTPreTrainedModel,a$=p.DepthAnythingForDepthEstimation,n$=p.DepthAnythingPreTrainedModel,i$=p.DepthEstimationPipeline,l$=p.DepthProForDepthEstimation,c$=p.DepthProPreTrainedModel,d$=p.DetrFeatureExtractor,u$=p.DetrForObjectDetection,_$=p.DetrForSegmentation,p$=p.DetrImageProcessor,m$=p.DetrModel,h$=p.DetrObjectDetectionOutput,f$=p.DetrPreTrainedModel,g$=p.DetrSegmentationOutput,M$=p.Dinov2ForImageClassification,w$=p.Dinov2Model,b$=p.Dinov2PreTrainedModel,v$=p.Dinov2WithRegistersForImageClassification,x$=p.Dinov2WithRegistersModel,y$=p.Dinov2WithRegistersPreTrainedModel,T$=p.DistilBertForMaskedLM,P$=p.DistilBertForQuestionAnswering,E$=p.DistilBertForSequenceClassification,k$=p.DistilBertForTokenClassification,C$=p.DistilBertModel,S$=p.DistilBertPreTrainedModel,F$=p.DistilBertTokenizer,I$=p.DocumentQuestionAnsweringPipeline,A$=p.DonutFeatureExtractor,$$=p.DonutImageProcessor,D$=p.DonutSwinModel,O$=p.DonutSwinPreTrainedModel,L$=p.EdgeTamModel,B$=p.EfficientNetForImageClassification,z$=p.EfficientNetImageProcessor,R$=p.EfficientNetModel,N$=p.EfficientNetPreTrainedModel,j$=p.ElectraForMaskedLM,V$=p.ElectraForQuestionAnswering,W$=p.ElectraForSequenceClassification,U$=p.ElectraForTokenClassification,G$=p.ElectraModel,K$=p.ElectraPreTrainedModel,H$=p.ElectraTokenizer,q$=p.EncodecFeatureExtractor,Q$=p.EosTokenCriteria,X$=p.Ernie4_5ForCausalLM,J$=p.Ernie4_5Model,Y$=p.Ernie4_5PreTrainedModel,Z$=p.EsmForMaskedLM,eD=p.EsmForSequenceClassification,tD=p.EsmForTokenClassification,rD=p.EsmModel,sD=p.EsmPreTrainedModel,oD=p.EsmTokenizer,aD=p.ExaoneForCausalLM,nD=p.ExaoneModel,iD=p.ExaonePreTrainedModel,lD=p.FFT,cD=p.FalconForCausalLM,dD=p.FalconModel,uD=p.FalconPreTrainedModel,_D=p.FalconTokenizer,pD=p.FastViTForImageClassification,mD=p.FastViTModel,hD=p.FastViTPreTrainedModel,fD=p.FeatureExtractionPipeline,gD=p.FeatureExtractor,MD=p.FillMaskPipeline,wD=p.Florence2ForConditionalGeneration,bD=p.Florence2PreTrainedModel,vD=p.Florence2Processor,xD=p.ForcedBOSTokenLogitsProcessor,yD=p.ForcedEOSTokenLogitsProcessor,TD=p.GLPNFeatureExtractor,PD=p.GLPNForDepthEstimation,ED=p.GLPNModel,kD=p.GLPNPreTrainedModel,CD=p.GPT2LMHeadModel,SD=p.GPT2Model,FD=p.GPT2PreTrainedModel,ID=p.GPT2Tokenizer,AD=p.GPTBigCodeForCausalLM,$D=p.GPTBigCodeModel,DD=p.GPTBigCodePreTrainedModel,OD=p.GPTJForCausalLM,LD=p.GPTJModel,BD=p.GPTJPreTrainedModel,zD=p.GPTNeoForCausalLM,RD=p.GPTNeoModel,ND=p.GPTNeoPreTrainedModel,jD=p.GPTNeoXForCausalLM,VD=p.GPTNeoXModel,WD=p.GPTNeoXPreTrainedModel,UD=p.GPTNeoXTokenizer,GD=p.Gemma2ForCausalLM,KD=p.Gemma2Model,HD=p.Gemma2PreTrainedModel,qD=p.Gemma3ForCausalLM,QD=p.Gemma3Model,XD=p.Gemma3PreTrainedModel,JD=p.Gemma3nAudioFeatureExtractor,YD=p.Gemma3nForConditionalGeneration,ZD=p.Gemma3nPreTrainedModel,eO=p.Gemma3nProcessor,tO=p.GemmaForCausalLM,rO=p.GemmaModel,sO=p.GemmaPreTrainedModel,oO=p.GemmaTokenizer,aO=p.GlmForCausalLM,nO=p.GlmModel,iO=p.GlmPreTrainedModel,lO=p.GraniteForCausalLM,cO=p.GraniteModel,dO=p.GraniteMoeHybridForCausalLM,uO=p.GraniteMoeHybridModel,_O=p.GraniteMoeHybridPreTrainedModel,pO=p.GranitePreTrainedModel,mO=p.Grok1Tokenizer,hO=p.GroundingDinoForObjectDetection,fO=p.GroundingDinoImageProcessor,gO=p.GroundingDinoPreTrainedModel,MO=p.GroundingDinoProcessor,wO=p.GroupViTModel,bO=p.GroupViTPreTrainedModel,vO=p.HeliumForCausalLM,xO=p.HeliumModel,yO=p.HeliumPreTrainedModel,TO=p.HerbertTokenizer,PO=p.HieraForImageClassification,EO=p.HieraModel,kO=p.HieraPreTrainedModel,CO=p.HubertForCTC,SO=p.HubertForSequenceClassification,FO=p.HubertModel,IO=p.HubertPreTrainedModel,AO=p.IJepaForImageClassification,$O=p.IJepaModel,DO=p.IJepaPreTrainedModel,OO=p.Idefics3ForConditionalGeneration,LO=p.Idefics3ImageProcessor,BO=p.Idefics3PreTrainedModel,zO=p.Idefics3Processor,RO=p.ImageClassificationPipeline,NO=p.ImageFeatureExtractionPipeline,jO=p.ImageFeatureExtractor,VO=p.ImageMattingOutput,WO=p.ImageProcessor,UO=p.ImageSegmentationPipeline,GO=p.ImageToImagePipeline,KO=p.ImageToTextPipeline,HO=p.InterruptableStoppingCriteria,qO=p.JAISLMHeadModel,QO=p.JAISModel,XO=p.JAISPreTrainedModel,JO=p.JinaCLIPImageProcessor,YO=p.JinaCLIPModel,ZO=p.JinaCLIPPreTrainedModel,eL=p.JinaCLIPProcessor,tL=p.JinaCLIPTextModel,rL=p.JinaCLIPVisionModel,sL=p.Lfm2ForCausalLM,oL=p.Lfm2Model,aL=p.Lfm2PreTrainedModel,nL=p.LiteWhisperForConditionalGeneration,iL=p.Llama4ForCausalLM,lL=p.Llama4PreTrainedModel,cL=p.LlamaForCausalLM,dL=p.LlamaModel,uL=p.LlamaPreTrainedModel,_L=p.LlamaTokenizer,pL=p.LlavaForConditionalGeneration,mL=p.LlavaOnevisionForConditionalGeneration,hL=p.LlavaOnevisionImageProcessor,fL=p.LlavaPreTrainedModel,gL=p.LlavaProcessor,ML=p.LlavaQwen2ForCausalLM,wL=p.LogitsProcessor,bL=p.LogitsProcessorList,vL=p.LogitsWarper,xL=p.LongT5ForConditionalGeneration,yL=p.LongT5Model,TL=p.LongT5PreTrainedModel,PL=p.M2M100ForConditionalGeneration,EL=p.M2M100Model,kL=p.M2M100PreTrainedModel,CL=p.M2M100Tokenizer,SL=p.MBart50Tokenizer,FL=p.MBartForCausalLM,IL=p.MBartForConditionalGeneration,AL=p.MBartForSequenceClassification,$L=p.MBartModel,DL=p.MBartPreTrainedModel,OL=p.MBartTokenizer,LL=p.MPNetForMaskedLM,BL=p.MPNetForQuestionAnswering,zL=p.MPNetForSequenceClassification,RL=p.MPNetForTokenClassification,NL=p.MPNetModel,jL=p.MPNetPreTrainedModel,VL=p.MPNetTokenizer,WL=p.MT5ForConditionalGeneration,UL=p.MT5Model,GL=p.MT5PreTrainedModel,KL=p.MarianMTModel,HL=p.MarianModel,qL=p.MarianPreTrainedModel,QL=p.MarianTokenizer,XL=p.Mask2FormerImageProcessor,JL=p.MaskFormerFeatureExtractor,YL=p.MaskFormerForInstanceSegmentation,ZL=p.MaskFormerImageProcessor,e3=p.MaskFormerModel,t3=p.MaskFormerPreTrainedModel,r3=p.MaskedLMOutput,s3=p.MaxLengthCriteria,o3=p.Metric3DForDepthEstimation,a3=p.Metric3DPreTrainedModel,n3=p.Metric3Dv2ForDepthEstimation,i3=p.Metric3Dv2PreTrainedModel,l3=p.MgpstrForSceneTextRecognition,c3=p.MgpstrModelOutput,d3=p.MgpstrPreTrainedModel,u3=p.MgpstrProcessor,_3=p.MgpstrTokenizer,p3=p.MimiDecoderModel,m3=p.MimiDecoderOutput,h3=p.MimiEncoderModel,f3=p.MimiEncoderOutput,g3=p.MimiModel,M3=p.MimiPreTrainedModel,w3=p.MinLengthLogitsProcessor,b3=p.MinNewTokensLengthLogitsProcessor,v3=p.Ministral3ForCausalLM,x3=p.Ministral3Model,y3=p.Ministral3PreTrainedModel,T3=p.MinistralForCausalLM,P3=p.MinistralModel,E3=p.MinistralPreTrainedModel,k3=p.Mistral3ForConditionalGeneration,C3=p.MistralForCausalLM,S3=p.MistralModel,F3=p.MistralPreTrainedModel,I3=p.MobileBertForMaskedLM,A3=p.MobileBertForQuestionAnswering,$3=p.MobileBertForSequenceClassification,D3=p.MobileBertModel,O3=p.MobileBertPreTrainedModel,L3=p.MobileBertTokenizer,B3=p.MobileLLMForCausalLM,z3=p.MobileLLMModel,R3=p.MobileLLMPreTrainedModel,N3=p.MobileNetV1FeatureExtractor,j3=p.MobileNetV1ForImageClassification,V3=p.MobileNetV1ForSemanticSegmentation,W3=p.MobileNetV1ImageProcessor,U3=p.MobileNetV1Model,G3=p.MobileNetV1PreTrainedModel,K3=p.MobileNetV2FeatureExtractor,H3=p.MobileNetV2ForImageClassification,q3=p.MobileNetV2ForSemanticSegmentation,Q3=p.MobileNetV2ImageProcessor,X3=p.MobileNetV2Model,J3=p.MobileNetV2PreTrainedModel,Y3=p.MobileNetV3FeatureExtractor,Z3=p.MobileNetV3ForImageClassification,eB=p.MobileNetV3ForSemanticSegmentation,tB=p.MobileNetV3ImageProcessor,rB=p.MobileNetV3Model,sB=p.MobileNetV3PreTrainedModel,oB=p.MobileNetV4FeatureExtractor,aB=p.MobileNetV4ForImageClassification,nB=p.MobileNetV4ForSemanticSegmentation,iB=p.MobileNetV4ImageProcessor,lB=p.MobileNetV4Model,cB=p.MobileNetV4PreTrainedModel,dB=p.MobileViTFeatureExtractor,uB=p.MobileViTForImageClassification,_B=p.MobileViTImageProcessor,pB=p.MobileViTModel,mB=p.MobileViTPreTrainedModel,hB=p.MobileViTV2ForImageClassification,fB=p.MobileViTV2Model,gB=p.MobileViTV2PreTrainedModel,MB=p.ModelOutput,wB=p.ModernBertDecoderForCausalLM,bB=p.ModernBertDecoderModel,vB=p.ModernBertDecoderPreTrainedModel,xB=p.ModernBertForMaskedLM,yB=p.ModernBertForSequenceClassification,TB=p.ModernBertForTokenClassification,PB=p.ModernBertModel,EB=p.ModernBertPreTrainedModel,kB=p.Moondream1ForConditionalGeneration,CB=p.MoonshineFeatureExtractor,SB=p.MoonshineForConditionalGeneration,FB=p.MoonshineModel,IB=p.MoonshinePreTrainedModel,AB=p.MoonshineProcessor,$B=p.MptForCausalLM,DB=p.MptModel,OB=p.MptPreTrainedModel,LB=p.MultiModalityCausalLM,BB=p.MultiModalityPreTrainedModel,zB=p.MusicgenForCausalLM,RB=p.MusicgenForConditionalGeneration,NB=p.MusicgenModel,jB=p.MusicgenPreTrainedModel,VB=p.NanoChatForCausalLM,WB=p.NanoChatModel,UB=p.NanoChatPreTrainedModel,GB=p.NeoBertForMaskedLM,KB=p.NeoBertForQuestionAnswering,HB=p.NeoBertForSequenceClassification,qB=p.NeoBertForTokenClassification,QB=p.NeoBertModel,XB=p.NeoBertPreTrainedModel,JB=p.NllbTokenizer,YB=p.NoBadWordsLogitsProcessor,ZB=p.NoRepeatNGramLogitsProcessor,ez=p.NomicBertModel,tz=p.NomicBertPreTrainedModel,rz=p.NougatImageProcessor,sz=p.NougatTokenizer,oz=p.OPTForCausalLM,az=p.OPTModel,nz=p.OPTPreTrainedModel,iz=p.ObjectDetectionPipeline,lz=p.Olmo2ForCausalLM,cz=p.Olmo2Model,dz=p.Olmo2PreTrainedModel,uz=p.OlmoForCausalLM,_z=p.OlmoModel,pz=p.OlmoPreTrainedModel,mz=p.OpenELMForCausalLM,hz=p.OpenELMModel,fz=p.OpenELMPreTrainedModel,gz=p.OwlViTFeatureExtractor,Mz=p.OwlViTForObjectDetection,wz=p.OwlViTImageProcessor,bz=p.OwlViTModel,vz=p.OwlViTPreTrainedModel,xz=p.OwlViTProcessor,yz=p.Owlv2ForObjectDetection,Tz=p.Owlv2ImageProcessor,Pz=p.Owlv2Model,Ez=p.Owlv2PreTrainedModel,kz=p.PaliGemmaForConditionalGeneration,Cz=p.PaliGemmaPreTrainedModel,Sz=p.PaliGemmaProcessor,Fz=p.ParakeetFeatureExtractor,Iz=p.ParakeetForCTC,Az=p.ParakeetPreTrainedModel,$z=p.PatchTSMixerForPrediction,Dz=p.PatchTSMixerModel,Oz=p.PatchTSMixerPreTrainedModel,Lz=p.PatchTSTForPrediction,Bz=p.PatchTSTModel,zz=p.PatchTSTPreTrainedModel,Rz=p.Phi3ForCausalLM,Nz=p.Phi3Model,jz=p.Phi3PreTrainedModel,Vz=p.Phi3VForCausalLM,Wz=p.Phi3VImageProcessor,Uz=p.Phi3VPreTrainedModel,Gz=p.Phi3VProcessor,Kz=p.PhiForCausalLM,Hz=p.PhiModel,qz=p.PhiPreTrainedModel,Qz=p.Pipeline,Xz=p.PixtralImageProcessor,Jz=p.PixtralProcessor,Yz=p.PreTrainedModel,Zz=p.PreTrainedTokenizer,eR=p.PretrainedConfig,tR=p.PretrainedMixin,rR=p.Processor,sR=p.PvtForImageClassification,oR=p.PvtImageProcessor,aR=p.PvtModel,nR=p.PvtPreTrainedModel,iR=p.PyAnnoteFeatureExtractor,lR=p.PyAnnoteForAudioFrameClassification,cR=p.PyAnnoteModel,dR=p.PyAnnotePreTrainedModel,uR=p.PyAnnoteProcessor,_R=p.QuestionAnsweringModelOutput,pR=p.QuestionAnsweringPipeline,mR=p.Qwen2ForCausalLM,hR=p.Qwen2Model,fR=p.Qwen2PreTrainedModel,gR=p.Qwen2Tokenizer,MR=p.Qwen2VLForConditionalGeneration,wR=p.Qwen2VLImageProcessor,bR=p.Qwen2VLPreTrainedModel,vR=p.Qwen2VLProcessor,xR=p.Qwen3ForCausalLM,yR=p.Qwen3Model,TR=p.Qwen3PreTrainedModel,PR=p.RFDetrForObjectDetection,ER=p.RFDetrModel,kR=p.RFDetrObjectDetectionOutput,CR=p.RFDetrPreTrainedModel,SR=p.RTDetrForObjectDetection,FR=p.RTDetrImageProcessor,IR=p.RTDetrModel,AR=p.RTDetrObjectDetectionOutput,$R=p.RTDetrPreTrainedModel,DR=p.RTDetrV2ForObjectDetection,OR=p.RTDetrV2Model,LR=p.RTDetrV2ObjectDetectionOutput,BR=p.RTDetrV2PreTrainedModel,zR=p.RawAudio,RR=p.RawImage,NR=p.RawVideo,jR=p.RawVideoFrame,VR=p.RepetitionPenaltyLogitsProcessor,WR=p.ResNetForImageClassification,UR=p.ResNetModel,GR=p.ResNetPreTrainedModel,KR=p.RoFormerForMaskedLM,HR=p.RoFormerForQuestionAnswering,qR=p.RoFormerForSequenceClassification,QR=p.RoFormerForTokenClassification,XR=p.RoFormerModel,JR=p.RoFormerPreTrainedModel,YR=p.RoFormerTokenizer,ZR=p.RobertaForMaskedLM,eN=p.RobertaForQuestionAnswering,tN=p.RobertaForSequenceClassification,rN=p.RobertaForTokenClassification,sN=p.RobertaModel,oN=p.RobertaPreTrainedModel,aN=p.RobertaTokenizer,nN=p.Sam2ImageProcessor,iN=p.Sam2ImageSegmentationOutput,lN=p.Sam2Model,cN=p.Sam2PreTrainedModel,dN=p.Sam2Processor,uN=p.Sam2VideoProcessor,_N=p.Sam3ImageProcessor,pN=p.Sam3TrackerModel,mN=p.SamImageProcessor,hN=p.SamImageSegmentationOutput,fN=p.SamModel,gN=p.SamPreTrainedModel,MN=p.SamProcessor,wN=p.SapiensForDepthEstimation,bN=p.SapiensForNormalEstimation,vN=p.SapiensForSemanticSegmentation,xN=p.SapiensPreTrainedModel,yN=p.SeamlessM4TFeatureExtractor,TN=p.SegformerFeatureExtractor,PN=p.SegformerForImageClassification,EN=p.SegformerForSemanticSegmentation,kN=p.SegformerImageProcessor,CN=p.SegformerModel,SN=p.SegformerPreTrainedModel,FN=p.Seq2SeqLMOutput,IN=p.SequenceClassifierOutput,AN=p.SiglipImageProcessor,$N=p.SiglipModel,DN=p.SiglipPreTrainedModel,ON=p.SiglipTextModel,LN=p.SiglipTokenizer,BN=p.SiglipVisionModel,zN=p.SmolLM3ForCausalLM,RN=p.SmolLM3Model,NN=p.SmolLM3PreTrainedModel,jN=p.SmolVLMForConditionalGeneration,VN=p.SmolVLMImageProcessor,WN=p.SmolVLMProcessor,UN=p.SnacDecoderModel,GN=p.SnacEncoderModel,KN=p.SnacFeatureExtractor,HN=p.SnacModel,qN=p.SnacPreTrainedModel,QN=p.SpeechT5FeatureExtractor,XN=p.SpeechT5ForSpeechToText,JN=p.SpeechT5ForTextToSpeech,YN=p.SpeechT5HifiGan,ZN=p.SpeechT5Model,ej=p.SpeechT5PreTrainedModel,tj=p.SpeechT5Processor,rj=p.SpeechT5Tokenizer,sj=p.SqueezeBertForMaskedLM,oj=p.SqueezeBertForQuestionAnswering,aj=p.SqueezeBertForSequenceClassification,nj=p.SqueezeBertModel,ij=p.SqueezeBertPreTrainedModel,lj=p.SqueezeBertTokenizer,cj=p.StableLmForCausalLM,dj=p.StableLmModel,uj=p.StableLmPreTrainedModel,_j=p.Starcoder2ForCausalLM,pj=p.Starcoder2Model,mj=p.Starcoder2PreTrainedModel,hj=p.StoppingCriteria,fj=p.StoppingCriteriaList,gj=p.StyleTextToSpeech2Model,Mj=p.StyleTextToSpeech2PreTrainedModel,wj=p.SummarizationPipeline,bj=p.SupertonicForConditionalGeneration,vj=p.SupertonicPreTrainedModel,xj=p.SuppressTokensAtBeginLogitsProcessor,yj=p.Swin2SRForImageSuperResolution,Tj=p.Swin2SRImageProcessor,Pj=p.Swin2SRModel,Ej=p.Swin2SRPreTrainedModel,kj=p.SwinForImageClassification,Cj=p.SwinForSemanticSegmentation,Sj=p.SwinModel,Fj=p.SwinPreTrainedModel,Ij=p.T5ForConditionalGeneration,Aj=p.T5Model,$j=p.T5PreTrainedModel,Dj=p.T5Tokenizer,Oj=p.TableTransformerForObjectDetection,Lj=p.TableTransformerModel,Bj=p.TableTransformerObjectDetectionOutput,zj=p.TableTransformerPreTrainedModel,Rj=p.TemperatureLogitsWarper,Nj=p.Tensor,jj=p.Text2TextGenerationPipeline,Vj=p.TextClassificationPipeline,Wj=p.TextGenerationPipeline,Uj=p.TextStreamer,Gj=p.TextToAudioPipeline,Kj=p.TokenClassificationPipeline,Hj=p.TokenClassifierOutput,qj=p.TokenizerModel,Qj=p.TopKLogitsWarper,Xj=p.TopPLogitsWarper,Jj=p.TrOCRForCausalLM,Yj=p.TrOCRPreTrainedModel,Zj=p.TranslationPipeline,eV=p.UltravoxModel,tV=p.UltravoxPreTrainedModel,rV=p.UltravoxProcessor,sV=p.UniSpeechForCTC,oV=p.UniSpeechForSequenceClassification,aV=p.UniSpeechModel,nV=p.UniSpeechPreTrainedModel,iV=p.UniSpeechSatForAudioFrameClassification,lV=p.UniSpeechSatForCTC,cV=p.UniSpeechSatForSequenceClassification,dV=p.UniSpeechSatModel,uV=p.UniSpeechSatPreTrainedModel,_V=p.VLChatProcessor,pV=p.VLMImageProcessor,mV=p.VaultGemmaForCausalLM,hV=p.VaultGemmaModel,fV=p.VaultGemmaPreTrainedModel,gV=p.ViTFeatureExtractor,MV=p.ViTForImageClassification,wV=p.ViTImageProcessor,bV=p.ViTMAEModel,vV=p.ViTMAEPreTrainedModel,xV=p.ViTMSNForImageClassification,yV=p.ViTMSNModel,TV=p.ViTMSNPreTrainedModel,PV=p.ViTModel,EV=p.ViTPreTrainedModel,kV=p.VisionEncoderDecoderModel,CV=p.VitMatteForImageMatting,SV=p.VitMatteImageProcessor,FV=p.VitMattePreTrainedModel,IV=p.VitPoseForPoseEstimation,AV=p.VitPoseImageProcessor,$V=p.VitPosePreTrainedModel,DV=p.VitsModel,OV=p.VitsModelOutput,LV=p.VitsPreTrainedModel,BV=p.VitsTokenizer,zV=p.VoxtralForConditionalGeneration,RV=p.VoxtralProcessor,NV=p.Wav2Vec2BertForCTC,jV=p.Wav2Vec2BertForSequenceClassification,VV=p.Wav2Vec2BertModel,WV=p.Wav2Vec2BertPreTrainedModel,UV=p.Wav2Vec2CTCTokenizer,GV=p.Wav2Vec2FeatureExtractor,KV=p.Wav2Vec2ForAudioFrameClassification,HV=p.Wav2Vec2ForCTC,qV=p.Wav2Vec2ForSequenceClassification,QV=p.Wav2Vec2Model,XV=p.Wav2Vec2PreTrainedModel,JV=p.Wav2Vec2Processor,YV=p.Wav2Vec2ProcessorWithLM,ZV=p.WavLMForAudioFrameClassification,e4=p.WavLMForCTC,t4=p.WavLMForSequenceClassification,r4=p.WavLMForXVector,s4=p.WavLMModel,o4=p.WavLMPreTrainedModel,a4=p.WeSpeakerFeatureExtractor,n4=p.WeSpeakerResNetModel,i4=p.WeSpeakerResNetPreTrainedModel,l4=p.WhisperFeatureExtractor,c4=p.WhisperForConditionalGeneration,d4=p.WhisperModel,u4=p.WhisperPreTrainedModel,_4=p.WhisperProcessor,A0=p.WhisperTextStreamer,p4=p.WhisperTimeStampLogitsProcessor,m4=p.WhisperTokenizer,h4=p.XLMForQuestionAnswering,f4=p.XLMForSequenceClassification,g4=p.XLMForTokenClassification,M4=p.XLMModel,w4=p.XLMPreTrainedModel,b4=p.XLMRobertaForMaskedLM,v4=p.XLMRobertaForQuestionAnswering,x4=p.XLMRobertaForSequenceClassification,y4=p.XLMRobertaForTokenClassification,T4=p.XLMRobertaModel,P4=p.XLMRobertaPreTrainedModel,E4=p.XLMRobertaTokenizer,k4=p.XLMTokenizer,C4=p.XLMWithLMHeadModel,S4=p.XVectorOutput,F4=p.YolosFeatureExtractor,I4=p.YolosForObjectDetection,A4=p.YolosImageProcessor,$4=p.YolosModel,D4=p.YolosObjectDetectionOutput,O4=p.YolosPreTrainedModel,L4=p.ZeroShotAudioClassificationPipeline,B4=p.ZeroShotClassificationPipeline,z4=p.ZeroShotImageClassificationPipeline,R4=p.ZeroShotObjectDetectionPipeline,N4=p.bankers_round,j4=p.cat,V4=p.cos_sim,W4=p.dot,U4=p.dynamic_time_warping,G4=p.env,K4=p.full,H4=p.full_like,q4=p.getCacheShapes,Q4=p.hamming,X4=p.hanning,J4=p.interpolate,Y4=p.interpolate_4d,Z4=p.interpolate_data,eW=p.is_chinese_char,tW=p.layer_norm,rW=p.load_image,sW=p.load_video,oW=p.log_softmax,aW=p.magnitude,nW=p.matmul,iW=p.max,lW=p.mean,cW=p.mean_pooling,dW=p.medianFilter,uW=p.mel_filter_bank,_W=p.min,pW=p.ones,mW=p.ones_like,hW=p.permute,fW=p.permute_data,$0=p.pipeline,gW=p.quantize_embeddings,MW=p.rand,wW=p.randn,bW=p.read_audio,vW=p.rfft,xW=p.round,yW=p.slice,TW=p.softmax,PW=p.spectrogram,EW=p.stack,kW=p.std_mean,CW=p.topk,SW=p.window_function,FW=p.zeros,IW=p.zeros_like;async function D0(e){let{spec:r,onLoading:t}=e;return await $0(e.task,r.model,{device:r.device,dtype:r.dtype,progress_callback:o=>{t({total:o.total,progress:o.progress})}})}async function O0(e){let{pipe:r,spec:t,request:s,callbacks:o}=e;if(!r.processor.feature_extractor)throw new Error("no feature_extractor");let a=r.processor.feature_extractor?.config.chunk_length/r.model.config.max_source_positions,n=0,i=null,l=0,c=0,_=t.chunkLength-t.strideLength,u=()=>{let x=n*_;return Math.min(x/s.duration,1)},d=r.tokenizer,g=new A0(d,{time_precision:a,token_callback_function:()=>{i??=performance.now(),++l>1&&(c=l/(performance.now()-i)*1e3)},callback_function:x=>{o.onTranscription(x),o.onReport({tokensPerSecond:c,progress:u()})},on_finalize:()=>{i=null,l=0,n++,o.onReport({tokensPerSecond:c,progress:u()})}}),h=await r(new Float32Array(s.audio),{top_k:0,do_sample:!1,chunk_length_s:t.chunkLength,stride_length_s:t.strideLength,language:s.language,task:"transcribe",return_timestamps:"word",force_full_sequences:!1,streamer:g});return{text:h.text,chunks:h.chunks}}var L0=ls(),ME=e=>Of(async r=>{L0.resolve({spec:r,pipe:await D0({spec:r,task:"automatic-speech-recognition",onLoading:t=>e.loading(t)})})});await Yf.worker(e=>({prepare:ME(e.host),async transcribe(t){let{pipe:s,spec:o}=await L0.promise;return O0({pipe:s,spec:o,request:t,callbacks:{onReport:a=>e.host.deliverReport(a),onTranscription:a=>e.host.deliverTranscription(a)}})}}));
|
|
2850
|
+
`}):(console.warn("You are passing both `text` and `images` to `PaliGemmaProcessor`. The processor expects special image tokens in the text, as many tokens as there are images per each text. It is recommended to add `<image>` tokens in the very beginning of your text. For this call, we will infer how many images each text has and add special tokens."),x=u.map(b=>i(b,g,h,n,_.length)));let F=this.tokenizer(x,d);return{...await this.image_processor(_,d),...F}}}}),"./src/models/parakeet/feature_extraction_parakeet.js":((e,r,t)=>{t.r(r),t.d(r,{ParakeetFeatureExtractor:()=>i});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");let n=1e-5;class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,a.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,this.config.sampling_rate/2,this.config.sampling_rate,"slaney","slaney");let _=(0,a.window_function)(this.config.win_length,"hann",{periodic:!1});this.window=new Float64Array(this.config.n_fft);let u=Math.floor((this.config.n_fft-this.config.win_length)/2);this.window.set(_,u)}async _extract_fbank_features(c){let _=this.config.preemphasis;c=new Float64Array(c);for(let d=c.length-1;d>=1;--d)c[d]-=_*c[d-1];return await(0,a.spectrogram)(c,this.window,this.window.length,this.config.hop_length,{fft_length:this.config.n_fft,power:2,mel_filters:this.config.mel_filters,log_mel:"log",mel_floor:-1/0,pad_mode:"constant",center:!0,transpose:!0,mel_offset:2**-24})}async _call(c){(0,s.validate_audio_inputs)(c,"ParakeetFeatureExtractor");let _=await this._extract_fbank_features(c),u=Math.floor((c.length+Math.floor(this.config.n_fft/2)*2-this.config.n_fft)/this.config.hop_length),d=_.data;d.fill(0,u*_.dims[1]);let[g,h]=_.dims,x=new Float64Array(h),F=new Float64Array(h);for(let C=0;C<u;++C){let y=C*h;for(let P=0;P<h;++P){let I=d[y+P];x[P]+=I,F[P]+=I*I}}let v=u>1?u-1:1;for(let C=0;C<h;++C){let y=x[C]/u,P=(F[C]-u*y*y)/v,f=1/(Math.sqrt(P)+n);for(let E=0;E<u;++E){let D=E*h+C;d[D]=(d[D]-y)*f}}let b=new BigInt64Array(g);return b.fill(1n,0,u),{input_features:_.unsqueeze_(0),attention_mask:new o.Tensor("int64",b,[1,g])}}}}),"./src/models/phi3_v/image_processing_phi3_v.js":((e,r,t)=>{t.r(r),t.d(r,{Phi3VImageProcessor:()=>_});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");let a=336,n=[2,3],{ceil:i,floor:l,sqrt:c}=Math;class _ extends s.ImageProcessor{constructor(d){super({...d,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=d.num_crops}calc_num_image_tokens_from_image_size(d,g){let{num_img_tokens:h}=this.config;return l((l(g/a)*l(d/a)+1)*h+1+(l(g/a)+1)*c(h))}get_resize_output_image_size(d,g){let h=this._num_crops,[x,F]=d.size,v=x/F,b=1;for(;b*Math.ceil(b/v)<=h;)b+=1;b-=1;let C=Math.floor(b*336),y=Math.floor(C/v);return[C,y]}pad_image(d,g,h,x={}){let[F,v]=g,b=a*i(F/a),C=a*i(v/a),y=[1,1,1].map((P,I)=>(P-this.image_mean[I])/this.image_std[I]);return super.pad_image(d,g,{width:C,height:b},{center:!0,constant_values:y,...x})}async _call(d,{num_crops:g=null}={}){if(this._num_crops=g??=this.config.num_crops,g<4||c(g)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(d)||(d=[d]);let h=d.length,x=await Promise.all(d.map(f=>this.preprocess(f))),F=x.map(f=>f.original_size),v=x.map(f=>f.reshaped_input_size),b=[];for(let{pixel_values:f}of x){f.unsqueeze_(0);let[E,D]=f.dims.slice(-2),O=await(0,o.interpolate_4d)(f,{size:[a,a],mode:"bicubic"});if(g>0){let U=[],W=c(g),z=l(D/W),X=l(E/W);for(let q=0;q<W;++q)for(let re=0;re<W;++re){let oe,ne,ye,Y;q===W-1?(ne=E-X,Y=E):(ne=q*X,Y=(q+1)*X),re===W-1?(oe=D-z,ye=D):(oe=re*z,ye=(re+1)*z);let H=[ne,oe],R=[Y,ye],L=await(0,o.slice)(f,H,R,n);U.push(L)}let J=await(0,o.interpolate_4d)((0,o.cat)(U,0),{size:[a,a],mode:"bicubic"});b.push((0,o.cat)([O,J],0))}else b.push(O)}let C=(0,o.stack)(b,0),y=v.map(f=>f.map(E=>a*i(E/a))),P=new o.Tensor("int64",y.flat(),[h,2]),I=y.map(([f,E])=>this.calc_num_image_tokens_from_image_size(E,f));return{pixel_values:C,original_sizes:F,reshaped_input_sizes:v,image_sizes:P,num_img_tokens:I}}}}),"./src/models/phi3_v/processing_phi3_v.js":((e,r,t)=>{t.r(r),t.d(r,{Phi3VProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/image.js");let i="<|image|>",l=/<\|image_\d+\|>/g;class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(u,d=null,{padding:g=!0,truncation:h=!0,num_crops:x=null}={}){Array.isArray(u)||(u=[u]);let F,v;if(d){v=await this.image_processor(d,{num_crops:x});let{num_img_tokens:b}=v,C=u.map((P,I)=>P.split(l).join(i.repeat(b[I])));F=this.tokenizer(C,{padding:g,truncation:h});let y=this.tokenizer.model.convert_tokens_to_ids([i])[0];F.input_ids.map_(P=>P==y?-P:P)}else F=this.tokenizer(u);return{...F,...v}}}}),"./src/models/pixtral/image_processing_pixtral.js":((e,r,t)=>{t.r(r),t.d(r,{PixtralImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{get_resize_output_image_size(n,i){let{longest_edge:l}=i;if(l===void 0)throw new Error("size must contain 'longest_edge'");let[c,_]=n.size,u=Math.max(c,_)/l,d=c,g=_;u>1&&(d=Math.floor(c/u),g=Math.floor(_/u));let{patch_size:h,spatial_merge_size:x}=this.config;if(!x)throw new Error("config must contain 'spatial_merge_size'");let F=h*x,v=Math.floor((d-1)/F)+1,b=Math.floor((g-1)/F)+1;return[v*F,b*F]}}}),"./src/models/pixtral/processing_pixtral.js":((e,r,t)=>{t.r(r),t.d(r,{PixtralProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!0;async _call(l,c=null,_={}){let u=await this.image_processor(l,_);if(c){let[g,h]=u.pixel_values.dims.slice(-2),{image_token:x,image_break_token:F,image_end_token:v,patch_size:b,spatial_merge_size:C}=this.config,y=b*C,P=Math.floor(g/y),I=Math.floor(h/y);c=structuredClone(c),Array.isArray(c)||(c=[c]);for(let f=0;f<c.length;++f){let E=x.repeat(I),D=E+F,O=E+v,U=D.repeat(P-1)+O;c[f]=c[f].replace(x,U)}}let d=c?this.tokenizer(c,_):{};return{...u,...d}}}}),"./src/models/processors.js":((e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>s.Florence2Processor,Gemma3nProcessor:()=>o.Gemma3nProcessor,GroundingDinoProcessor:()=>a.GroundingDinoProcessor,Idefics3Processor:()=>n.Idefics3Processor,JinaCLIPProcessor:()=>l.JinaCLIPProcessor,LlavaProcessor:()=>c.LlavaProcessor,MgpstrProcessor:()=>_.MgpstrProcessor,MoonshineProcessor:()=>u.MoonshineProcessor,OwlViTProcessor:()=>d.OwlViTProcessor,PaliGemmaProcessor:()=>g.PaliGemmaProcessor,Phi3VProcessor:()=>h.Phi3VProcessor,PixtralProcessor:()=>x.PixtralProcessor,PyAnnoteProcessor:()=>F.PyAnnoteProcessor,Qwen2VLProcessor:()=>v.Qwen2VLProcessor,Sam2Processor:()=>C.Sam2Processor,Sam2VideoProcessor:()=>C.Sam2VideoProcessor,SamProcessor:()=>b.SamProcessor,SmolVLMProcessor:()=>y.SmolVLMProcessor,SpeechT5Processor:()=>P.SpeechT5Processor,UltravoxProcessor:()=>I.UltravoxProcessor,VLChatProcessor:()=>i.VLChatProcessor,VoxtralProcessor:()=>f.VoxtralProcessor,Wav2Vec2Processor:()=>E.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>D.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>O.WhisperProcessor});var s=t("./src/models/florence2/processing_florence2.js"),o=t("./src/models/gemma3n/processing_gemma3n.js"),a=t("./src/models/grounding_dino/processing_grounding_dino.js"),n=t("./src/models/idefics3/processing_idefics3.js"),i=t("./src/models/janus/processing_janus.js"),l=t("./src/models/jina_clip/processing_jina_clip.js"),c=t("./src/models/llava/processing_llava.js"),_=t("./src/models/mgp_str/processing_mgp_str.js"),u=t("./src/models/moonshine/processing_moonshine.js"),d=t("./src/models/owlvit/processing_owlvit.js"),g=t("./src/models/paligemma/processing_paligemma.js"),h=t("./src/models/phi3_v/processing_phi3_v.js"),x=t("./src/models/pixtral/processing_pixtral.js"),F=t("./src/models/pyannote/processing_pyannote.js"),v=t("./src/models/qwen2_vl/processing_qwen2_vl.js"),b=t("./src/models/sam/processing_sam.js"),C=t("./src/models/sam2/processing_sam2.js"),y=t("./src/models/smolvlm/processing_smolvlm.js"),P=t("./src/models/speecht5/processing_speecht5.js"),I=t("./src/models/ultravox/processing_ultravox.js"),f=t("./src/models/voxtral/processing_voxtral.js"),E=t("./src/models/wav2vec2/processing_wav2vec2.js"),D=t("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),O=t("./src/models/whisper/processing_whisper.js")}),"./src/models/pvt/image_processing_pvt.js":((e,r,t)=>{t.r(r),t.d(r,{PvtImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/pyannote/feature_extraction_pyannote.js":((e,r,t)=>{t.r(r),t.d(r,{PyAnnoteFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js");class n extends s.FeatureExtractor{async _call(l){(0,s.validate_audio_inputs)(l,"PyAnnoteFeatureExtractor"),l instanceof Float64Array&&(l=new Float32Array(l));let c=[1,1,l.length];return{input_values:new o.Tensor("float32",l,c)}}samples_to_frames(l){return(l-this.config.offset)/this.config.step}post_process_speaker_diarization(l,c){let _=c/this.samples_to_frames(c)/this.config.sampling_rate,u=[];for(let d of l.tolist()){let g=[],h=-1;for(let x=0;x<d.length;++x){let F=(0,a.softmax)(d[x]),[v,b]=(0,a.max)(F),[C,y]=[x,x+1];b!==h?(h=b,g.push({id:b,start:C,end:y,score:v})):(g.at(-1).end=y,g.at(-1).score+=v)}u.push(g.map(({id:x,start:F,end:v,score:b})=>({id:x,start:F*_,end:v*_,confidence:b/(v-F)})))}return u}}}),"./src/models/pyannote/processing_pyannote.js":((e,r,t)=>{t.r(r),t.d(r,{PyAnnoteProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/pyannote/feature_extraction_pyannote.js");class a extends s.Processor{static feature_extractor_class=o.PyAnnoteFeatureExtractor;async _call(i){return await this.feature_extractor(i)}post_process_speaker_diarization(...i){return this.feature_extractor.post_process_speaker_diarization(...i)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}}),"./src/models/qwen2_vl/image_processing_qwen2_vl.js":((e,r,t)=>{t.r(r),t.d(r,{Qwen2VLImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(i,...l){let{pixel_values:c,original_sizes:_,reshaped_input_sizes:u}=await super._call(i,...l),d=c,{temporal_patch_size:g,merge_size:h,patch_size:x}=this.config;d.dims[0]===1&&(d=(0,o.cat)(Array.from({length:g},()=>d),0));let F=d.dims[0]/g,v=d.dims[1],b=Math.floor(d.dims[2]/x),C=Math.floor(d.dims[3]/x),y=d.view(F,g,v,Math.floor(b/h),h,x,Math.floor(C/h),h,x).permute(0,3,6,4,7,2,1,5,8).view(F*b*C,v*g*x*x),P=new o.Tensor("int64",[F,b,C],[1,3]);return{pixel_values:y,image_grid_thw:P,original_sizes:_,reshaped_input_sizes:u}}}}),"./src/models/qwen2_vl/processing_qwen2_vl.js":((e,r,t)=>{t.r(r),t.d(r,{Qwen2VLProcessor:()=>i});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/image.js");class i extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(c,_=null,...u){Array.isArray(c)||(c=[c]);let d,g;if(_&&(d=await this.image_processor(_),g=d.image_grid_thw),g){let x=this.image_processor.config.merge_size**2,F=0,v=g.tolist();c=c.map(b=>{for(;b.includes("<|image_pad|>");){let C=Number(v[F++].reduce((y,P)=>y*P,1n));b=b.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(C/x)))}return b.replaceAll("<|placeholder|>","<|image_pad|>")})}return{...this.tokenizer(c),...d}}}}),"./src/models/rt_detr/image_processing_rt_detr.js":((e,r,t)=>{t.r(r),t.d(r,{RTDetrImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...n){return(0,s.post_process_object_detection)(...n)}}}),"./src/models/sam/image_processing_sam.js":((e,r,t)=>{t.r(r),t.d(r,{SamImageProcessor:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/core.js"),a=t("./src/utils/tensor.js");class n extends s.ImageProcessor{reshape_input_points(l,c,_,u=!1){l=structuredClone(l);let d=(0,o.calculateDimensions)(l);if(d.length===3)u||(d=[1,...d]),l=[l];else if(d.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let g=0;g<l.length;++g){let[h,x]=c[g],[F,v]=_[g],b=[v/x,F/h];for(let C=0;C<l[g].length;++C)for(let y=0;y<l[g][C].length;++y)for(let P=0;P<l[g][C][y].length;++P)l[g][C][y][P]*=b[P%2]}return new a.Tensor("float32",Float32Array.from(l.flat(1/0)),d)}add_input_labels(l,c){let _=(0,o.calculateDimensions)(l);if(_.length===2)_=[1,..._],l=[l];else if(_.length!==3)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");if(_.some((u,d)=>u!==c.dims[d]))throw Error(`The first ${_.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new a.Tensor("int64",l.flat(1/0).map(BigInt),_)}async _call(l,{input_points:c=null,input_labels:_=null,input_boxes:u=null}={}){let d=await super._call(l);if(c&&(d.input_points=this.reshape_input_points(c,d.original_sizes,d.reshaped_input_sizes)),_){if(!d.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");d.input_labels=this.add_input_labels(_,d.input_points)}return u&&(d.input_boxes=this.reshape_input_points(u,d.original_sizes,d.reshaped_input_sizes,!0)),d}async post_process_masks(l,c,_,{mask_threshold:u=0,binarize:d=!0,pad_size:g=null}={}){let h=[];g=g??this.pad_size??this.size;let x=[g.height,g.width];for(let F=0;F<c.length;++F){let v=c[F],b=_[F],C=await(0,a.interpolate_4d)(l[F],{mode:"bilinear",size:x});if(C=C.slice(null,null,[0,b[0]],[0,b[1]]),C=await(0,a.interpolate_4d)(C,{mode:"bilinear",size:v}),d){let y=C.data,P=new Uint8Array(y.length);for(let I=0;I<y.length;++I)y[I]>u&&(P[I]=1);C=new a.Tensor("bool",P,C.dims)}h.push(C)}return h}generate_crop_boxes(l,c,{crop_n_layers:_=0,overlap_ratio:u=512/1500,points_per_crop:d=32,crop_n_points_downscale_factor:g=1}={}){}}}),"./src/models/sam/processing_sam.js":((e,r,t)=>{t.r(r),t.d(r,{SamProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js");class a extends s.Processor{static image_processor_class=o.AutoImageProcessor;async _call(...i){return await this.image_processor(...i)}post_process_masks(...i){return this.image_processor.post_process_masks(...i)}reshape_input_points(...i){return this.image_processor.reshape_input_points(...i)}}}),"./src/models/sam2/image_processing_sam2.js":((e,r,t)=>{t.r(r),t.d(r,{Sam2ImageProcessor:()=>s.SamImageProcessor});var s=t("./src/models/sam/image_processing_sam.js")}),"./src/models/sam2/processing_sam2.js":((e,r,t)=>{t.r(r),t.d(r,{Sam2Processor:()=>o,Sam2VideoProcessor:()=>a});var s=t("./src/models/sam/processing_sam.js");class o extends s.SamProcessor{}class a extends o{}}),"./src/models/sam3/image_processing_sam3.js":((e,r,t)=>{t.r(r),t.d(r,{Sam3ImageProcessor:()=>s.Sam2ImageProcessor});var s=t("./src/models/sam2/image_processing_sam2.js")}),"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":((e,r,t)=>{t.r(r),t.d(r,{SeamlessM4TFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(l,c){return l=l.map(_=>_*32768),(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:c,transpose:!0})}async _call(l,{padding:c=!0,pad_to_multiple_of:_=2,do_normalize_per_mel_bins:u=!0,return_attention_mask:d=!0}={}){(0,s.validate_audio_inputs)(l,"SeamlessM4TFeatureExtractor");let g=await this._extract_fbank_features(l,this.config.max_length);if(u){let[P,I]=g.dims,f=g.data;for(let E=0;E<I;++E){let D=0;for(let z=0;z<P;++z)D+=f[z*I+E];let O=D/P,U=0;for(let z=0;z<P;++z)U+=(f[z*I+E]-O)**2;U/=P-1;let W=Math.sqrt(U+1e-7);for(let z=0;z<P;++z){let X=z*I+E;f[X]=(f[X]-O)/W}}}let h;if(c){let[P,I]=g.dims,f=g.data,E=P%_;if(E>0){let D=new Float32Array(I*(P+E));D.set(f),D.fill(this.config.padding_value,f.length);let O=P+E;g=new o.Tensor(g.type,D,[O,I]),d&&(h=new o.Tensor("int64",new BigInt64Array(O),[1,O]),h.data.fill(1n,0,P))}}let[x,F]=g.dims,v=this.config.stride;if(x%v!==0)throw new Error(`The number of frames (${x}) must be a multiple of the stride (${v}).`);let C=g.view(1,Math.floor(x/v),F*v),y={input_features:C};if(d){let P=C.dims[1],I=new BigInt64Array(P);if(h){let f=h.data;for(let E=1,D=0;E<x;E+=v,++D)I[D]=f[E]}else I.fill(1n);y.attention_mask=new o.Tensor("int64",I,[1,P])}return y}}}),"./src/models/segformer/image_processing_segformer.js":((e,r,t)=>{t.r(r),t.d(r,{SegformerFeatureExtractor:()=>a,SegformerImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_semantic_segmentation(...i){return(0,s.post_process_semantic_segmentation)(...i)}}class a extends o{}}),"./src/models/siglip/image_processing_siglip.js":((e,r,t)=>{t.r(r),t.d(r,{SiglipImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/smolvlm/image_processing_smolvlm.js":((e,r,t)=>{t.r(r),t.d(r,{SmolVLMImageProcessor:()=>s.Idefics3ImageProcessor});var s=t("./src/models/idefics3/image_processing_idefics3.js")}),"./src/models/smolvlm/processing_smolvlm.js":((e,r,t)=>{t.r(r),t.d(r,{SmolVLMProcessor:()=>s.Idefics3Processor});var s=t("./src/models/idefics3/processing_idefics3.js")}),"./src/models/snac/feature_extraction_snac.js":((e,r,t)=>{t.r(r),t.d(r,{SnacFeatureExtractor:()=>o});var s=t("./src/models/dac/feature_extraction_dac.js");class o extends s.DacFeatureExtractor{}}),"./src/models/speecht5/feature_extraction_speecht5.js":((e,r,t)=>{t.r(r),t.d(r,{SpeechT5FeatureExtractor:()=>o});var s=t("./src/base/feature_extraction_utils.js");class o extends s.FeatureExtractor{}}),"./src/models/speecht5/processing_speecht5.js":((e,r,t)=>{t.r(r),t.d(r,{SpeechT5Processor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/tokenizers.js"),a=t("./src/models/auto/feature_extraction_auto.js");class n extends s.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=a.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/swin2sr/image_processing_swin2sr.js":((e,r,t)=>{t.r(r),t.d(r,{Swin2SRImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(n,i,l,c={}){let[_,u,d]=i;return super.pad_image(n,i,{width:u+(l-u%l)%l,height:_+(l-_%l)%l},{mode:"symmetric",center:!1,constant_values:-1,...c})}}}),"./src/models/ultravox/processing_ultravox.js":((e,r,t)=>{t.r(r),t.d(r,{UltravoxProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!0;async _call(l,c=null,_={}){if(Array.isArray(l))throw new Error("Batched inputs are not supported yet.");let u={};if(c){let g=c.length,{input_features:h}=await this.feature_extractor(c,{..._,max_length:g}),x=Math.round(g/this.config.encoder_ds_factor+1e-4),F=1+Math.ceil(x/this.config.stack_factor);u.audio_token_len=[F],u.audio_values=h;let v=this.config.audio_placeholder;if(!l.includes(v))throw new Error(`The input text does not contain the image token ${v}.`);l=l.replaceAll(v,v.repeat(F))}return{...this.tokenizer(l,{add_special_tokens:!1,..._}),...u}}}}),"./src/models/vit/image_processing_vit.js":((e,r,t)=>{t.r(r),t.d(r,{ViTFeatureExtractor:()=>a,ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/vitmatte/image_processing_vitmatte.js":((e,r,t)=>{t.r(r),t.d(r,{VitMatteImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(i,l){Array.isArray(i)||(i=[i]),Array.isArray(l)||(l=[l]);let c=await Promise.all(i.map(d=>this.preprocess(d))),_=await Promise.all(l.map(d=>this.preprocess(d,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,o.stack)(c.map((d,g)=>(0,o.cat)([d.pixel_values,_[g].pixel_values],0)),0),original_sizes:c.map(d=>d.original_size),reshaped_input_sizes:c.map(d=>d.reshaped_input_size)}}}}),"./src/models/vitpose/image_processing_vitpose.js":((e,r,t)=>{t.r(r),t.d(r,{VitPoseImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_pose_estimation(n,i,{threshold:l=null}={}){let c=n.tolist(),[_,u,d,g]=n.dims,h=[];for(let x=0;x<_;++x){let F=c[x],v=i[x],b=[];for(let C=0;C<v.length;++C){let y=v[C],P=[],I=[],f=[],E=y.at(-2)/g,D=y.at(-1)/d;for(let O=0;O<F.length;++O){let[U,W]=[0,0],z=0,X=-1/0,J=F[O];for(let re=0;re<J.length;++re){let oe=J[re];for(let ne=0;ne<oe.length;++ne){let ye=oe[ne];z+=ye,X=Math.max(X,ye),U+=(ne+.5)*ye,W+=re*ye}}if(l!=null&&X<l)continue;let q=[E*U/z,D*W/z];P.push(q),f.push(O),I.push(X)}b.push({bbox:y,scores:I,labels:f,keypoints:P})}h.push(b)}return h}}}),"./src/models/voxtral/processing_voxtral.js":((e,r,t)=>{t.r(r),t.d(r,{VoxtralProcessor:()=>u});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js"),n=t("./src/utils/tensor.js");let i="[AUDIO]",l="[BEGIN_AUDIO]",c=375;function _(d,g){let h=[];for(let x=0;x<d.length;x+=g)h.push(d.subarray(x,Math.min(x+g,d.length)));return h}class u extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!1;async _call(g,h=null,x={}){if(Array.isArray(g))throw new Error("Batched inputs are not supported yet.");let F={};if(h){if(!g.includes(i))throw new Error(`The input text does not contain the audio token ${i}.`);Array.isArray(h)||(h=[h]);let b=g.split(i),C=b.length-1;if(C!==h.length)throw new Error(`The number of audio inputs (${h.length}) does not match the number of audio tokens in the text (${C}).`);let y=this.feature_extractor.config.n_samples,P=h.map(O=>_(O,y)),I=P.map(O=>O.length),f=P.flat(),E=(await Promise.all(f.map(O=>this.feature_extractor(O,x)))).map(O=>O.input_features);F.audio_values=E.length>1?(0,n.cat)(E,0):E[0];let D=b[0];for(let O=0;O<I.length;++O){D+=l;for(let U=0;U<I[O];++U)D+=i.repeat(c);D+=b[O+1]}g=D}return{...this.tokenizer(g,{add_special_tokens:!1,...x}),...F}}}}),"./src/models/wav2vec2/feature_extraction_wav2vec2.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2FeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{_zero_mean_unit_var_norm(i){let c=i.reduce((u,d)=>u+d,0)/i.length,_=i.reduce((u,d)=>u+(d-c)**2,0)/i.length;return i.map(u=>(u-c)/Math.sqrt(_+1e-7))}async _call(i){(0,s.validate_audio_inputs)(i,"Wav2Vec2FeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=i;this.config.do_normalize&&(l=this._zero_mean_unit_var_norm(l));let c=[1,l.length];return{input_values:new o.Tensor("float32",l,c),attention_mask:new o.Tensor("int64",new BigInt64Array(l.length).fill(1n),c)}}}}),"./src/models/wav2vec2/processing_wav2vec2.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2Processor:()=>n});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=s.AutoTokenizer;static feature_extractor_class=o.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2ProcessorWithLM:()=>n});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=s.AutoTokenizer;static feature_extractor_class=o.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/wespeaker/feature_extraction_wespeaker.js":((e,r,t)=>{t.r(r),t.d(r,{WeSpeakerFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"hamming",{periodic:!1}),this.min_num_frames=this.config.min_num_frames}async _extract_fbank_features(l){return l=l.map(c=>c*32768),(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(l){(0,s.validate_audio_inputs)(l,"WeSpeakerFeatureExtractor");let c=(await this._extract_fbank_features(l)).unsqueeze_(0);if(this.config.fbank_centering_span===null){let _=c.mean(1).data,u=c.data,[d,g,h]=c.dims;for(let x=0;x<d;++x){let F=x*g*h,v=x*h;for(let b=0;b<g;++b){let C=F+b*h;for(let y=0;y<h;++y)u[C+y]-=_[v+y]}}}return{input_features:c}}}}),"./src/models/whisper/common_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WHISPER_LANGUAGE_MAPPING:()=>o,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>a,whisper_language_to_code:()=>n});let s=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],o=new Map(s),a=new Map([...s.map(([i,l])=>[l,i]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function n(i){i=i.toLowerCase();let l=a.get(i);if(l===void 0){let c=i.match(/^<\|([a-z]{2})\|>$/);if(c&&(i=c[1]),o.has(i))l=i;else{let u=i.length===2?o.keys():o.values();throw new Error(`Language "${i}" is not supported. Must be one of: ${JSON.stringify(Array.from(u))}`)}}return l}}),"./src/models/whisper/feature_extraction_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperFeatureExtractor:()=>i});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js"),n=t("./src/utils/maths.js");class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,a.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney"),this.window=(0,a.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(c){let _=await(0,a.spectrogram)(c,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:Math.min(Math.floor(c.length/this.config.hop_length),this.config.nb_max_frames)}),u=_.data,d=(0,n.max)(u)[0];for(let g=0;g<u.length;++g)u[g]=(Math.max(u[g],d-8)+4)/4;return _}async _call(c,{max_length:_=null}={}){(0,s.validate_audio_inputs)(c,"WhisperFeatureExtractor");let u,d=_??this.config.n_samples;return c.length>d?(c.length>this.config.n_samples&&console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),u=c.slice(0,d)):(u=new Float32Array(d),u.set(c)),{input_features:(await this._extract_fbank_features(u)).unsqueeze_(0)}}}}),"./src/models/whisper/generation_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperGenerationConfig:()=>o});var s=t("./src/generation/configuration_utils.js");class o extends s.GenerationConfig{return_timestamps=null;return_token_timestamps=null;num_frames=null;alignment_heads=null;task=null;language=null;no_timestamps_token_id=null;prompt_ids=null;is_multilingual=null;lang_to_id=null;task_to_id=null;max_initial_timestamp_index=1}}),"./src/models/whisper/processing_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/yolos/image_processing_yolos.js":((e,r,t)=>{t.r(r),t.d(r,{YolosFeatureExtractor:()=>a,YolosImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...i){return(0,s.post_process_object_detection)(...i)}}class a extends o{}}),"./src/ops/registry.js":((e,r,t)=>{t.r(r),t.d(r,{TensorOpRegistry:()=>n});var s=t("./src/backends/onnx.js"),o=t("./src/utils/tensor.js");let a=async(i,l,c)=>{let _=await(0,s.createInferenceSession)(new Uint8Array(i),l);return(async u=>{let d=(0,s.isONNXProxy)(),g=Object.fromEntries(Object.entries(u).map(([x,F])=>[x,(d?F.clone():F).ort_tensor])),h=await(0,s.runInferenceSession)(_,g);return Array.isArray(c)?c.map(x=>new o.Tensor(h[x])):new o.Tensor(h[c])})};class n{static session_options={};static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=a([8,10,18,0,58,129,1,10,41,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,18,10,4,109,111,100,101,34,7,110,101,97,114,101,115,116,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,21],this.session_options,"y")),this._nearest_interpolate_4d}static get bilinear_interpolate_4d(){return this._bilinear_interpolate_4d||(this._bilinear_interpolate_4d=a([8,9,18,0,58,128,1,10,40,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,17,10,4,109,111,100,101,34,6,108,105,110,101,97,114,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bilinear_interpolate_4d}static get bicubic_interpolate_4d(){return this._bicubic_interpolate_4d||(this._bicubic_interpolate_4d=a([8,9,18,0,58,127,10,39,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,16,10,4,109,111,100,101,34,5,99,117,98,105,99,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bicubic_interpolate_4d}static get matmul(){return this._matmul||(this._matmul=a([8,9,18,0,58,55,10,17,10,1,97,10,1,98,18,1,99,34,6,77,97,116,77,117,108,18,1,114,90,9,10,1,97,18,4,10,2,8,1,90,9,10,1,98,18,4,10,2,8,1,98,9,10,1,99,18,4,10,2,8,1,66,2,16,20],this.session_options,"c")),this._matmul}static get stft(){return this._stft||(this._stft=a([8,7,18,0,58,148,1,10,38,10,1,115,10,1,106,10,1,119,10,1,108,18,1,111,34,4,83,84,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,115,90,26,10,1,115,18,21,10,19,8,1,18,15,10,3,18,1,98,10,3,18,1,115,10,3,18,1,99,90,11,10,1,106,18,6,10,4,8,7,18,0,90,16,10,1,119,18,11,10,9,8,1,18,5,10,3,18,1,119,90,11,10,1,108,18,6,10,4,8,7,18,0,98,31,10,1,111,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,102,10,3,18,1,100,10,3,18,1,99,66,2,16,17],this.session_options,"o")),this._stft}static get rfft(){return this._rfft||(this._rfft=a([8,9,18,0,58,97,10,33,10,1,120,10,0,10,1,97,18,1,121,34,3,68,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,100,90,21,10,1,120,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,90,11,10,1,97,18,6,10,4,8,7,18,0,98,21,10,1,121,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,66,2,16,20],this.session_options,"y")),this._rfft}static get top_k(){return this._top_k||(this._top_k=a([8,10,18,0,58,73,10,18,10,1,120,10,1,107,18,1,118,18,1,105,34,4,84,111,112,75,18,1,116,90,9,10,1,120,18,4,10,2,8,1,90,15,10,1,107,18,10,10,8,8,7,18,4,10,2,8,1,98,9,10,1,118,18,4,10,2,8,1,98,9,10,1,105,18,4,10,2,8,7,66,2,16,21],this.session_options,["v","i"])),this._top_k}static get slice(){return this._slice||(this._slice=a([8,7,18,0,58,96,10,25,10,1,120,10,1,115,10,1,101,10,1,97,10,1,116,18,1,121,34,5,83,108,105,99,101,18,1,114,90,9,10,1,120,18,4,10,2,8,1,90,9,10,1,115,18,4,10,2,8,7,90,9,10,1,101,18,4,10,2,8,7,90,9,10,1,97,18,4,10,2,8,7,90,9,10,1,116,18,4,10,2,8,7,98,9,10,1,121,18,4,10,2,8,1,66,2,16,13],this.session_options,"y")),this._slice}}}),"./src/pipelines.js":((e,r,t)=>{t.r(r),t.d(r,{AudioClassificationPipeline:()=>z,AutomaticSpeechRecognitionPipeline:()=>J,BackgroundRemovalPipeline:()=>ne,DepthEstimationPipeline:()=>ue,DocumentQuestionAnsweringPipeline:()=>R,FeatureExtractionPipeline:()=>U,FillMaskPipeline:()=>y,ImageClassificationPipeline:()=>re,ImageFeatureExtractionPipeline:()=>W,ImageSegmentationPipeline:()=>oe,ImageToImagePipeline:()=>ee,ImageToTextPipeline:()=>q,ObjectDetectionPipeline:()=>Y,Pipeline:()=>F,QuestionAnsweringPipeline:()=>C,SummarizationPipeline:()=>I,Text2TextGenerationPipeline:()=>P,TextClassificationPipeline:()=>v,TextGenerationPipeline:()=>D,TextToAudioPipeline:()=>L,TokenClassificationPipeline:()=>b,TranslationPipeline:()=>f,ZeroShotAudioClassificationPipeline:()=>X,ZeroShotClassificationPipeline:()=>O,ZeroShotImageClassificationPipeline:()=>ye,ZeroShotObjectDetectionPipeline:()=>H,pipeline:()=>Le});var s=t("./src/tokenizers.js"),o=t("./src/models.js"),a=t("./src/models/auto/processing_auto.js"),n=t("./src/base/processing_utils.js"),i=t("./src/utils/generic.js"),l=t("./src/utils/core.js"),c=t("./src/utils/maths.js"),_=t("./src/utils/audio.js"),u=t("./src/utils/tensor.js"),d=t("./src/utils/image.js");async function g(we){return Array.isArray(we)||(we=[we]),await Promise.all(we.map(A=>d.RawImage.read(A)))}async function h(we,A){return Array.isArray(we)||(we=[we]),await Promise.all(we.map(le=>typeof le=="string"||le instanceof URL?(0,_.read_audio)(le,A):le instanceof Float64Array?new Float32Array(le):le))}function x(we,A){A&&(we=we.map(ve=>ve|0));let[le,ge,be,Ae]=we;return{xmin:le,ymin:ge,xmax:be,ymax:Ae}}class F extends i.Callable{constructor({task:A,model:le,tokenizer:ge=null,processor:be=null}){super(),this.task=A,this.model=le,this.tokenizer=ge,this.processor=be}async dispose(){await this.model.dispose()}}class v extends F{constructor(A){super(A)}async _call(A,{top_k:le=1}={}){let ge=this.tokenizer(A,{padding:!0,truncation:!0}),be=await this.model(ge),Ae=this.model.config.problem_type==="multi_label_classification"?Pe=>Pe.sigmoid():Pe=>new u.Tensor("float32",(0,c.softmax)(Pe.data),Pe.dims),ve=this.model.config.id2label,pe=[];for(let Pe of be.logits){let fe=Ae(Pe),Te=await(0,u.topk)(fe,le),We=Te[0].tolist(),Re=Te[1].tolist().map((Ne,ot)=>({label:ve?ve[Ne]:`LABEL_${Ne}`,score:We[ot]}));le===1?pe.push(...Re):pe.push(Re)}return Array.isArray(A)||le===1?pe:pe[0]}}class b extends F{constructor(A){super(A)}async _call(A,{ignore_labels:le=["O"]}={}){let ge=Array.isArray(A),be=this.tokenizer(ge?A:[A],{padding:!0,truncation:!0}),ve=(await this.model(be)).logits,pe=this.model.config.id2label,Pe=[];for(let fe=0;fe<ve.dims[0];++fe){let Te=be.input_ids[fe],We=ve[fe],$e=[];for(let Re=0;Re<We.dims[0];++Re){let Ne=We[Re],ot=(0,c.max)(Ne.data)[1],De=pe?pe[ot]:`LABEL_${ot}`;if(le.includes(De))continue;let Qe=this.tokenizer.decode([Te[Re].item()],{skip_special_tokens:!0});if(Qe==="")continue;let je=(0,c.softmax)(Ne.data);$e.push({entity:De,score:je[ot],index:Re,word:Qe})}Pe.push($e)}return ge?Pe:Pe[0]}}class C extends F{constructor(A){super(A)}async _call(A,le,{top_k:ge=1}={}){let be=this.tokenizer(A,{text_pair:le,padding:!0,truncation:!0}),{start_logits:Ae,end_logits:ve}=await this.model(be),pe=be.input_ids.tolist(),Pe=be.attention_mask.tolist(),fe=this.tokenizer.all_special_ids,Te=[];for(let We=0;We<Ae.dims[0];++We){let $e=pe[We],Re=$e.findIndex(Ke=>Ke==this.tokenizer.sep_token_id),Ne=Pe[We].map((Ke,bt)=>Ke==1&&(bt===0||bt>Re&&fe.findIndex(At=>At==$e[bt])===-1)),ot=Ae[We].tolist(),De=ve[We].tolist();for(let Ke=1;Ke<ot.length;++Ke)(Pe[We]==0||Ke<=Re||fe.findIndex(bt=>bt==$e[Ke])!==-1)&&(ot[Ke]=-1/0,De[Ke]=-1/0);let Qe=(0,c.softmax)(ot).map((Ke,bt)=>[Ke,bt]),je=(0,c.softmax)(De).map((Ke,bt)=>[Ke,bt]);Qe[0][0]=0,je[0][0]=0;let pt=(0,l.product)(Qe,je).filter(Ke=>Ke[0][1]<=Ke[1][1]).map(Ke=>[Ke[0][1],Ke[1][1],Ke[0][0]*Ke[1][0]]).sort((Ke,bt)=>bt[2]-Ke[2]);for(let Ke=0;Ke<Math.min(pt.length,ge);++Ke){let[bt,At,Lt]=pt[Ke],fr=$e.slice(bt,At+1),zt=this.tokenizer.decode(fr,{skip_special_tokens:!0});Te.push({answer:zt,score:Lt})}}return ge===1?Te[0]:Te}}class y extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=this.tokenizer(A,{padding:!0,truncation:!0}),{logits:be}=await this.model(ge),Ae=[],ve=ge.input_ids.tolist();for(let pe=0;pe<ve.length;++pe){let Pe=ve[pe],fe=Pe.findIndex(Ne=>Ne==this.tokenizer.mask_token_id);if(fe===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);let Te=be[pe][fe],We=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Te.data),Te.dims),le),$e=We[0].tolist(),Re=We[1].tolist();Ae.push(Re.map((Ne,ot)=>{let De=Pe.slice();return De[fe]=Ne,{score:$e[ot],token:Number(Ne),token_str:this.tokenizer.decode([Ne]),sequence:this.tokenizer.decode(De,{skip_special_tokens:!0})}}))}return Array.isArray(A)?Ae:Ae[0]}}class P extends F{_key="generated_text";constructor(A){super(A)}async _call(A,le={}){Array.isArray(A)||(A=[A]),this.model.config.prefix&&(A=A.map(Pe=>this.model.config.prefix+Pe));let ge=this.model.config.task_specific_params;ge&&ge[this.task]&&ge[this.task].prefix&&(A=A.map(Pe=>ge[this.task].prefix+Pe));let be=this.tokenizer,Ae={padding:!0,truncation:!0},ve;this instanceof f&&"_build_translation_inputs"in be?ve=be._build_translation_inputs(A,Ae,le):ve=be(A,Ae);let pe=await this.model.generate({...ve,...le});return be.batch_decode(pe,{skip_special_tokens:!0}).map(Pe=>({[this._key]:Pe}))}}class I extends P{_key="summary_text";constructor(A){super(A)}}class f extends P{_key="translation_text";constructor(A){super(A)}}function E(we){return Array.isArray(we)&&we.every(A=>"role"in A&&"content"in A)}class D extends F{constructor(A){super(A)}async _call(A,le={}){let ge=!1,be=!1,Ae=le.add_special_tokens??(this.tokenizer.add_bos_token||this.tokenizer.add_eos_token)??!1,ve;if(typeof A=="string")ve=A=[A];else if(Array.isArray(A)&&A.every(Re=>typeof Re=="string"))ge=!0,ve=A;else{if(E(A))A=[A];else if(Array.isArray(A)&&A.every(E))ge=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");be=!0,ve=A.map(Re=>this.tokenizer.apply_chat_template(Re,{tokenize:!1,add_generation_prompt:!0})),Ae=!1}let pe=be?!1:le.return_full_text??!0;this.tokenizer.padding_side="left";let Pe=this.tokenizer(ve,{add_special_tokens:Ae,padding:!0,truncation:!0}),fe=await this.model.generate({...Pe,...le}),Te=this.tokenizer.batch_decode(fe,{skip_special_tokens:!0}),We;!pe&&Pe.input_ids.dims.at(-1)>0&&(We=this.tokenizer.batch_decode(Pe.input_ids,{skip_special_tokens:!0}).map(Re=>Re.length));let $e=Array.from({length:A.length},Re=>[]);for(let Re=0;Re<Te.length;++Re){let Ne=Math.floor(Re/fe.dims[0]*A.length);We&&(Te[Re]=Te[Re].slice(We[Ne])),$e[Ne].push({generated_text:be?[...A[Ne],{role:"assistant",content:Te[Re]}]:Te[Re]})}return!ge&&$e.length===1?$e[0]:$e}}class O extends F{constructor(A){super(A),this.label2id=Object.fromEntries(Object.entries(this.model.config.label2id).map(([le,ge])=>[le.toLowerCase(),ge])),this.entailment_id=this.label2id.entailment,this.entailment_id===void 0&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=this.label2id.contradiction??this.label2id.not_entailment,this.contradiction_id===void 0&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(A,le,{hypothesis_template:ge="This example is {}.",multi_label:be=!1}={}){let Ae=Array.isArray(A);Ae||(A=[A]),Array.isArray(le)||(le=[le]);let ve=le.map(fe=>ge.replace("{}",fe)),pe=be||le.length===1,Pe=[];for(let fe of A){let Te=[];for(let Re of ve){let Ne=this.tokenizer(fe,{text_pair:Re,padding:!0,truncation:!0}),ot=await this.model(Ne);pe?Te.push([ot.logits.data[this.contradiction_id],ot.logits.data[this.entailment_id]]):Te.push(ot.logits.data[this.entailment_id])}let $e=(pe?Te.map(Re=>(0,c.softmax)(Re)[1]):(0,c.softmax)(Te)).map((Re,Ne)=>[Re,Ne]).sort((Re,Ne)=>Ne[0]-Re[0]);Pe.push({sequence:fe,labels:$e.map(Re=>le[Re[1]]),scores:$e.map(Re=>Re[0])})}return Ae?Pe:Pe[0]}}class U extends F{constructor(A){super(A)}async _call(A,{pooling:le="none",normalize:ge=!1,quantize:be=!1,precision:Ae="binary"}={}){let ve=this.tokenizer(A,{padding:!0,truncation:!0}),pe=await this.model(ve),Pe=pe.last_hidden_state??pe.logits??pe.token_embeddings;switch(le){case"none":break;case"mean":Pe=(0,u.mean_pooling)(Pe,ve.attention_mask);break;case"first_token":case"cls":Pe=Pe.slice(null,0);break;case"last_token":case"eos":Pe=Pe.slice(null,-1);break;default:throw Error(`Pooling method '${le}' not supported.`)}return ge&&(Pe=Pe.normalize(2,-1)),be&&(Pe=(0,u.quantize_embeddings)(Pe,Ae)),Pe}}class W extends F{constructor(A){super(A)}async _call(A,{pool:le=null}={}){let ge=await g(A),{pixel_values:be}=await this.processor(ge),Ae=await this.model({pixel_values:be}),ve;if(le){if(!("pooler_output"in Ae))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");ve=Ae.pooler_output}else ve=Ae.last_hidden_state??Ae.logits??Ae.image_embeds;return ve}}class z extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=this.processor.feature_extractor.config.sampling_rate,be=await h(A,ge),Ae=this.model.config.id2label,ve=[];for(let pe of be){let Pe=await this.processor(pe),Te=(await this.model(Pe)).logits[0],We=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Te.data),Te.dims),le),$e=We[0].tolist(),Ne=We[1].tolist().map((ot,De)=>({label:Ae?Ae[ot]:`LABEL_${ot}`,score:$e[De]}));ve.push(Ne)}return Array.isArray(A)?ve:ve[0]}}class X extends F{constructor(A){super(A)}async _call(A,le,{hypothesis_template:ge="This is a sound of {}."}={}){let be=!Array.isArray(A);be&&(A=[A]);let Ae=le.map(Te=>ge.replace("{}",Te)),ve=this.tokenizer(Ae,{padding:!0,truncation:!0}),pe=this.processor.feature_extractor.config.sampling_rate,Pe=await h(A,pe),fe=[];for(let Te of Pe){let We=await this.processor(Te),$e=await this.model({...ve,...We}),Re=(0,c.softmax)($e.logits_per_audio.data);fe.push([...Re].map((Ne,ot)=>({score:Ne,label:le[ot]})))}return be?fe[0]:fe}}class J extends F{constructor(A){super(A)}async _call(A,le={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(A,le);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":case"parakeet_ctc":return this._call_wav2vec2(A,le);case"moonshine":return this._call_moonshine(A,le);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(A,le){le.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),le.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');let ge=!Array.isArray(A);ge&&(A=[A]);let be=this.processor.feature_extractor.config.sampling_rate,Ae=await h(A,be),ve=[];for(let pe of Ae){let Pe=await this.processor(pe),Te=(await this.model(Pe)).logits[0],We=[];for(let Re of Te)We.push((0,c.max)(Re.data)[1]);let $e=this.tokenizer.decode(We,{skip_special_tokens:!0}).trim();ve.push({text:$e})}return ge?ve[0]:ve}async _call_whisper(A,le){let ge=le.return_timestamps??!1,be=le.chunk_length_s??0,Ae=le.force_full_sequences??!1,ve=le.stride_length_s??null,pe={...le};ge==="word"&&(pe.return_token_timestamps=!0,pe.return_timestamps=!1);let Pe=!Array.isArray(A);Pe&&(A=[A]);let fe=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,Te=this.processor.feature_extractor.config.hop_length,We=this.processor.feature_extractor.config.sampling_rate,$e=await h(A,We),Re=[];for(let Ne of $e){let ot=[];if(be>0){if(ve===null)ve=be/6;else if(be<=ve)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");let je=We*be,pt=We*ve,Ke=je-2*pt,bt=0;for(;;){let At=bt+je,Lt=Ne.subarray(bt,At),fr=await this.processor(Lt),zt=bt===0,yr=At>=Ne.length;if(ot.push({stride:[Lt.length,zt?0:pt,yr?0:pt],input_features:fr.input_features,is_last:yr}),yr)break;bt+=Ke}}else ot=[{stride:[Ne.length,0,0],input_features:(await this.processor(Ne)).input_features,is_last:!0}];for(let je of ot){pe.num_frames=Math.floor(je.stride[0]/Te);let pt=await this.model.generate({inputs:je.input_features,...pe});ge==="word"?(je.tokens=pt.sequences.tolist()[0],je.token_timestamps=pt.token_timestamps.tolist()[0].map(Ke=>(0,c.round)(Ke,2))):je.tokens=pt[0].tolist(),je.stride=je.stride.map(Ke=>Ke/We)}let[De,Qe]=this.tokenizer._decode_asr(ot,{time_precision:fe,return_timestamps:ge,force_full_sequences:Ae});Re.push({text:De,...Qe})}return Pe?Re[0]:Re}async _call_moonshine(A,le){let ge=!Array.isArray(A);ge&&(A=[A]);let be=this.processor.feature_extractor.config.sampling_rate,Ae=await h(A,be),ve=[];for(let pe of Ae){let Pe=await this.processor(pe),fe=Math.floor(pe.length/be)*6,Te=await this.model.generate({max_new_tokens:fe,...le,...Pe}),We=this.processor.batch_decode(Te,{skip_special_tokens:!0})[0];ve.push({text:We})}return ge?ve[0]:ve}}class q extends F{constructor(A){super(A)}async _call(A,le={}){let ge=Array.isArray(A),be=await g(A),{pixel_values:Ae}=await this.processor(be),ve=[];for(let pe of Ae){pe.dims=[1,...pe.dims];let Pe=await this.model.generate({inputs:pe,...le}),fe=this.tokenizer.batch_decode(Pe,{skip_special_tokens:!0}).map(Te=>({generated_text:Te.trim()}));ve.push(fe)}return ge?ve:ve[0]}}class re extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=await g(A),{pixel_values:be}=await this.processor(ge),Ae=await this.model({pixel_values:be}),ve=this.model.config.id2label,pe=[];for(let Pe of Ae.logits){let fe=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Pe.data),Pe.dims),le),Te=fe[0].tolist(),$e=fe[1].tolist().map((Re,Ne)=>({label:ve?ve[Re]:`LABEL_${Re}`,score:Te[Ne]}));pe.push($e)}return Array.isArray(A)?pe:pe[0]}}class oe extends F{constructor(A){super(A),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(A,{threshold:le=.5,mask_threshold:ge=.5,overlap_mask_area_threshold:be=.8,label_ids_to_fuse:Ae=null,target_sizes:ve=null,subtask:pe=null}={}){if(Array.isArray(A)&&A.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");let fe=await g(A),Te=fe.map(je=>[je.height,je.width]),We=await this.processor(fe),{inputNames:$e,outputNames:Re}=this.model.sessions.model;if(!$e.includes("pixel_values")){if($e.length!==1)throw Error(`Expected a single input name, but got ${$e.length} inputs: ${$e}.`);let je=$e[0];if(je in We)throw Error(`Input name ${je} already exists in the inputs.`);We[je]=We.pixel_values}let Ne=await this.model(We),ot=null;if(pe!==null)ot=this.subtasks_mapping[pe];else if(this.processor.image_processor){for(let[je,pt]of Object.entries(this.subtasks_mapping))if(pt in this.processor.image_processor){ot=this.processor.image_processor[pt].bind(this.processor.image_processor),pe=je;break}}let De=this.model.config.id2label,Qe=[];if(pe)if(pe==="panoptic"||pe==="instance"){let je=ot(Ne,le,ge,be,Ae,ve??Te)[0],pt=je.segmentation;for(let Ke of je.segments_info){let bt=new Uint8ClampedArray(pt.data.length);for(let Lt=0;Lt<pt.data.length;++Lt)pt.data[Lt]===Ke.id&&(bt[Lt]=255);let At=new d.RawImage(bt,pt.dims[1],pt.dims[0],1);Qe.push({score:Ke.score,label:De[Ke.label_id],mask:At})}}else if(pe==="semantic"){let{segmentation:je,labels:pt}=ot(Ne,ve??Te)[0];for(let Ke of pt){let bt=new Uint8ClampedArray(je.data.length);for(let Lt=0;Lt<je.data.length;++Lt)je.data[Lt]===Ke&&(bt[Lt]=255);let At=new d.RawImage(bt,je.dims[1],je.dims[0],1);Qe.push({score:null,label:De[Ke],mask:At})}}else throw Error(`Subtask ${pe} not supported.`);else{let pt=Ne[Re[0]];for(let Ke=0;Ke<Te.length;++Ke){let bt=Te[Ke],At=pt[Ke];At.data.some(fr=>fr<-1e-5||fr>1+1e-5)&&At.sigmoid_();let Lt=await d.RawImage.fromTensor(At.mul_(255).to("uint8")).resize(bt[1],bt[0]);Qe.push({label:null,score:null,mask:Lt})}}return Qe}}class ne extends oe{constructor(A){super(A)}async _call(A,le={}){if(Array.isArray(A)&&A.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");let be=await g(A),Ae=await super._call(A,le);return be.map((pe,Pe)=>{let fe=pe.clone();return fe.putAlpha(Ae[Pe].mask),fe})}}class ye extends F{constructor(A){super(A)}async _call(A,le,{hypothesis_template:ge="This is a photo of {}"}={}){let be=Array.isArray(A),Ae=await g(A),ve=le.map($e=>ge.replace("{}",$e)),pe=this.tokenizer(ve,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:Pe}=await this.processor(Ae),fe=await this.model({...pe,pixel_values:Pe}),Te=this.model.config.model_type==="siglip"?$e=>$e.sigmoid().data:$e=>(0,c.softmax)($e.data),We=[];for(let $e of fe.logits_per_image){let Ne=[...Te($e)].map((ot,De)=>({score:ot,label:le[De]}));Ne.sort((ot,De)=>De.score-ot.score),We.push(Ne)}return be?We:We[0]}}class Y extends F{constructor(A){super(A)}async _call(A,{threshold:le=.9,percentage:ge=!1}={}){let be=Array.isArray(A);if(be&&A.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");let Ae=await g(A),ve=ge?null:Ae.map(Re=>[Re.height,Re.width]),{pixel_values:pe,pixel_mask:Pe}=await this.processor(Ae),fe=await this.model({pixel_values:pe,pixel_mask:Pe}),Te=this.processor.image_processor.post_process_object_detection(fe,le,ve),We=this.model.config.id2label,$e=Te.map(Re=>Re.boxes.map((Ne,ot)=>({score:Re.scores[ot],label:We[Re.classes[ot]],box:x(Ne,!ge)})));return be?$e:$e[0]}}class H extends F{constructor(A){super(A)}async _call(A,le,{threshold:ge=.1,top_k:be=null,percentage:Ae=!1}={}){let ve=Array.isArray(A),pe=await g(A),Pe=this.tokenizer(le,{padding:!0,truncation:!0}),fe=await this.processor(pe),Te=[];for(let We=0;We<pe.length;++We){let $e=pe[We],Re=Ae?null:[[$e.height,$e.width]],Ne=fe.pixel_values[We].unsqueeze_(0),ot=await this.model({...Pe,pixel_values:Ne}),De;if("post_process_grounded_object_detection"in this.processor){let Qe=this.processor.post_process_grounded_object_detection(ot,Pe.input_ids,{box_threshold:ge,text_threshold:ge,target_sizes:Re})[0];De=Qe.boxes.map((je,pt)=>({score:Qe.scores[pt],label:Qe.labels[pt],box:x(je,!Ae)}))}else{let Qe=this.processor.image_processor.post_process_object_detection(ot,ge,Re,!0)[0];De=Qe.boxes.map((je,pt)=>({score:Qe.scores[pt],label:le[Qe.classes[pt]],box:x(je,!Ae)}))}De.sort((Qe,je)=>je.score-Qe.score),be!==null&&(De=De.slice(0,be)),Te.push(De)}return ve?Te:Te[0]}}class R extends F{constructor(A){super(A)}async _call(A,le,ge={}){let be=(await g(A))[0],{pixel_values:Ae}=await this.processor(be),ve=`<s_docvqa><s_question>${le}</s_question><s_answer>`,pe=this.tokenizer(ve,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,Pe=await this.model.generate({inputs:Ae,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:pe,...ge}),Te=this.tokenizer.batch_decode(Pe)[0].match(/<s_answer>(.*?)<\/s_answer>/),We=null;return Te&&Te.length>=2&&(We=Te[1].trim()),[{answer:We}]}}class L extends F{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(A){super(A),this.vocoder=A.vocoder??null}async _prepare_speaker_embeddings(A){if((typeof A=="string"||A instanceof URL)&&(A=new Float32Array(await(await fetch(A)).arrayBuffer())),A instanceof Float32Array)A=new u.Tensor("float32",A,[A.length]);else if(!(A instanceof u.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");return A}async _call(A,{speaker_embeddings:le=null,num_inference_steps:ge,speed:be}={}){return this.processor?this._call_text_to_spectrogram(A,{speaker_embeddings:le}):this.model.config.model_type==="supertonic"?this._call_supertonic(A,{speaker_embeddings:le,num_inference_steps:ge,speed:be}):this._call_text_to_waveform(A)}async _call_supertonic(A,{speaker_embeddings:le,num_inference_steps:ge,speed:be}){if(!le)throw new Error("Speaker embeddings must be provided for Supertonic models.");le=await this._prepare_speaker_embeddings(le);let{sampling_rate:Ae,style_dim:ve}=this.model.config;le=le.view(1,-1,ve);let pe=this.tokenizer(A,{padding:!0,truncation:!0}),{waveform:Pe}=await this.model.generate_speech({...pe,style:le,num_inference_steps:ge,speed:be});return new _.RawAudio(Pe.data,Ae)}async _call_text_to_waveform(A){let le=this.tokenizer(A,{padding:!0,truncation:!0}),{waveform:ge}=await this.model(le),be=this.model.config.sampling_rate;return new _.RawAudio(ge.data,be)}async _call_text_to_spectrogram(A,{speaker_embeddings:le}){this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await o.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"}));let{input_ids:ge}=this.tokenizer(A,{padding:!0,truncation:!0});le=await this._prepare_speaker_embeddings(le),le=le.view(1,-1);let{waveform:be}=await this.model.generate_speech(ge,le,{vocoder:this.vocoder}),Ae=this.processor.feature_extractor.config.sampling_rate;return new _.RawAudio(be.data,Ae)}}class ee extends F{constructor(A){super(A)}async _call(A){let le=await g(A),ge=await this.processor(le),be=await this.model(ge),Ae=[];for(let ve of be.reconstruction){let pe=ve.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");Ae.push(d.RawImage.fromTensor(pe))}return Ae.length>1?Ae:Ae[0]}}class ue extends F{constructor(A){super(A)}async _call(A){let le=await g(A),ge=await this.processor(le),{predicted_depth:be}=await this.model(ge),Ae=[];for(let ve=0;ve<le.length;++ve){let pe=be[ve],[Pe,fe]=pe.dims.slice(-2),[Te,We]=le[ve].size,$e=(await(0,u.interpolate_4d)(pe.view(1,1,Pe,fe),{size:[We,Te],mode:"bilinear"})).view(We,Te),Re=$e.min().item(),Ne=$e.max().item(),ot=$e.sub(Re).div_(Ne-Re).mul_(255).to("uint8").unsqueeze(0),De=d.RawImage.fromTensor(ot);Ae.push({predicted_depth:$e,depth:De})}return Ae.length>1?Ae:Ae[0]}}let ke=Object.freeze({"text-classification":{tokenizer:s.AutoTokenizer,pipeline:v,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:s.AutoTokenizer,pipeline:b,model:o.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:s.AutoTokenizer,pipeline:C,model:o.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:s.AutoTokenizer,pipeline:y,model:o.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:s.AutoTokenizer,pipeline:I,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:s.AutoTokenizer,pipeline:f,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:s.AutoTokenizer,pipeline:P,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:s.AutoTokenizer,pipeline:D,model:o.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:s.AutoTokenizer,pipeline:O,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:z,model:o.AutoModelForAudioClassification,processor:a.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:s.AutoTokenizer,pipeline:X,model:o.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:s.AutoTokenizer,pipeline:J,model:[o.AutoModelForSpeechSeq2Seq,o.AutoModelForCTC],processor:a.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:s.AutoTokenizer,pipeline:L,model:[o.AutoModelForTextToWaveform,o.AutoModelForTextToSpectrogram],processor:[a.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:s.AutoTokenizer,pipeline:q,model:o.AutoModelForVision2Seq,processor:a.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:re,model:o.AutoModelForImageClassification,processor:a.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:oe,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:ne,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:a.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:s.AutoTokenizer,pipeline:ye,model:o.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:Y,model:o.AutoModelForObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:s.AutoTokenizer,pipeline:H,model:o.AutoModelForZeroShotObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:s.AutoTokenizer,pipeline:R,model:o.AutoModelForDocumentQuestionAnswering,processor:a.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:ee,model:o.AutoModelForImageToImage,processor:a.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:ue,model:o.AutoModelForDepthEstimation,processor:a.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:s.AutoTokenizer,pipeline:U,model:o.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:a.AutoProcessor,pipeline:W,model:[o.AutoModelForImageFeatureExtraction,o.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),Ie=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function Le(we,A=null,{progress_callback:le=null,config:ge=null,cache_dir:be=null,local_files_only:Ae=!1,revision:ve="main",device:pe=null,dtype:Pe=null,subfolder:fe="onnx",use_external_data_format:Te=null,model_file_name:We=null,session_options:$e={}}={}){we=Ie[we]??we;let Re=ke[we.split("_",1)[0]];if(!Re)throw Error(`Unsupported pipeline: ${we}. Must be one of [${Object.keys(ke)}]`);A||(A=Re.default.model,console.log(`No model specified. Using default model: "${A}".`));let Ne={progress_callback:le,config:ge,cache_dir:be,local_files_only:Ae,revision:ve,device:pe,dtype:Pe,subfolder:fe,use_external_data_format:Te,model_file_name:We,session_options:$e},ot=new Map([["tokenizer",Re.tokenizer],["model",Re.model],["processor",Re.processor]]),De=await rt(ot,A,Ne);De.task=we,(0,l.dispatchCallback)(le,{status:"ready",task:we,model:A});let Qe=Re.pipeline;return new Qe(De)}async function rt(we,A,le){let ge=Object.create(null),be=[];for(let[Ae,ve]of we.entries()){if(!ve)continue;let pe;Array.isArray(ve)?pe=new Promise(async(Pe,fe)=>{let Te;for(let We of ve){if(We===null){Pe(null);return}try{Pe(await We.from_pretrained(A,le));return}catch($e){if($e.message?.includes("Unsupported model type"))Te=$e;else if($e.message?.includes("Could not locate file"))Te=$e;else{fe($e);return}}}fe(Te)}):pe=ve.from_pretrained(A,le),ge[Ae]=pe,be.push(pe)}await Promise.all(be);for(let[Ae,ve]of Object.entries(ge))ge[Ae]=await ve;return ge}}),"./src/tokenizers.js":((e,r,t)=>{t.r(r),t.d(r,{AlbertTokenizer:()=>qt,AutoTokenizer:()=>Uo,BartTokenizer:()=>qe,BertTokenizer:()=>Cs,BlenderbotSmallTokenizer:()=>Ue,BlenderbotTokenizer:()=>ze,BloomTokenizer:()=>Nt,CLIPTokenizer:()=>As,CamembertTokenizer:()=>Z,CodeGenTokenizer:()=>Is,CodeLlamaTokenizer:()=>Or,CohereTokenizer:()=>Ds,ConvBertTokenizer:()=>Q,DebertaTokenizer:()=>St,DebertaV2Tokenizer:()=>Xr,DistilBertTokenizer:()=>K,ElectraTokenizer:()=>xe,EsmTokenizer:()=>gr,FalconTokenizer:()=>_s,GPT2Tokenizer:()=>ut,GPTNeoXTokenizer:()=>Fs,GemmaTokenizer:()=>as,Grok1Tokenizer:()=>Nr,HerbertTokenizer:()=>k,LlamaTokenizer:()=>ur,M2M100Tokenizer:()=>_r,MBart50Tokenizer:()=>tt,MBartTokenizer:()=>wt,MPNetTokenizer:()=>Lr,MarianTokenizer:()=>ns,MgpstrTokenizer:()=>Vs,MobileBertTokenizer:()=>Ss,NllbTokenizer:()=>ar,NougatTokenizer:()=>Ht,PreTrainedTokenizer:()=>ft,Qwen2Tokenizer:()=>Ns,RoFormerTokenizer:()=>N,RobertaTokenizer:()=>gt,SiglipTokenizer:()=>$s,SpeechT5Tokenizer:()=>at,SqueezeBertTokenizer:()=>Qr,T5Tokenizer:()=>et,TokenizerModel:()=>U,VitsTokenizer:()=>js,Wav2Vec2CTCTokenizer:()=>Wr,WhisperTokenizer:()=>ps,XLMRobertaTokenizer:()=>Cr,XLMTokenizer:()=>ce,is_chinese_char:()=>C});var s=t("./src/utils/generic.js"),o=t("./src/utils/core.js"),a=t("./src/utils/hub.js"),n=t("./src/utils/maths.js"),i=t("./src/utils/tensor.js"),l=t("./src/utils/data-structures.js"),c=t("./node_modules/@huggingface/jinja/dist/index.js"),_=t("./src/models/whisper/common_whisper.js");async function u(de,S){let G=await Promise.all([(0,a.getModelJSON)(de,"tokenizer.json",!0,S),(0,a.getModelJSON)(de,"tokenizer_config.json",!0,S)]);return S.legacy!==null&&(G[1].legacy=S.legacy),G}function d(de,S){let G=[],te=0;for(let se of de.matchAll(S)){let me=se[0];te<se.index&&G.push(de.slice(te,se.index)),me.length>0&&G.push(me),te=se.index+me.length}return te<de.length&&G.push(de.slice(te)),G}function g(de,S=!0){if(de.Regex!==void 0){let G=de.Regex.replace(/\\([#&~])/g,"$1");for(let[te,se]of D)G=G.replaceAll(te,se);return new RegExp(G,"gu")}else if(de.String!==void 0){let G=(0,o.escapeRegExp)(de.String);return new RegExp(S?G:`(${G})`,"gu")}else return console.warn("Unknown pattern type:",de),null}function h(de){return new Map(Object.entries(de))}function x(de){let S=de.dims;switch(S.length){case 1:return de.tolist();case 2:if(S[0]!==1)throw new Error("Unable to decode tensor with `batch size !== 1`. Use `tokenizer.batch_decode(...)` for batched inputs.");return de.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${S.length}.`)}}function F(de){return de.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n\'t/g,"n't").replace(/ \'m/g,"'m").replace(/ \'s/g,"'s").replace(/ \'ve/g,"'ve").replace(/ \'re/g,"'re")}function v(de){return de.replace(/\p{M}/gu,"")}function b(de){return v(de.toLowerCase())}function C(de){return de>=19968&&de<=40959||de>=13312&&de<=19903||de>=131072&&de<=173791||de>=173824&&de<=177983||de>=177984&&de<=178207||de>=178208&&de<=183983||de>=63744&&de<=64255||de>=194560&&de<=195103}function y(de,S,G){let te=[],se=0;for(;se<de.length;){if(te.push(de[se]),(S.get(de[se])??G)!==G){++se;continue}for(;++se<de.length&&(S.get(de[se])??G)===G;)S.get(te.at(-1))!==G&&(te[te.length-1]+=de[se])}return te}function P(de){return de.match(/\S+/g)||[]}let I="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",f=new RegExp(`^[${I}]+$`,"gu"),E=".,!?\u2026\u3002\uFF0C\u3001\u0964\u06D4\u060C",D=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],["(?i:[sdmt]|ll|ve|re)","(?:[sS]|[dD]|[mM]|[tT]|[lL][lL]|[vV][eE]|[rR][eE])"],["[^\\r\\n\\p{L}\\p{N}]?+","[^\\r\\n\\p{L}\\p{N}]?"],["[^\\s\\p{L}\\p{N}]++","[^\\s\\p{L}\\p{N}]+"],[` ?[^(\\s|[${E}])]+`,` ?[^\\s${E}]+`]]);class O{constructor(S){this.content=S.content,this.id=S.id,this.single_word=S.single_word??!1,this.lstrip=S.lstrip??!1,this.rstrip=S.rstrip??!1,this.special=S.special??!1,this.normalized=S.normalized??null}}class U extends s.Callable{constructor(S){super(),this.config=S,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}static fromConfig(S,...G){switch(S.type){case"WordPiece":return new W(S);case"Unigram":return new z(S,...G);case"BPE":return new q(S);default:if(S.vocab)return Array.isArray(S.vocab)?new z(S,...G):Object.hasOwn(S,"continuing_subword_prefix")&&Object.hasOwn(S,"unk_token")?Object.hasOwn(S,"merges")?new q(S):new W(S):new re(S,...G);throw new Error(`Unknown TokenizerModel type: ${S.type}`)}}_call(S){return S=this.encode(S),this.fuse_unk&&(S=y(S,this.tokens_to_ids,this.unk_token_id)),S}encode(S){throw Error("encode should be implemented in subclass.")}convert_tokens_to_ids(S){return S.map(G=>this.tokens_to_ids.get(G)??this.unk_token_id)}convert_ids_to_tokens(S){return S.map(G=>this.vocab[G]??this.unk_token)}}class W extends U{constructor(S){super(S),this.tokens_to_ids=h(S.vocab),this.unk_token_id=this.tokens_to_ids.get(S.unk_token),this.unk_token=S.unk_token,this.max_input_chars_per_word=S.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(let[G,te]of this.tokens_to_ids)this.vocab[te]=G}encode(S){let G=[];for(let te of S){let se=[...te];if(se.length>this.max_input_chars_per_word){G.push(this.unk_token);continue}let me=!1,Ce=0,Ye=[];for(;Ce<se.length;){let Xe=se.length,Ze=null;for(;Ce<Xe;){let He=se.slice(Ce,Xe).join("");if(Ce>0&&(He=this.config.continuing_subword_prefix+He),this.tokens_to_ids.has(He)){Ze=He;break}--Xe}if(Ze===null){me=!0;break}Ye.push(Ze),Ce=Xe}me?G.push(this.unk_token):G.push(...Ye)}return G}}class z extends U{constructor(S,G){super(S);let te=S.vocab.length;this.vocab=new Array(te),this.scores=new Array(te);for(let se=0;se<te;++se)[this.vocab[se],this.scores[se]]=S.vocab[se];this.unk_token_id=S.unk_id,this.unk_token=this.vocab[S.unk_id],this.tokens_to_ids=new Map(this.vocab.map((se,me)=>[se,me])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=G.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.minScore=(0,n.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new l.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(S){let G=S.chars,te=1,se=0;for(;se<G.length;){let me=!1,Ce=[],Ye=G.slice(se).join(""),Xe=this.trie.commonPrefixSearch(Ye);for(let Ze of Xe){Ce.push(Ze);let He=this.tokens_to_ids.get(Ze),It=this.scores[He],yt=(0,o.len)(Ze);S.insert(se,yt,It,He),!me&&yt===te&&(me=!0)}me||S.insert(se,te,this.unk_score,this.unk_token_id),se+=te}}tokenize(S){let G=new l.TokenLattice(S,this.bos_token_id,this.eos_token_id);return this.populateNodes(G),G.tokens()}encode(S){let G=[];for(let te of S){let se=this.tokenize(te);G.push(...se)}return G}}let X=(()=>{let de=[...Array.from({length:94},(se,me)=>me+33),...Array.from({length:12},(se,me)=>me+161),...Array.from({length:82},(se,me)=>me+174)],S=de.slice(),G=0;for(let se=0;se<256;++se)de.includes(se)||(de.push(se),S.push(256+G),G+=1);let te=S.map(se=>String.fromCharCode(se));return Object.fromEntries(de.map((se,me)=>[se,te[me]]))})(),J=(0,o.reverseDictionary)(X);class q extends U{constructor(S){super(S),this.tokens_to_ids=h(S.vocab),this.unk_token_id=this.tokens_to_ids.get(S.unk_token),this.unk_token=S.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(let[te,se]of this.tokens_to_ids)this.vocab[se]=te;let G=Array.isArray(S.merges[0]);this.merges=G?S.merges:S.merges.map(te=>te.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((te,se)=>[JSON.stringify(te),se])),this.end_of_word_suffix=S.end_of_word_suffix,this.continuing_subword_suffix=S.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new l.LRUCache(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(S){if(S.length===0)return[];let G=this.cache.get(S);if(G!==void 0)return G;let te=Array.from(S);this.end_of_word_suffix&&(te[te.length-1]+=this.end_of_word_suffix);let se=[];if(te.length>1){let me=new l.PriorityQueue((Xe,Ze)=>Xe.score<Ze.score),Ce={token:te[0],bias:0,prev:null,next:null},Ye=Ce;for(let Xe=1;Xe<te.length;++Xe){let Ze={bias:Xe/te.length,token:te[Xe],prev:Ye,next:null};Ye.next=Ze,this._add_node(me,Ye),Ye=Ze}for(;!me.isEmpty();){let Xe=me.pop();if(Xe.deleted||!Xe.next||Xe.next.deleted)continue;if(Xe.deleted=!0,Xe.next.deleted=!0,Xe.prev){let He={...Xe.prev};Xe.prev.deleted=!0,Xe.prev=He,He.prev?He.prev.next=He:Ce=He}let Ze={token:Xe.token+Xe.next.token,bias:Xe.bias,prev:Xe.prev,next:Xe.next.next};Ze.prev?(Ze.prev.next=Ze,this._add_node(me,Ze.prev)):Ce=Ze,Ze.next&&(Ze.next.prev=Ze,this._add_node(me,Ze))}for(let Xe=Ce;Xe!==null;Xe=Xe.next)se.push(Xe.token)}else se=te;if(this.continuing_subword_suffix)for(let me=0;me<se.length-1;++me)se[me]+=this.continuing_subword_suffix;return S.length<this.max_length_to_cache&&this.cache.put(S,se),se}_add_node(S,G){let te=this.bpe_ranks.get(JSON.stringify([G.token,G.next.token]));te!==void 0&&(G.score=te+G.bias,S.push(G))}encode(S){let G=[];for(let te of S){if(this.ignore_merges&&this.tokens_to_ids.has(te)){G.push(te);continue}let se=this.bpe(te);for(let me of se)if(this.tokens_to_ids.has(me))G.push(me);else if(this.byte_fallback){let Ce=Array.from(this.text_encoder.encode(me)).map(Ye=>`<0x${Ye.toString(16).toUpperCase().padStart(2,"0")}>`);Ce.every(Ye=>this.tokens_to_ids.has(Ye))?G.push(...Ce):G.push(this.unk_token)}else G.push(this.unk_token)}return G}}class re extends U{constructor(S,G){super(S),this.tokens_to_ids=h(G.target_lang?S.vocab[G.target_lang]:S.vocab),this.bos_token=G.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=G.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=G.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=G.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(let[te,se]of this.tokens_to_ids)this.vocab[se]=te}encode(S){return S}}class oe extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"BertNormalizer":return new rt(S);case"Precompiled":return new zt(S);case"Sequence":return new Le(S);case"Replace":return new ne(S);case"NFC":return new Y(S);case"NFD":return new H(S);case"NFKC":return new R(S);case"NFKD":return new L(S);case"Strip":return new ee(S);case"StripAccents":return new ue(S);case"Lowercase":return new ke(S);case"Prepend":return new Ie(S);default:throw new Error(`Unknown Normalizer type: ${S.type}`)}}normalize(S){throw Error("normalize should be implemented in subclass.")}_call(S){return this.normalize(S)}}class ne extends oe{normalize(S){let G=g(this.config.pattern);return G===null?S:S.replaceAll(G,this.config.content)}}class ye extends oe{form=void 0;normalize(S){return S=S.normalize(this.form),S}}class Y extends ye{form="NFC"}class H extends ye{form="NFD"}class R extends ye{form="NFKC"}class L extends ye{form="NFKD"}class ee extends oe{normalize(S){return this.config.strip_left&&this.config.strip_right?S=S.trim():(this.config.strip_left&&(S=S.trimStart()),this.config.strip_right&&(S=S.trimEnd())),S}}class ue extends oe{normalize(S){return S=v(S),S}}class ke extends oe{normalize(S){return S=S.toLowerCase(),S}}class Ie extends oe{normalize(S){return S=this.config.prepend+S,S}}class Le extends oe{constructor(S){super(S),this.normalizers=S.normalizers.map(G=>oe.fromConfig(G))}normalize(S){return this.normalizers.reduce((G,te)=>te.normalize(G),S)}}class rt extends oe{_tokenize_chinese_chars(S){let G=[];for(let te=0;te<S.length;++te){let se=S[te],me=se.charCodeAt(0);C(me)?(G.push(" "),G.push(se),G.push(" ")):G.push(se)}return G.join("")}stripAccents(S){return S.normalize("NFD").replace(/\p{Mn}/gu,"")}_is_control(S){switch(S){case" ":case`
|
|
2851
|
+
`:case"\r":return!1;default:return/^\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}$/u.test(S)}}_clean_text(S){let G=[];for(let te of S){let se=te.charCodeAt(0);se===0||se===65533||this._is_control(te)||(/^\s$/.test(te)?G.push(" "):G.push(te))}return G.join("")}normalize(S){return this.config.clean_text&&(S=this._clean_text(S)),this.config.handle_chinese_chars&&(S=this._tokenize_chinese_chars(S)),this.config.lowercase?(S=S.toLowerCase(),this.config.strip_accents!==!1&&(S=this.stripAccents(S))):this.config.strip_accents&&(S=this.stripAccents(S)),S}}class we extends s.Callable{static fromConfig(S){if(S===null)return null;switch(S.type){case"BertPreTokenizer":return new A(S);case"Sequence":return new yr(S);case"Whitespace":return new zs(S);case"WhitespaceSplit":return new Ys(S);case"Metaspace":return new Lt(S);case"ByteLevel":return new le(S);case"Split":return new ge(S);case"Punctuation":return new be(S);case"Digits":return new Ae(S);case"Replace":return new Zs(S);case"FixedLength":return new or(S);default:throw new Error(`Unknown PreTokenizer type: ${S.type}`)}}pre_tokenize_text(S,G){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(S,G){return(Array.isArray(S)?S.map(te=>this.pre_tokenize_text(te,G)):this.pre_tokenize_text(S,G)).flat()}_call(S,G){return this.pre_tokenize(S,G)}}class A extends we{constructor(S){super(),this.pattern=new RegExp(`[^\\s${I}]+|[${I}]`,"gu")}pre_tokenize_text(S,G){return S.trim().match(this.pattern)||[]}}class le extends we{constructor(S){super(),this.config=S,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=X,this.text_encoder=new TextEncoder}pre_tokenize_text(S,G){return this.add_prefix_space&&!S.startsWith(" ")&&(S=" "+S),(this.use_regex?S.match(this.pattern)||[]:[S]).map(se=>Array.from(this.text_encoder.encode(se),me=>this.byte_encoder[me]).join(""))}}class ge extends we{constructor(S){super(),this.config=S,this.pattern=g(this.config.pattern,this.config.invert)}pre_tokenize_text(S,G){return this.pattern===null?[]:this.config.invert?S.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?S.split(this.pattern).filter(te=>te):d(S,this.pattern)}}class be extends we{constructor(S){super(),this.config=S,this.pattern=new RegExp(`[^${I}]+|[${I}]+`,"gu")}pre_tokenize_text(S,G){return S.match(this.pattern)||[]}}class Ae extends we{constructor(S){super(),this.config=S;let G=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(G,"gu")}pre_tokenize_text(S,G){return S.match(this.pattern)||[]}}class ve extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"TemplateProcessing":return new fe(S);case"ByteLevel":return new Te(S);case"RobertaProcessing":return new Pe(S);case"BertProcessing":return new pe(S);case"Sequence":return new We(S);default:throw new Error(`Unknown PostProcessor type: ${S.type}`)}}post_process(S,...G){throw Error("post_process should be implemented in subclass.")}_call(S,...G){return this.post_process(S,...G)}}class pe extends ve{constructor(S){super(S),this.cls=S.cls[0],this.sep=S.sep[0]}post_process(S,G=null,{add_special_tokens:te=!0}={}){te&&(S=(0,o.mergeArrays)([this.cls],S,[this.sep]));let se=new Array(S.length).fill(0);if(G!==null){let me=te&&this instanceof Pe?[this.sep]:[],Ce=te?[this.sep]:[];S=(0,o.mergeArrays)(S,me,G,Ce),se=(0,o.mergeArrays)(se,new Array(G.length+me.length+Ce.length).fill(1))}return{tokens:S,token_type_ids:se}}}class Pe extends pe{}class fe extends ve{constructor(S){super(S),this.single=S.single,this.pair=S.pair}post_process(S,G=null,{add_special_tokens:te=!0}={}){let se=G===null?this.single:this.pair,me=[],Ce=[];for(let Ye of se)"SpecialToken"in Ye?te&&(me.push(Ye.SpecialToken.id),Ce.push(Ye.SpecialToken.type_id)):"Sequence"in Ye&&(Ye.Sequence.id==="A"?(me=(0,o.mergeArrays)(me,S),Ce=(0,o.mergeArrays)(Ce,new Array(S.length).fill(Ye.Sequence.type_id))):Ye.Sequence.id==="B"&&(me=(0,o.mergeArrays)(me,G),Ce=(0,o.mergeArrays)(Ce,new Array(G.length).fill(Ye.Sequence.type_id))));return{tokens:me,token_type_ids:Ce}}}class Te extends ve{post_process(S,G=null){return G&&(S=(0,o.mergeArrays)(S,G)),{tokens:S}}}class We extends ve{constructor(S){super(S),this.processors=S.processors.map(G=>ve.fromConfig(G))}post_process(S,G=null,te={}){let se;for(let me of this.processors)if(me instanceof Te)S=me.post_process(S).tokens,G&&(G=me.post_process(G).tokens);else{let Ce=me.post_process(S,G,te);S=Ce.tokens,se=Ce.token_type_ids}return{tokens:S,token_type_ids:se}}}class $e extends s.Callable{constructor(S){super(),this.config=S,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=S.trim_offsets}static fromConfig(S){if(S===null)return null;switch(S.type){case"WordPiece":return new Qe(S);case"Metaspace":return new fr(S);case"ByteLevel":return new je(S);case"Replace":return new Re(S);case"ByteFallback":return new Ne(S);case"Fuse":return new ot(S);case"Strip":return new De(S);case"Sequence":return new Ke(S);case"CTC":return new pt(S);case"BPEDecoder":return new bt(S);default:throw new Error(`Unknown Decoder type: ${S.type}`)}}_call(S){return this.decode(S)}decode(S){return this.decode_chain(S).join("")}decode_chain(S){throw Error("`decode_chain` should be implemented in subclass.")}}class Re extends $e{decode_chain(S){let G=g(this.config.pattern);return G===null?S:S.map(te=>te.replaceAll(G,this.config.content))}}class Ne extends $e{constructor(S){super(S),this.text_decoder=new TextDecoder}decode_chain(S){let G=[],te=[];for(let se of S){let me=null;if(se.length===6&&se.startsWith("<0x")&&se.endsWith(">")){let Ce=parseInt(se.slice(3,5),16);isNaN(Ce)||(me=Ce)}if(me!==null)te.push(me);else{if(te.length>0){let Ce=this.text_decoder.decode(Uint8Array.from(te));G.push(Ce),te=[]}G.push(se)}}if(te.length>0){let se=this.text_decoder.decode(Uint8Array.from(te));G.push(se),te=[]}return G}}class ot extends $e{decode_chain(S){return[S.join("")]}}class De extends $e{constructor(S){super(S),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(S){return S.map(G=>{let te=0;for(let me=0;me<this.start&&G[me]===this.content;++me){te=me+1;continue}let se=G.length;for(let me=0;me<this.stop;++me){let Ce=G.length-me-1;if(G[Ce]===this.content){se=Ce;continue}else break}return G.slice(te,se)})}}class Qe extends $e{constructor(S){super(S),this.cleanup=S.cleanup}decode_chain(S){return S.map((G,te)=>(te!==0&&(G.startsWith(this.config.prefix)?G=G.replace(this.config.prefix,""):G=" "+G),this.cleanup&&(G=F(G)),G))}}class je extends $e{constructor(S){super(S),this.byte_decoder=J,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(S){let G=S.join(""),te=new Uint8Array([...G].map(me=>this.byte_decoder[me]));return this.text_decoder.decode(te)}decode_chain(S){let G=[],te=[];for(let se of S)this.added_tokens.find(me=>me.content===se)!==void 0?(te.length>0&&(G.push(this.convert_tokens_to_string(te)),te=[]),G.push(se)):te.push(se);return te.length>0&&G.push(this.convert_tokens_to_string(te)),G}}class pt extends $e{constructor(S){super(S),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(S){if(S.length===0)return"";let G=[S[0]];for(let me=1;me<S.length;++me)S[me]!==G.at(-1)&&G.push(S[me]);let se=G.filter(me=>me!==this.pad_token).join("");return this.cleanup&&(se=F(se).replaceAll(this.word_delimiter_token," ").trim()),se}decode_chain(S){return[this.convert_tokens_to_string(S)]}}class Ke extends $e{constructor(S){super(S),this.decoders=S.decoders.map(G=>$e.fromConfig(G))}decode_chain(S){return this.decoders.reduce((G,te)=>te.decode_chain(G),S)}}class bt extends $e{constructor(S){super(S),this.suffix=this.config.suffix}decode_chain(S){return S.map((G,te)=>G.replaceAll(this.suffix,te===S.length-1?"":" "))}}class At extends $e{decode_chain(S){let G="";for(let te=1;te<S.length;te+=2)G+=S[te];return[G]}}class Lt extends we{constructor(S){super(),this.replacement=S.replacement,this.strRep=S.str_rep||this.replacement,this.prepend_scheme=S.prepend_scheme??"always"}pre_tokenize_text(S,{section_index:G=void 0}={}){let te=S.replaceAll(" ",this.strRep);return!te.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&G===0)&&(te=this.strRep+te),[te]}}class fr extends $e{constructor(S){super(S),this.replacement=S.replacement}decode_chain(S){let G=[];for(let te=0;te<S.length;++te){let se=S[te].replaceAll(this.replacement," ");te==0&&se.startsWith(" ")&&(se=se.substring(1)),G.push(se)}return G}}class zt extends oe{constructor(S){super(S),this.charsmap=S.precompiled_charsmap}normalize(S){return S=S.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,""),S=S.replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," "),S.includes("\uFF5E")?S=S.split("\uFF5E").map(te=>te.normalize("NFKC")).join("\uFF5E"):S=S.normalize("NFKC"),S}}class yr extends we{constructor(S){super(),this.tokenizers=S.pretokenizers.map(G=>we.fromConfig(G))}pre_tokenize_text(S,G){return this.tokenizers.reduce((te,se)=>se.pre_tokenize(te,G),[S])}}class zs extends we{constructor(S){super()}pre_tokenize_text(S,G){return S.match(/\w+|[^\w\s]+/g)||[]}}class Ys extends we{constructor(S){super()}pre_tokenize_text(S,G){return P(S)}}class Zs extends we{constructor(S){super(),this.config=S,this.pattern=g(this.config.pattern),this.content=this.config.content}pre_tokenize_text(S,G){return this.pattern===null?[S]:[S.replaceAll(this.pattern,this.config.content)]}}class or extends we{constructor(S){super(),this._length=S.length}pre_tokenize_text(S,G){let te=[];for(let se=0;se<S.length;se+=this._length)te.push(S.slice(se,se+this._length));return te}}let Dr=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function Yr(de,S,G,te){for(let se of Object.keys(de)){let me=S-de[se].length,Ce=G(se),Ye=new Array(me).fill(Ce);de[se]=te==="right"?(0,o.mergeArrays)(de[se],Ye):(0,o.mergeArrays)(Ye,de[se])}}function Rs(de,S){for(let G of Object.keys(de))de[G].length=S}class ft extends s.Callable{return_token_type_ids=!1;padding_side="right";constructor(S,G){super(),this.config=G,this.normalizer=oe.fromConfig(S.normalizer),this.pre_tokenizer=we.fromConfig(S.pre_tokenizer),this.model=U.fromConfig(S.model,G),this.post_processor=ve.fromConfig(S.post_processor),this.decoder=$e.fromConfig(S.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(let te of S.added_tokens){let se=new O(te);this.added_tokens.push(se),this.model.tokens_to_ids.set(se.content,se.id),this.model.vocab[se.id]=se.content,se.special&&(this.special_tokens.push(se.content),this.all_special_ids.push(se.id))}if(this.additional_special_tokens=G.additional_special_tokens??[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_splitter=new l.DictionarySplitter(this.added_tokens.map(te=>te.content)),this.added_tokens_map=new Map(this.added_tokens.map(te=>[te.content,te])),this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.bos_token=this.getToken("bos_token"),this.bos_token_id=this.model.tokens_to_ids.get(this.bos_token),this.eos_token=this.getToken("eos_token"),this.eos_token_id=this.model.tokens_to_ids.get(this.eos_token),this.model_max_length=G.model_max_length,this.remove_space=G.remove_space,this.clean_up_tokenization_spaces=G.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=G.do_lowercase_and_remove_accent??!1,G.padding_side&&(this.padding_side=G.padding_side),this.add_bos_token=G.add_bos_token,this.add_eos_token=G.add_eos_token,this.legacy=!1,this.chat_template=G.chat_template??null,Array.isArray(this.chat_template)){let te=Object.create(null);for(let{name:se,template:me}of this.chat_template){if(typeof se!="string"||typeof me!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');te[se]=me}this.chat_template=te}this._compiled_template_cache=new Map}getToken(...S){for(let G of S){let te=this.config[G];if(te)if(typeof te=="object"){if(te.__type==="AddedToken")return te.content;throw Error(`Unknown token: ${te}`)}else return te}return null}static async from_pretrained(S,{progress_callback:G=null,config:te=null,cache_dir:se=null,local_files_only:me=!1,revision:Ce="main",legacy:Ye=null}={}){let Xe=await u(S,{progress_callback:G,config:te,cache_dir:se,local_files_only:me,revision:Ce,legacy:Ye});return new this(...Xe)}_call(S,{text_pair:G=null,add_special_tokens:te=!0,padding:se=!1,truncation:me=null,max_length:Ce=null,return_tensor:Ye=!0,return_token_type_ids:Xe=null}={}){let Ze=Array.isArray(S),He;if(Ze){if(S.length===0)throw Error("text array must be non-empty");if(G!==null){if(Array.isArray(G)){if(S.length!==G.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");He=S.map((yt,Xt)=>this._encode_plus(yt,{text_pair:G[Xt],add_special_tokens:te,return_token_type_ids:Xe}))}else He=S.map(yt=>this._encode_plus(yt,{add_special_tokens:te,return_token_type_ids:Xe}))}else{if(S==null)throw Error("text may not be null or undefined");if(Array.isArray(G))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");He=[this._encode_plus(S,{text_pair:G,add_special_tokens:te,return_token_type_ids:Xe})]}if(Ce===null?Ce=this.model_max_length:me===null&&(se===!0?(console.warn("`max_length` is ignored when `padding: true` and there is no truncation strategy. To pad to max length, use `padding: 'max_length'`."),Ce=this.model_max_length):se===!1&&(console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation: true` to explicitly truncate examples to max length."),me=!0)),se===!0&&(Ce=Math.min((0,n.max)(He.map(yt=>yt.input_ids.length))[0],Ce??1/0)),Ce=Math.min(Ce,this.model_max_length??1/0),se||me)for(let yt=0;yt<He.length;++yt)He[yt].input_ids.length!==Ce&&(He[yt].input_ids.length>Ce?me&&Rs(He[yt],Ce):se&&Yr(He[yt],Ce,Xt=>Xt==="input_ids"?this.pad_token_id:0,this.padding_side));let It={};if(Ye){if(!(se&&me)&&He.some(Xt=>{for(let Mr of Object.keys(Xt))if(Xt[Mr].length!==He[0][Mr]?.length)return!0;return!1}))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");let yt=[He.length,He[0].input_ids.length];for(let Xt of Object.keys(He[0]))It[Xt]=new i.Tensor("int64",BigInt64Array.from(He.flatMap(Mr=>Mr[Xt]).map(BigInt)),yt)}else{for(let yt of Object.keys(He[0]))It[yt]=He.map(Xt=>Xt[yt]);if(!Ze)for(let yt of Object.keys(It))It[yt]=It[yt][0]}return It}_encode_text(S){if(S===null)return null;let G=this.added_tokens_splitter.split(S);for(let se=0;se<G.length;++se){let me=this.added_tokens_map.get(G[se]);me&&(me.lstrip&&se>0&&(G[se-1]=G[se-1].trimEnd()),me.rstrip&&se<G.length-1&&(G[se+1]=G[se+1].trimStart()))}return G.flatMap((se,me)=>{if(se.length===0)return[];if(this.added_tokens_map.has(se))return[se];if(this.remove_space===!0&&(se=se.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(se=b(se)),this.normalizer!==null&&(se=this.normalizer(se)),se.length===0)return[];let Ce=this.pre_tokenizer!==null?this.pre_tokenizer(se,{section_index:me}):[se];return this.model(Ce)})}_encode_plus(S,{text_pair:G=null,add_special_tokens:te=!0,return_token_type_ids:se=null}={}){let{tokens:me,token_type_ids:Ce}=this._tokenize_helper(S,{pair:G,add_special_tokens:te}),Ye=this.model.convert_tokens_to_ids(me),Xe={input_ids:Ye,attention_mask:new Array(Ye.length).fill(1)};return(se??this.return_token_type_ids)&&Ce&&(Xe.token_type_ids=Ce),Xe}_tokenize_helper(S,{pair:G=null,add_special_tokens:te=!1}={}){let se=this._encode_text(S),me=this._encode_text(G);return this.post_processor?this.post_processor(se,me,{add_special_tokens:te}):{tokens:(0,o.mergeArrays)(se??[],me??[])}}tokenize(S,{pair:G=null,add_special_tokens:te=!1}={}){return this._tokenize_helper(S,{pair:G,add_special_tokens:te}).tokens}encode(S,{text_pair:G=null,add_special_tokens:te=!0,return_token_type_ids:se=null}={}){return this._encode_plus(S,{text_pair:G,add_special_tokens:te,return_token_type_ids:se}).input_ids}batch_decode(S,G={}){return S instanceof i.Tensor&&(S=S.tolist()),S.map(te=>this.decode(te,G))}decode(S,G={}){if(S instanceof i.Tensor&&(S=x(S)),!Array.isArray(S)||S.length===0||!(0,o.isIntegralNumber)(S[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(S,G)}decode_single(S,{skip_special_tokens:G=!1,clean_up_tokenization_spaces:te=null}){let se=this.model.convert_ids_to_tokens(S);G&&(se=se.filter(Ce=>!this.special_tokens.includes(Ce)));let me=this.decoder?this.decoder(se):se.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(me=me.replaceAll(this.decoder.end_of_word_suffix," "),G&&(me=me.trim())),(te??this.clean_up_tokenization_spaces)&&(me=F(me)),me}get_chat_template({chat_template:S=null,tools:G=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){let te=this.chat_template;if(S!==null&&Object.hasOwn(te,S))S=te[S];else if(S===null)if(G!==null&&"tool_use"in te)S=te.tool_use;else if("default"in te)S=te.default;else throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(te).sort()}.`)}else if(S===null)if(this.chat_template)S=this.chat_template;else throw Error("Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating");return S}apply_chat_template(S,{tools:G=null,documents:te=null,chat_template:se=null,add_generation_prompt:me=!1,tokenize:Ce=!0,padding:Ye=!1,truncation:Xe=!1,max_length:Ze=null,return_tensor:He=!0,return_dict:It=!1,tokenizer_kwargs:yt={},...Xt}={}){if(se=this.get_chat_template({chat_template:se,tools:G}),typeof se!="string")throw Error(`chat_template must be a string, but got ${typeof se}`);let Mr=this._compiled_template_cache.get(se);Mr===void 0&&(Mr=new c.Template(se),this._compiled_template_cache.set(se,Mr));let nr=Object.create(null);for(let ir of Dr){let Tr=this.getToken(ir);Tr&&(nr[ir]=Tr)}let Br=Mr.render({messages:S,add_generation_prompt:me,tools:G,documents:te,...nr,...Xt});if(Ce){let ir=this._call(Br,{add_special_tokens:!1,padding:Ye,truncation:Xe,max_length:Ze,return_tensor:He,...yt});return It?ir:ir.input_ids}return Br}}class Cs extends ft{return_token_type_ids=!0}class qt extends ft{return_token_type_ids=!0}class Ss extends ft{return_token_type_ids=!0}class Qr extends ft{return_token_type_ids=!0}class St extends ft{return_token_type_ids=!0}class Xr extends ft{return_token_type_ids=!0}class k extends ft{return_token_type_ids=!0}class Q extends ft{return_token_type_ids=!0}class N extends ft{return_token_type_ids=!0}class K extends ft{}class Z extends ft{}class ce extends ft{return_token_type_ids=!0;constructor(S,G){super(S,G),console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class xe extends ft{return_token_type_ids=!0}class et extends ft{}class ut extends ft{}class qe extends ft{}class wt extends ft{constructor(S,G){super(S,G),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)),this.lang_to_token=te=>te}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class tt extends wt{}class gt extends ft{}class Nt extends ft{}let Qt="\u2581";class ur extends ft{padding_side="left";constructor(S,G){super(S,G),this.legacy=G.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Lt({replacement:Qt,prepend_scheme:"first"}))}_encode_text(S){if(S===null)return null;if(this.legacy||S.length===0)return super._encode_text(S);let G=super._encode_text(Qt+S.replaceAll(Qt," "));return G.length>1&&G[0]===Qt&&this.special_tokens.includes(G[1])&&(G=G.slice(1)),G}}class Or extends ft{}class Cr extends ft{}class Lr extends ft{}class _s extends ft{}class Fs extends ft{}class gr extends ft{}class Ns extends ft{}class as extends ft{}class Nr extends ft{}function Gr(de,S,G,te){if(!("language_codes"in de)||!Array.isArray(de.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in de)||!(de.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in de)||typeof de.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");let se=te.src_lang,me=te.tgt_lang;if(!de.language_codes.includes(me))throw new Error(`Target language code "${me}" is not valid. Must be one of: {${de.language_codes.join(", ")}}`);if(se!==void 0){if(!de.language_codes.includes(se))throw new Error(`Source language code "${se}" is not valid. Must be one of: {${de.language_codes.join(", ")}}`);for(let Ce of de.post_processor.config.single)if("SpecialToken"in Ce&&de.languageRegex.test(Ce.SpecialToken.id)){Ce.SpecialToken.id=de.lang_to_token(se);break}}return te.forced_bos_token_id=de.model.convert_tokens_to_ids([de.lang_to_token(me)])[0],de._call(S,G)}class ar extends ft{constructor(S,G){super(S,G),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)),this.lang_to_token=te=>te}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class _r extends ft{constructor(S,G){super(S,G),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)).map(te=>te.slice(2,-2)),this.lang_to_token=te=>`__${te}__`}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class ps extends ft{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(S,{return_timestamps:G=!1,return_language:te=!1,time_precision:se=null,force_full_sequences:me=!0}={}){if(se===null)throw Error("Must specify time_precision");let Ce=null,Ye=G==="word";function Xe(){return{language:Ce,timestamp:[null,null],text:""}}let Ze=[],He=Xe(),It=0,yt=this.timestamp_begin,Mr=yt+1500,nr=[],Br=[],ir=!1,Tr=null,zr=new Set(this.all_special_ids);for(let Yt of S){let vr=Yt.tokens,Sr=Ye?Yt.token_timestamps:null,Jr=null,ms=yt;if("stride"in Yt){let[lr,pr,wr]=Yt.stride;if(It-=pr,Tr=lr-wr,pr&&(ms=pr/se+yt),wr)for(let er=vr.length-1;er>=0;--er){let Kr=Number(vr[er]);if(Kr>=yt){if(Jr!==null&&(Kr-yt)*se<Tr)break;Jr=Kr}}}let Fr=[],is=[];for(let lr=0;lr<vr.length;++lr){let pr=Number(vr[lr]);if(zr.has(pr)){let wr=this.decode([pr]),er=_.WHISPER_LANGUAGE_MAPPING.get(wr.slice(2,-2));if(er!==void 0){if(Ce!==null&&er!==Ce&&!G){nr.push(Fr);let Kr=this.findLongestCommonSequence(nr)[0],Ws=this.decode(Kr);He.text=Ws,Ze.push(He),nr=[],Fr=[],He=Xe()}Ce=He.language=er}}else if(pr>=yt&&pr<=Mr){let wr=(pr-yt)*se+It,er=(0,n.round)(wr,2);if(Jr!==null&&pr>=Jr)ir=!0;else if(ir||nr.length>0&&pr<ms)ir=!1;else if(He.timestamp[0]===null)He.timestamp[0]=er;else if(er!==He.timestamp[0]){He.timestamp[1]=er,nr.push(Fr),Ye&&Br.push(is);let[Kr,Ws]=this.findLongestCommonSequence(nr,Br),Os=this.decode(Kr);He.text=Os,Ye&&(He.words=this.collateWordTimestamps(Kr,Ws,Ce)),Ze.push(He),nr=[],Fr=[],Br=[],is=[],He=Xe()}}else if(Fr.push(pr),Ye){let wr=(0,n.round)(Sr[lr]+It,2),er;if(lr+1<Sr.length){er=(0,n.round)(Sr[lr+1]+It,2);let Kr=this.decode([pr]);f.test(Kr)&&(er=(0,n.round)(Math.min(wr+se,er),2))}else er=null;is.push([wr,er])}}if("stride"in Yt){let[lr,pr,wr]=Yt.stride;It+=lr-wr}Fr.length>0?(nr.push(Fr),Ye&&Br.push(is)):nr.every(lr=>lr.length===0)&&(He=Xe(),nr=[],Fr=[],Br=[],is=[])}if(nr.length>0){if(me&&G)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");let[Yt,vr]=this.findLongestCommonSequence(nr,Br),Sr=this.decode(Yt);He.text=Sr,Ye&&(He.words=this.collateWordTimestamps(Yt,vr,Ce)),Ze.push(He)}let Pr=Object.create(null),Zr=Ze.map(Yt=>Yt.text).join("");if(G||te){for(let Yt=0;Yt<Ze.length;++Yt){let vr=Ze[Yt];G||delete vr.timestamp,te||delete vr.language}if(Ye){let Yt=[];for(let vr of Ze)for(let Sr of vr.words)Yt.push(Sr);Pr={chunks:Yt}}else Pr={chunks:Ze}}return[Zr,Pr]}findLongestCommonSequence(S,G=null){let te=S[0],se=te.length,me=[],Ce=Array.isArray(G)&&G.length>0,Ye=Ce?[]:null,Xe=Ce?G[0]:null;for(let Ze=1;Ze<S.length;++Ze){let He=S[Ze],It=0,yt=[se,se,0,0],Xt=He.length;for(let Pr=1;Pr<se+Xt;++Pr){let Zr=Math.max(0,se-Pr),Yt=Math.min(se,se+Xt-Pr),vr=te.slice(Zr,Yt),Sr=Math.max(0,Pr-se),Jr=Math.min(Xt,Pr),ms=He.slice(Sr,Jr);if(vr.length!==ms.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");let Fr;Ce?Fr=vr.filter((pr,wr)=>pr===ms[wr]&&Xe[Zr+wr]<=G[Ze][Sr+wr]).length:Fr=vr.filter((pr,wr)=>pr===ms[wr]).length;let is=Pr/1e4,lr=Fr/Pr+is;Fr>1&&lr>It&&(It=lr,yt=[Zr,Yt,Sr,Jr])}let[Mr,nr,Br,ir]=yt,Tr=Math.floor((nr+Mr)/2),zr=Math.floor((ir+Br)/2);me.push(...te.slice(0,Tr)),te=He.slice(zr),se=te.length,Ce&&(Ye.push(...Xe.slice(0,Tr)),Xe=G[Ze].slice(zr))}return me.push(...te),Ce?(Ye.push(...Xe),[me,Ye]):[me,[]]}collateWordTimestamps(S,G,te){let[se,me,Ce]=this.combineTokensIntoWords(S,te),Ye=[];for(let Xe=0;Xe<se.length;++Xe){let Ze=Ce[Xe];Ye.push({text:se[Xe],timestamp:[G[Ze.at(0)][0],G[Ze.at(-1)][1]]})}return Ye}combineTokensIntoWords(S,G,te=`"'\u201C\xA1\xBF([{-`,se=`"'.\u3002,\uFF0C!\uFF01?\uFF1F:\uFF1A\u201D)]}\u3001`){G=G??"english";let me,Ce,Ye;return["chinese","japanese","thai","lao","myanmar"].includes(G)?[me,Ce,Ye]=this.splitTokensOnUnicode(S):[me,Ce,Ye]=this.splitTokensOnSpaces(S),this.mergePunctuations(me,Ce,Ye,te,se)}decode(S,G){let te;return G?.decode_with_timestamps?(S instanceof i.Tensor&&(S=x(S)),te=this.decodeWithTimestamps(S,G)):te=super.decode(S,G),te}decodeWithTimestamps(S,G){let te=G?.time_precision??.02,se=Array.from(this.all_special_ids).at(-1)+1,me=[[]];for(let Ce of S)if(Ce=Number(Ce),Ce>=se){let Ye=((Ce-se)*te).toFixed(2);me.push(`<|${Ye}|>`),me.push([])}else me[me.length-1].push(Ce);return me=me.map(Ce=>typeof Ce=="string"?Ce:super.decode(Ce,G)),me.join("")}splitTokensOnUnicode(S){let G=this.decode(S,{decode_with_timestamps:!0}),te="\uFFFD",se=[],me=[],Ce=[],Ye=[],Xe=[],Ze=0;for(let He=0;He<S.length;++He){let It=S[He];Ye.push(It),Xe.push(He);let yt=this.decode(Ye,{decode_with_timestamps:!0});(!yt.includes(te)||G[Ze+yt.indexOf(te)]===te)&&(se.push(yt),me.push(Ye),Ce.push(Xe),Ye=[],Xe=[],Ze+=yt.length)}return[se,me,Ce]}splitTokensOnSpaces(S){let[G,te,se]=this.splitTokensOnUnicode(S),me=[],Ce=[],Ye=[],Xe=new RegExp(`^[${I}]$`,"gu");for(let Ze=0;Ze<G.length;++Ze){let He=G[Ze],It=te[Ze],yt=se[Ze],Xt=It[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),Mr=He.startsWith(" "),nr=He.trim(),Br=Xe.test(nr);if(Xt||Mr||Br||me.length===0)me.push(He),Ce.push(It),Ye.push(yt);else{let ir=me.length-1;me[ir]+=He,Ce[ir].push(...It),Ye[ir].push(...yt)}}return[me,Ce,Ye]}mergePunctuations(S,G,te,se,me){let Ce=structuredClone(S),Ye=structuredClone(G),Xe=structuredClone(te),Ze=Ce.length-2,He=Ce.length-1;for(;Ze>=0;)Ce[Ze].startsWith(" ")&&se.includes(Ce[Ze].trim())?(Ce[He]=Ce[Ze]+Ce[He],Ye[He]=(0,o.mergeArrays)(Ye[Ze],Ye[He]),Xe[He]=(0,o.mergeArrays)(Xe[Ze],Xe[He]),Ce[Ze]="",Ye[Ze]=[],Xe[Ze]=[]):He=Ze,--Ze;for(Ze=0,He=1;He<Ce.length;)!Ce[Ze].endsWith(" ")&&me.includes(Ce[He])?(Ce[Ze]+=Ce[He],Ye[Ze]=(0,o.mergeArrays)(Ye[Ze],Ye[He]),Xe[Ze]=(0,o.mergeArrays)(Xe[Ze],Xe[He]),Ce[He]="",Ye[He]=[],Xe[He]=[]):Ze=He,++He;return[Ce.filter(It=>It),Ye.filter(It=>It.length>0),Xe.filter(It=>It.length>0)]}}class Is extends ft{}class As extends ft{}class $s extends ft{}class ns extends ft{constructor(S,G){super(S,G),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(te=>this.languageRegex.test(te)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(S){if(S===null)return null;let[G,...te]=S.trim().split(this.languageRegex);if(te.length===0)return super._encode_text(G);if(te.length===2){let[se,me]=te;return this.supported_language_codes.includes(se)||console.warn(`Unsupported language code "${se}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,o.mergeArrays)([se],super._encode_text(me))}}}class Wr extends ft{}class ze extends ft{}class Ue extends ft{}class at extends ft{}class Ht extends ft{}class js extends ft{constructor(S,G){super(S,G),this.decoder=new At({})}}class Ds extends ft{}class Vs extends ft{}class Uo{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:et,DistilBertTokenizer:K,CamembertTokenizer:Z,DebertaTokenizer:St,DebertaV2Tokenizer:Xr,BertTokenizer:Cs,HerbertTokenizer:k,ConvBertTokenizer:Q,RoFormerTokenizer:N,XLMTokenizer:ce,ElectraTokenizer:xe,MobileBertTokenizer:Ss,SqueezeBertTokenizer:Qr,AlbertTokenizer:qt,GPT2Tokenizer:ut,BartTokenizer:qe,MBartTokenizer:wt,MBart50Tokenizer:tt,RobertaTokenizer:gt,WhisperTokenizer:ps,CodeGenTokenizer:Is,CLIPTokenizer:As,SiglipTokenizer:$s,MarianTokenizer:ns,BloomTokenizer:Nt,NllbTokenizer:ar,M2M100Tokenizer:_r,LlamaTokenizer:ur,CodeLlamaTokenizer:Or,XLMRobertaTokenizer:Cr,MPNetTokenizer:Lr,FalconTokenizer:_s,GPTNeoXTokenizer:Fs,EsmTokenizer:gr,Wav2Vec2CTCTokenizer:Wr,BlenderbotTokenizer:ze,BlenderbotSmallTokenizer:Ue,SpeechT5Tokenizer:at,NougatTokenizer:Ht,VitsTokenizer:js,Qwen2Tokenizer:Ns,GemmaTokenizer:as,Grok1Tokenizer:Nr,CohereTokenizer:Ds,MgpstrTokenizer:Vs,PreTrainedTokenizer:ft};static async from_pretrained(S,{progress_callback:G=null,config:te=null,cache_dir:se=null,local_files_only:me=!1,revision:Ce="main",legacy:Ye=null}={}){let[Xe,Ze]=await u(S,{progress_callback:G,config:te,cache_dir:se,local_files_only:me,revision:Ce,legacy:Ye}),He=Ze.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer",It=this.TOKENIZER_CLASS_MAPPING[He];return It||(console.warn(`Unknown tokenizer class "${He}", attempting to construct from base class.`),It=ft),new It(Xe,Ze)}}}),"./src/utils/audio.js":((e,r,t)=>{t.r(r),t.d(r,{RawAudio:()=>W,hamming:()=>d,hanning:()=>u,mel_filter_bank:()=>C,read_audio:()=>c,spectrogram:()=>E,window_function:()=>D});var s=t("./src/utils/hub.js"),o=t("./src/utils/maths.js"),a=t("./src/utils/core.js"),n=t("./src/env.js"),i=t("./src/utils/tensor.js"),l=t("?7992");async function c(z,X){if(typeof AudioContext>"u")throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");let J=await(await(0,s.getFile)(z)).arrayBuffer(),q=new AudioContext({sampleRate:X});typeof X>"u"&&console.warn(`No sampling rate provided, using default of ${q.sampleRate}Hz.`);let re=await q.decodeAudioData(J),oe;if(re.numberOfChannels===2){let ne=Math.sqrt(2),ye=re.getChannelData(0),Y=re.getChannelData(1);oe=new Float32Array(ye.length);for(let H=0;H<re.length;++H)oe[H]=ne*(ye[H]+Y[H])/2}else oe=re.getChannelData(0);return oe}function _(z,X){if(z<1)return new Float64Array;if(z===1)return new Float64Array([1]);let J=1-X,q=2*Math.PI/(z-1),re=new Float64Array(z);for(let oe=0;oe<z;++oe)re[oe]=X-J*Math.cos(oe*q);return re}function u(z){return _(z,.5)}function d(z){return _(z,.54)}let g={htk:z=>2595*Math.log10(1+z/700),kaldi:z=>1127*Math.log(1+z/700),slaney:(z,X=1e3,J=15,q=27/Math.log(6.4))=>z>=X?J+Math.log(z/X)*q:3*z/200};function h(z,X="htk"){let J=g[X];if(!J)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof z=="number"?J(z):z.map(q=>J(q))}let x={htk:z=>700*(10**(z/2595)-1),kaldi:z=>700*(Math.exp(z/1127)-1),slaney:(z,X=1e3,J=15,q=Math.log(6.4)/27)=>z>=J?X*Math.exp(q*(z-J)):200*z/3};function F(z,X="htk"){let J=x[X];if(!J)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof z=="number"?J(z):z.map(q=>J(q))}function v(z,X){let J=Float64Array.from({length:X.length-1},(ne,ye)=>X[ye+1]-X[ye]),q=Array.from({length:z.length},()=>new Array(X.length));for(let ne=0;ne<z.length;++ne){let ye=q[ne];for(let Y=0;Y<X.length;++Y)ye[Y]=X[Y]-z[ne]}let re=X.length-2,oe=Array.from({length:re},()=>new Array(z.length));for(let ne=0;ne<z.length;++ne){let ye=q[ne];for(let Y=0;Y<re;++Y){let H=-ye[Y]/J[Y],R=ye[Y+2]/J[Y+1];oe[Y][ne]=Math.max(0,Math.min(H,R))}}return oe}function b(z,X,J){let q=(X-z)/(J-1);return Float64Array.from({length:J},(re,oe)=>z+q*oe)}function C(z,X,J,q,re,oe=null,ne="htk",ye=!1){if(oe!==null&&oe!=="slaney")throw new Error('norm must be one of null or "slaney"');if(z<2)throw new Error(`Require num_frequency_bins: ${z} >= 2`);if(J>q)throw new Error(`Require min_frequency: ${J} <= max_frequency: ${q}`);let Y=h(J,ne),H=h(q,ne),R=b(Y,H,X+2),L=F(R,ne),ee;if(ye){let ke=re/((z-1)*2);ee=h(Float64Array.from({length:z},(Ie,Le)=>Le*ke),ne),L=R}else ee=b(0,Math.floor(re/2),z);let ue=v(ee,L);if(oe!==null&&oe==="slaney")for(let ke=0;ke<X;++ke){let Ie=ue[ke],Le=2/(L[ke+2]-L[ke]);for(let rt=0;rt<z;++rt)Ie[rt]*=Le}return ue}function y(z,X,J){let q=new z.constructor(z.length+X+J),re=z.length-1;for(let oe=0;oe<z.length;++oe)q[X+oe]=z[oe];for(let oe=1;oe<=X;++oe)q[X-oe]=z[(0,a.calculateReflectOffset)(oe,re)];for(let oe=1;oe<=J;++oe)q[re+X+oe]=z[(0,a.calculateReflectOffset)(re-oe,re)];return q}function P(z,X,J,q,re){if(J<=0)throw new Error("reference must be greater than zero");if(q<=0)throw new Error("min_value must be greater than zero");J=Math.max(q,J);let oe=Math.log10(J);for(let ne=0;ne<z.length;++ne)z[ne]=X*Math.log10(Math.max(q,z[ne])-oe);if(re!==null){if(re<=0)throw new Error("db_range must be greater than zero");let ne=(0,o.max)(z)[0]-re;for(let ye=0;ye<z.length;++ye)z[ye]=Math.max(z[ye],ne)}return z}function I(z,X=1,J=1e-5,q=null){return P(z,20,X,J,q)}function f(z,X=1,J=1e-10,q=null){return P(z,10,X,J,q)}async function E(z,X,J,q,{fft_length:re=null,power:oe=1,center:ne=!0,pad_mode:ye="reflect",onesided:Y=!0,preemphasis:H=null,preemphasis_htk_flavor:R=!0,mel_filters:L=null,mel_floor:ee=1e-10,log_mel:ue=null,reference:ke=1,min_value:Ie=1e-10,db_range:Le=null,remove_dc_offset:rt=null,min_num_frames:we=null,max_num_frames:A=null,do_pad:le=!0,transpose:ge=!1,mel_offset:be=0}={}){let Ae=X.length;if(re===null&&(re=J),J>re)throw Error(`frame_length (${J}) may not be larger than fft_length (${re})`);if(Ae!==J)throw new Error(`Length of the window (${Ae}) must equal frame_length (${J})`);if(q<=0)throw new Error("hop_length must be greater than zero");if(oe===null&&L!==null)throw new Error("You have provided `mel_filters` but `power` is `None`. Mel spectrogram computation is not yet supported for complex-valued spectrogram. Specify `power` to fix this issue.");if(!R)throw new Error("`preemphasis_htk_flavor=false` is not currently supported.");if(ne)switch(ye){case"reflect":{let Qe=Math.floor((re-1)/2)+1;z=y(z,Qe,Qe);break}case"constant":{let Qe=Math.floor(re/2),je=new z.constructor(z.length+2*Qe);je.set(z,Qe),z=je;break}default:throw new Error(`pad_mode="${ye}" not implemented yet.`)}let ve=Math.floor(1+Math.floor((z.length-J)/q));we!==null&&ve<we&&(ve=we);let pe=Y?Math.floor(re/2)+1:re,Pe=ve,fe=ve;A!==null&&(A>ve?le&&(fe=A):fe=Pe=A);let Te=new o.FFT(re),We=new Float64Array(re),$e=new Float64Array(Te.outputBufferSize),Re=new Float32Array(pe*fe);for(let Qe=0;Qe<Pe;++Qe){let je=Qe*q,pt=Math.min(z.length-je,J);pt!==J&&We.fill(0,0,J);for(let Ke=0;Ke<pt;++Ke)We[Ke]=z[je+Ke];if(rt){let Ke=0;for(let At=0;At<pt;++At)Ke+=We[At];let bt=Ke/pt;for(let At=0;At<pt;++At)We[At]-=bt}if(H!==null){for(let Ke=pt-1;Ke>=1;--Ke)We[Ke]-=H*We[Ke-1];We[0]*=1-H}for(let Ke=0;Ke<X.length;++Ke)We[Ke]*=X[Ke];Te.realTransform($e,We);for(let Ke=0;Ke<pe;++Ke){let bt=Ke<<1;Re[Ke*fe+Qe]=$e[bt]**2+$e[bt+1]**2}}if(oe!==null&&oe!==2){let Qe=oe/2;for(let je=0;je<Re.length;++je)Re[je]**=Qe}let Ne=L.length,ot=await(0,i.matmul)(new i.Tensor("float32",L.flat(),[Ne,pe]),new i.Tensor("float32",Re,[pe,fe]));ge&&(ot=ot.transpose(1,0));let De=ot.data;for(let Qe=0;Qe<De.length;++Qe)De[Qe]=be+Math.max(ee,De[Qe]);if(oe!==null&&ue!==null){let Qe=Math.min(De.length,Pe*Ne);switch(ue){case"log":for(let je=0;je<Qe;++je)De[je]=Math.log(De[je]);break;case"log10":for(let je=0;je<Qe;++je)De[je]=Math.log10(De[je]);break;case"dB":if(oe===1)I(De,ke,Ie,Le);else if(oe===2)f(De,ke,Ie,Le);else throw new Error(`Cannot use log_mel option '${ue}' with power ${oe}`);break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${ue}'`)}}return ot}function D(z,X,{periodic:J=!0,frame_length:q=null,center:re=!0}={}){let oe=J?z+1:z,ne;switch(X){case"boxcar":ne=new Float64Array(oe).fill(1);break;case"hann":case"hann_window":ne=u(oe);break;case"hamming":ne=d(oe);break;case"povey":ne=u(oe).map(ye=>Math.pow(ye,.85));break;default:throw new Error(`Unknown window type ${X}.`)}if(J&&(ne=ne.subarray(0,z)),q===null)return ne;if(z>q)throw new Error(`Length of the window (${z}) may not be larger than frame_length (${q})`);return ne}function O(z,X){let J=44,q=new ArrayBuffer(J+z.length*4),re=new DataView(q);U(re,0,"RIFF"),re.setUint32(4,36+z.length*4,!0),U(re,8,"WAVE"),U(re,12,"fmt "),re.setUint32(16,16,!0),re.setUint16(20,3,!0),re.setUint16(22,1,!0),re.setUint32(24,X,!0),re.setUint32(28,X*4,!0),re.setUint16(32,4,!0),re.setUint16(34,32,!0),U(re,36,"data"),re.setUint32(40,z.length*4,!0);for(let oe=0;oe<z.length;++oe,J+=4)re.setFloat32(J,z[oe],!0);return q}function U(z,X,J){for(let q=0;q<J.length;++q)z.setUint8(X+q,J.charCodeAt(q))}class W{constructor(X,J){this.audio=X,this.sampling_rate=J}toWav(){return O(this.audio,this.sampling_rate)}toBlob(){let X=this.toWav();return new Blob([X],{type:"audio/wav"})}async save(X){let J;if(n.apis.IS_BROWSER_ENV){if(n.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save a file from a Web Worker.");J=a.saveBlob}else if(n.apis.IS_FS_AVAILABLE)J=async(q,re)=>{let oe=await re.arrayBuffer();l.writeFileSync(q,Buffer.from(oe))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await J(X,this.toBlob())}}}),"./src/utils/constants.js":((e,r,t)=>{t.r(r),t.d(r,{CHAT_TEMPLATE_NAME:()=>l,CONFIG_NAME:()=>o,FEATURE_EXTRACTOR_NAME:()=>a,GENERATION_CONFIG_NAME:()=>c,GITHUB_ISSUE_URL:()=>s,IMAGE_PROCESSOR_NAME:()=>n,PROCESSOR_NAME:()=>i});let s="https://github.com/huggingface/transformers.js/issues/new/choose",o="config.json",a="preprocessor_config.json",n=a,i="processor_config.json",l="chat_template.jinja",c="generation_config.json"}),"./src/utils/core.js":((e,r,t)=>{t.r(r),t.d(r,{calculateDimensions:()=>c,calculateReflectOffset:()=>g,count:()=>v,dispatchCallback:()=>s,escapeRegExp:()=>a,isIntegralNumber:()=>i,isNullishDimension:()=>l,isTypedArray:()=>n,len:()=>F,mergeArrays:()=>u,pick:()=>x,pop:()=>_,product:()=>d,reverseDictionary:()=>o,saveBlob:()=>h});function s(b,C){b&&b(C)}function o(b){return Object.fromEntries(Object.entries(b).map(([C,y])=>[y,C]))}function a(b){return b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function n(b){return b?.prototype?.__proto__?.constructor?.name==="TypedArray"}function i(b){return Number.isInteger(b)||typeof b=="bigint"}function l(b){return b==null||b===-1}function c(b){let C=[],y=b;for(;Array.isArray(y);)C.push(y.length),y=y[0];return C}function _(b,C,y=void 0){let P=b[C];if(P!==void 0)return delete b[C],P;if(y===void 0)throw Error(`Key ${C} does not exist in object.`);return y}function u(...b){return Array.prototype.concat.apply([],b)}function d(...b){return b.reduce((C,y)=>C.flatMap(P=>y.map(I=>[P,I])))}function g(b,C){return Math.abs((b+C)%(2*C)-C)}function h(b,C){let y=URL.createObjectURL(C),P=document.createElement("a");P.href=y,P.download=b,P.click(),P.remove(),URL.revokeObjectURL(y)}function x(b,C){return Object.assign({},...C.map(y=>{if(b[y]!==void 0)return{[y]:b[y]}}))}function F(b){let C=0;for(let y of b)++C;return C}function v(b,C){let y=0;for(let P of b)P===C&&++y;return y}}),"./src/utils/data-structures.js":((e,r,t)=>{t.r(r),t.d(r,{CharTrie:()=>o,DictionarySplitter:()=>l,LRUCache:()=>c,PriorityQueue:()=>s,TokenLattice:()=>n});class s{constructor(u=(g,h)=>g>h,d=1/0){this._heap=[],this._comparator=u,this._maxSize=d}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...u){return this.extend(u)}extend(u){for(let d of u)if(this.size<this._maxSize)this._heap.push(d),this._siftUp();else{let g=this._smallest();this._comparator(d,this._heap[g])&&(this._heap[g]=d,this._siftUpFrom(g))}return this.size}pop(){let u=this.peek(),d=this.size-1;return d>0&&this._swap(0,d),this._heap.pop(),this._siftDown(),u}replace(u){let d=this.peek();return this._heap[0]=u,this._siftDown(),d}_parent(u){return(u+1>>>1)-1}_left(u){return(u<<1)+1}_right(u){return u+1<<1}_greater(u,d){return this._comparator(this._heap[u],this._heap[d])}_swap(u,d){let g=this._heap[u];this._heap[u]=this._heap[d],this._heap[d]=g}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(u){for(;u>0&&this._greater(u,this._parent(u));)this._swap(u,this._parent(u)),u=this._parent(u)}_siftDown(){let u=0;for(;this._left(u)<this.size&&this._greater(this._left(u),u)||this._right(u)<this.size&&this._greater(this._right(u),u);){let d=this._right(u)<this.size&&this._greater(this._right(u),this._left(u))?this._right(u):this._left(u);this._swap(u,d),u=d}}_smallest(){return 2**Math.floor(Math.log2(this.size))-1}}class o{constructor(){this.root=a.default()}extend(u){for(let d of u)this.push(d)}push(u){let d=this.root;for(let g of u){let h=d.children.get(g);h===void 0&&(h=a.default(),d.children.set(g,h)),d=h}d.isLeaf=!0}*commonPrefixSearch(u){let d=this.root;if(d===void 0)return;let g="";for(let h of u){if(g+=h,d=d.children.get(h),d===void 0)return;d.isLeaf&&(yield g)}}}class a{constructor(u,d){this.isLeaf=u,this.children=d}static default(){return new a(!1,new Map)}}class n{constructor(u,d,g){this.chars=Array.from(u),this.len=this.chars.length,this.bosTokenId=d,this.eosTokenId=g,this.nodes=[],this.beginNodes=Array.from({length:this.len+1},()=>[]),this.endNodes=Array.from({length:this.len+1},()=>[]);let h=new i(this.bosTokenId,0,0,0,0),x=new i(this.eosTokenId,1,this.len,0,0);this.nodes.push(h.clone()),this.nodes.push(x.clone()),this.beginNodes[this.len].push(x),this.endNodes[0].push(h)}insert(u,d,g,h){let x=this.nodes.length,F=new i(h,x,u,d,g);this.beginNodes[u].push(F),this.endNodes[u+d].push(F),this.nodes.push(F)}viterbi(){let u=this.len,d=0;for(;d<=u;){if(this.beginNodes[d].length==0)return[];for(let v of this.beginNodes[d]){v.prev=null;let b=0,C=null;for(let y of this.endNodes[d]){let P=y.backtraceScore+v.score;(C===null||P>b)&&(C=y.clone(),b=P)}if(C!==null)v.prev=C,v.backtraceScore=b;else return[]}++d}let g=[],x=this.beginNodes[u][0].prev;if(x===null)return[];let F=x.clone();for(;F.prev!==null;)g.push(F.clone()),F=F.clone().prev.clone();return g.reverse(),g}piece(u){return this.chars.slice(u.pos,u.pos+u.length).join("")}tokens(){return this.viterbi().map(d=>this.piece(d))}tokenIds(){return this.viterbi().map(d=>d.tokenId)}}class i{constructor(u,d,g,h,x){this.tokenId=u,this.nodeId=d,this.pos=g,this.length=h,this.score=x,this.prev=null,this.backtraceScore=0}clone(){let u=new i(this.tokenId,this.nodeId,this.pos,this.length,this.score);return u.prev=this.prev,u.backtraceScore=this.backtraceScore,u}}class l{constructor(u){this.trie=this._buildTrie(u)}_buildTrie(u){let d=Object.create(null);for(let g of u){let h=d;for(let x=0;x<g.length;++x)h=h[g[x]]??=Object.create(null);h.end=g}return d}split(u){let d=[],g=u.length,h=0,x=0;for(;x<g;){let F=this.trie,v=null,b=x;for(;b<g&&(F=F[u[b]]);)F.end&&(v=F.end),++b;v?(x>h&&d.push(u.slice(h,x)),d.push(v),x+=v.length,h=x):++x}return h<g&&d.push(u.slice(h)),d}}class c{constructor(u){this.capacity=u,this.cache=new Map}get(u){if(!this.cache.has(u))return;let d=this.cache.get(u);return this.cache.delete(u),this.cache.set(u,d),d}put(u,d){this.cache.has(u)&&this.cache.delete(u),this.cache.set(u,d),this.cache.size>this.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}}}),"./src/utils/devices.js":((e,r,t)=>{t.r(r),t.d(r,{DEVICE_TYPES:()=>s});let s=Object.freeze({auto:"auto",gpu:"gpu",cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:"webnn","webnn-npu":"webnn-npu","webnn-gpu":"webnn-gpu","webnn-cpu":"webnn-cpu"})}),"./src/utils/dtypes.js":((e,r,t)=>{t.r(r),t.d(r,{DATA_TYPES:()=>n,DEFAULT_DEVICE_DTYPE_MAPPING:()=>i,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>l,isWebGpuFp16Supported:()=>a});var s=t("./src/env.js"),o=t("./src/utils/devices.js");let a=(function(){let c;return async function(){if(c===void 0)if(!s.apis.IS_WEBGPU_AVAILABLE)c=!1;else try{c=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{c=!1}return c}})(),n=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),i=Object.freeze({[o.DEVICE_TYPES.wasm]:n.q8}),l=Object.freeze({[n.fp32]:"",[n.fp16]:"_fp16",[n.int8]:"_int8",[n.uint8]:"_uint8",[n.q8]:"_quantized",[n.q4]:"_q4",[n.q4f16]:"_q4f16",[n.bnb4]:"_bnb4"})}),"./src/utils/generic.js":((e,r,t)=>{t.r(r),t.d(r,{Callable:()=>s});let s=class{constructor(){let o=function(...a){return o._call(...a)};return Object.setPrototypeOf(o,new.target.prototype)}_call(...o){throw Error("Must implement _call method in subclass")}}}),"./src/utils/hub.js":((e,r,t)=>{t.r(r),t.d(r,{MAX_EXTERNAL_DATA_CHUNKS:()=>i,getFile:()=>g,getModelFile:()=>b,getModelJSON:()=>y,getModelText:()=>C});var s=t("?7992"),o=t("?5af5"),a=t("./src/env.js"),n=t("./src/utils/core.js");let i=100,l={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};class c{constructor(E){if(this.filePath=E,this.headers=new Headers,this.exists=s.existsSync(E),this.exists){this.status=200,this.statusText="OK";let D=s.statSync(E);this.headers.set("content-length",D.size.toString()),this.updateContentType();let O=s.createReadStream(E);this.body=new ReadableStream({start(U){O.on("data",W=>U.enqueue(W)),O.on("end",()=>U.close()),O.on("error",W=>U.error(W))},cancel(){O.destroy()}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){let E=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",l[E]??"application/octet-stream")}clone(){let E=new c(this.filePath);return E.exists=this.exists,E.status=this.status,E.statusText=this.statusText,E.headers=new Headers(this.headers),E}async arrayBuffer(){return(await s.promises.readFile(this.filePath)).buffer}async blob(){let E=await s.promises.readFile(this.filePath);return new Blob([E],{type:this.headers.get("content-type")})}async text(){return await s.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function _(f,E=null,D=null){let O;try{O=new URL(f)}catch{return!1}return!(E&&!E.includes(O.protocol)||D&&!D.includes(O.hostname))}let u=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function d(f){return!(!u.test(f)||f.includes("..")||f.includes("--")||f.endsWith(".git")||f.endsWith(".ipynb"))}async function g(f){if(a.env.useFS&&!_(f,["http:","https:","blob:"]))return new c(f instanceof URL?f.protocol==="file:"?f.pathname:f.toString():f);if(typeof process<"u"&&process?.release?.name==="node"){let E=!!process.env?.TESTING_REMOTELY,D=a.env.version,O=new Headers;if(O.set("User-Agent",`transformers.js/${D}; is_ci/${E};`),_(f,["http:","https:"],["huggingface.co","hf.co"])){let W=process.env?.HF_TOKEN??process.env?.HF_ACCESS_TOKEN;W&&O.set("Authorization",`Bearer ${W}`)}return fetch(f,{headers:O})}else return fetch(f)}let h={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};function x(f,E,D){if(!D)return null;let O=h[f]??`Error (${f}) occurred while trying to load file`;throw Error(`${O}: "${E}".`)}class F{constructor(E){this.path=E}async match(E){let D=o.join(this.path,E),O=new c(D);if(O.exists)return O}async put(E,D,O=void 0){let U=o.join(this.path,E);try{let W=D.headers.get("Content-Length"),z=parseInt(W??"0"),X=0;await s.promises.mkdir(o.dirname(U),{recursive:!0});let J=s.createWriteStream(U),q=D.body.getReader();for(;;){let{done:re,value:oe}=await q.read();if(re)break;await new Promise((ye,Y)=>{J.write(oe,H=>{if(H){Y(H);return}ye()})}),X+=oe.length;let ne=z?X/z*100:0;O?.({progress:ne,loaded:X,total:z})}J.close()}catch(W){try{await s.promises.unlink(U)}catch{}throw W}}}async function v(f,...E){for(let D of E)try{let O=await f.match(D);if(O)return O}catch{continue}}async function b(f,E,D=!0,O={},U=!1){if(!a.env.allowLocalModels){if(O.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!a.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}(0,n.dispatchCallback)(O.progress_callback,{status:"initiate",name:f,file:E});let W;if(!W&&a.env.useCustomCache){if(!a.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!a.env.customCache.match||!a.env.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");W=a.env.customCache}if(!W&&a.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{W=await caches.open("transformers-cache")}catch(ee){console.warn("An error occurred while opening the browser cache:",ee)}}if(!W&&a.env.useFSCache){if(!a.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");W=new F(O.cache_dir??a.env.cacheDir)}let z=O.revision??"main",X=I(f,E),J=d(f),q=J?I(a.env.localModelPath,X):X,re=I(a.env.remoteHost,a.env.remotePathTemplate.replaceAll("{model}",f).replaceAll("{revision}",encodeURIComponent(z)),E),oe,ne=W instanceof F?z==="main"?X:I(f,z,E):re,ye=!1,Y;W&&(Y=await v(W,q,ne));let H=Y!==void 0;if(Y===void 0){if(a.env.allowLocalModels)if(_(X,["http:","https:"])){if(O.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${X}.`);if(!a.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${X}.`)}else try{Y=await g(q),oe=q}catch(ue){console.warn(`Unable to load from local path "${q}": "${ue}"`)}if(Y===void 0||Y.status===404){if(O.local_files_only||!a.env.allowRemoteModels){if(D)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${q}".`);return null}if(!J)throw Error(`Local file missing at "${q}" and download aborted due to invalid model ID "${f}".`);if(Y=await g(re),Y.status!==200)return x(Y.status,re,D);oe=ne}ye=W&&typeof Response<"u"&&Y instanceof Response&&Y.status===200}(0,n.dispatchCallback)(O.progress_callback,{status:"download",name:f,file:E});let R;if(!(a.apis.IS_NODE_ENV&&U)){let ee;O.progress_callback?H&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(ee=new Uint8Array(await Y.arrayBuffer()),(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,progress:100,loaded:ee.length,total:ee.length})):ee=await P(Y,ue=>{(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,...ue})}):ee=new Uint8Array(await Y.arrayBuffer()),R=ee}if(ye&&oe&&await W.match(oe)===void 0)if(R)await W.put(oe,new Response(R,{headers:Y.headers})).catch(ee=>{console.warn(`Unable to add response to browser cache: ${ee}.`)});else{let ee=O.progress_callback?ue=>(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,...ue}):void 0;await W.put(oe,Y,ee)}if((0,n.dispatchCallback)(O.progress_callback,{status:"done",name:f,file:E}),R){if(!a.apis.IS_NODE_ENV&&U)throw new Error("Cannot return path in a browser environment.");return R}if(Y instanceof c)return Y.filePath;let L=await W?.match(oe);if(L instanceof c)return L.filePath;if(L instanceof Response)return new Uint8Array(await L.arrayBuffer());if(typeof L=="string")return L;throw new Error("Unable to get model file path or buffer.")}async function C(f,E,D=!0,O={}){let U=await b(f,E,D,O,!1);return U===null?null:new TextDecoder("utf-8").decode(U)}async function y(f,E,D=!0,O={}){let U=await C(f,E,D,O);return U===null?{}:JSON.parse(U)}async function P(f,E){let D=f.headers.get("Content-Length");D===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let O=parseInt(D??"0"),U=new Uint8Array(O),W=0,z=f.body.getReader();async function X(){let{done:J,value:q}=await z.read();if(J)return;let re=W+q.length;if(re>O){O=re;let ne=new Uint8Array(O);ne.set(U),U=ne}U.set(q,W),W=re;let oe=W/O*100;return E({progress:oe,loaded:W,total:O}),X()}return await X(),U}function I(...f){return f=f.map((E,D)=>(D&&(E=E.replace(new RegExp("^/"),"")),D!==f.length-1&&(E=E.replace(new RegExp("/$"),"")),E)),f.join("/")}}),"./src/utils/image.js":((e,r,t)=>{t.r(r),t.d(r,{RawImage:()=>h,load_image:()=>x});var s=t("./src/utils/core.js"),o=t("./src/utils/hub.js"),a=t("./src/env.js"),n=t("./src/utils/tensor.js"),i=t("?2b25");let l,c,_,u=a.apis.IS_BROWSER_ENV||a.apis.IS_WEBWORKER_ENV;if(u)l=(F,v)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(F,v)},_=self.createImageBitmap,c=self.ImageData;else if(i)_=async F=>{let b=(await F.metadata()).channels,{data:C,info:y}=await F.rotate().raw().toBuffer({resolveWithObject:!0}),P=new h(new Uint8ClampedArray(C),y.width,y.height,y.channels);return b!==void 0&&b!==y.channels&&P.convert(b),P};else throw new Error("Unable to load image processing library.");let d={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},g=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class h{constructor(v,b,C,y){this.data=v,this.width=b,this.height=C,this.channels=y}get size(){return[this.width,this.height]}static async read(v){if(v instanceof h)return v;if(typeof v=="string"||v instanceof URL)return await this.fromURL(v);if(v instanceof Blob)return await this.fromBlob(v);if(typeof HTMLCanvasElement<"u"&&v instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&v instanceof OffscreenCanvas)return this.fromCanvas(v);throw new Error(`Unsupported input type: ${typeof v}`)}static fromCanvas(v){if(!u)throw new Error("fromCanvas() is only supported in browser environments.");let C=v.getContext("2d").getImageData(0,0,v.width,v.height).data;return new h(C,v.width,v.height,4)}static async fromURL(v){let b=await(0,o.getFile)(v);if(b.status!==200)throw new Error(`Unable to read image from "${v}" (${b.status} ${b.statusText})`);let C=await b.blob();return this.fromBlob(C)}static async fromBlob(v){if(u){let b=await _(v),C=l(b.width,b.height).getContext("2d");return C.drawImage(b,0,0),new this(C.getImageData(0,0,b.width,b.height).data,b.width,b.height,4)}else{let b=i(await v.arrayBuffer());return await _(b)}}static fromTensor(v,b="CHW"){if(v.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${v.dims.length} dimensions.`);if(b==="CHW")v=v.transpose(1,2,0);else if(b!=="HWC")throw new Error(`Unsupported channel format: ${b}`);if(!(v.data instanceof Uint8ClampedArray||v.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${v.type}`);switch(v.dims[2]){case 1:case 2:case 3:case 4:return new h(v.data,v.dims[1],v.dims[0],v.dims[2]);default:throw new Error(`Unsupported number of channels: ${v.dims[2]}`)}}grayscale(){if(this.channels===1)return this;let v=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let b=0,C=0;b<this.data.length;b+=this.channels){let y=this.data[b],P=this.data[b+1],I=this.data[b+2];v[C++]=Math.round(.2989*y+.587*P+.114*I)}break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,1)}rgb(){if(this.channels===3)return this;let v=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let b=0,C=0;b<this.data.length;++b)v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=this.data[b];break;case 4:for(let b=0,C=0;b<this.data.length;b+=4)v[C++]=this.data[b],v[C++]=this.data[b+1],v[C++]=this.data[b+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,3)}rgba(){if(this.channels===4)return this;let v=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let b=0,C=0;b<this.data.length;++b)v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=255;break;case 3:for(let b=0,C=0;b<this.data.length;b+=3)v[C++]=this.data[b],v[C++]=this.data[b+1],v[C++]=this.data[b+2],v[C++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,4)}putAlpha(v){if(v.width!==this.width||v.height!==this.height)throw new Error(`Expected mask size to be ${this.width}x${this.height}, but got ${v.width}x${v.height}`);if(v.channels!==1)throw new Error(`Expected mask to have 1 channel, but got ${v.channels}`);let b=this.data,C=v.data,y=this.width*this.height;if(this.channels===3){let P=new Uint8ClampedArray(y*4);for(let I=0,f=0,E=0;I<y;++I)P[E++]=b[f++],P[E++]=b[f++],P[E++]=b[f++],P[E++]=C[I];return this._update(P,this.width,this.height,4)}else if(this.channels===4){for(let P=0;P<y;++P)b[4*P+3]=C[P];return this}throw new Error(`Expected image to have 3 or 4 channels, but got ${this.channels}`)}async resize(v,b,{resample:C=2}={}){if(this.width===v&&this.height===b)return this;let y=d[C]??C,P=(0,s.isNullishDimension)(v),I=(0,s.isNullishDimension)(b);if(P&&I)return this;if(P?v=b/this.height*this.width:I&&(b=v/this.width*this.height),u){let f=this.channels,E=this.toCanvas(),D=l(v,b).getContext("2d");return D.drawImage(E,0,0,v,b),new h(D.getImageData(0,0,v,b).data,v,b,4).convert(f)}else{let f=this.toSharp();switch(y){case"box":case"hamming":(y==="box"||y==="hamming")&&(console.warn(`Resampling method ${y} is not yet supported. Using bilinear instead.`),y="bilinear");case"nearest":case"bilinear":case"bicubic":f=f.affine([v/this.width,0,0,b/this.height],{interpolator:y});break;case"lanczos":f=f.resize({width:v,height:b,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${y} is not supported.`)}return await _(f)}}async pad([v,b,C,y]){if(v=Math.max(v,0),b=Math.max(b,0),C=Math.max(C,0),y=Math.max(y,0),v===0&&b===0&&C===0&&y===0)return this;if(u){let P=this.channels,I=this.toCanvas(),f=this.width+v+b,E=this.height+C+y,D=l(f,E).getContext("2d");return D.drawImage(I,0,0,this.width,this.height,v,C,this.width,this.height),new h(D.getImageData(0,0,f,E).data,f,E,4).convert(P)}else{let P=this.toSharp().extend({left:v,right:b,top:C,bottom:y});return await _(P)}}async crop([v,b,C,y]){if(v=Math.max(v,0),b=Math.max(b,0),C=Math.min(C,this.width-1),y=Math.min(y,this.height-1),v===0&&b===0&&C===this.width-1&&y===this.height-1)return this;let P=C-v+1,I=y-b+1;if(u){let f=this.channels,E=this.toCanvas(),D=l(P,I).getContext("2d");return D.drawImage(E,v,b,P,I,0,0,P,I),new h(D.getImageData(0,0,P,I).data,P,I,4).convert(f)}else{let f=this.toSharp().extract({left:v,top:b,width:P,height:I});return await _(f)}}async center_crop(v,b){if(this.width===v&&this.height===b)return this;let C=(this.width-v)/2,y=(this.height-b)/2;if(u){let P=this.channels,I=this.toCanvas(),f=l(v,b).getContext("2d"),E=0,D=0,O=0,U=0;return C>=0?E=C:O=-C,y>=0?D=y:U=-y,f.drawImage(I,E,D,v,b,O,U,v,b),new h(f.getImageData(0,0,v,b).data,v,b,4).convert(P)}else{let P=this.toSharp();if(C>=0&&y>=0)P=P.extract({left:Math.floor(C),top:Math.floor(y),width:v,height:b});else if(C<=0&&y<=0){let I=Math.floor(-y),f=Math.floor(-C);P=P.extend({top:I,left:f,right:v-this.width-f,bottom:b-this.height-I})}else{let I=[0,0],f=0;y<0?(I[0]=Math.floor(-y),I[1]=b-this.height-I[0]):f=Math.floor(y);let E=[0,0],D=0;C<0?(E[0]=Math.floor(-C),E[1]=v-this.width-E[0]):D=Math.floor(C),P=P.extend({top:I[0],bottom:I[1],left:E[0],right:E[1]}).extract({left:D,top:f,width:v,height:b})}return await _(P)}}async toBlob(v="image/png",b=1){if(!u)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:v,quality:b})}toTensor(v="CHW"){let b=new n.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(v!=="HWC")if(v==="CHW")b=b.permute(2,0,1);else throw new Error(`Unsupported channel format: ${v}`);return b}toCanvas(){if(!u)throw new Error("toCanvas() is only supported in browser environments.");let v=this.clone().rgba(),b=l(v.width,v.height),C=new c(v.data,v.width,v.height);return b.getContext("2d").putImageData(C,0,0),b}split(){let{data:v,width:b,height:C,channels:y}=this,P=v.constructor,I=v.length/y,f=Array.from({length:y},()=>new P(I));for(let E=0;E<I;++E){let D=y*E;for(let O=0;O<y;++O)f[O][E]=v[D+O]}return f.map(E=>new h(E,b,C,1))}_update(v,b,C,y=null){return this.data=v,this.width=b,this.height=C,y!==null&&(this.channels=y),this}clone(){return new h(this.data.slice(),this.width,this.height,this.channels)}convert(v){if(this.channels===v)return this;switch(v){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(v){if(u){if(a.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");let b=v.split(".").pop().toLowerCase(),C=g.get(b)??"image/png",y=await this.toBlob(C);(0,s.saveBlob)(v,y)}else{if(a.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(v);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(u)throw new Error("toSharp() is only supported in server-side environments.");return i(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}let x=h.read.bind(h)}),"./src/utils/maths.js":((e,r,t)=>{t.r(r),t.d(r,{FFT:()=>x,bankers_round:()=>b,cos_sim:()=>l,dot:()=>i,dynamic_time_warping:()=>C,interpolate_data:()=>s,log_softmax:()=>n,magnitude:()=>c,max:()=>u,medianFilter:()=>F,min:()=>_,permute_data:()=>o,round:()=>v,softmax:()=>a});function s(y,[P,I,f],[E,D],O="bilinear",U=!1){let W=D/f,z=E/I,X=new y.constructor(E*D*P),J=I*f,q=E*D;for(let re=0;re<E;++re)for(let oe=0;oe<D;++oe){let ne=re*D+oe,ye=(oe+.5)/W-.5,Y=(re+.5)/z-.5,H=Math.floor(ye),R=Math.floor(Y),L=Math.min(H+1,f-1),ee=Math.min(R+1,I-1);H=Math.max(H,0),R=Math.max(R,0);let ue=ye-H,ke=Y-R,Ie=(1-ue)*(1-ke),Le=ue*(1-ke),rt=(1-ue)*ke,we=ue*ke,A=R*f,le=ee*f,ge=A+H,be=A+L,Ae=le+H,ve=le+L;for(let pe=0;pe<P;++pe){let Pe=pe*J;X[pe*q+ne]=Ie*y[Pe+ge]+Le*y[Pe+be]+rt*y[Pe+Ae]+we*y[Pe+ve]}}return X}function o(y,P,I){let f=new Array(I.length),E=new Array(I.length);for(let U=I.length-1,W=1;U>=0;--U)E[U]=W,f[U]=P[I[U]],W*=f[U];let D=I.map((U,W)=>E[I.indexOf(W)]),O=new y.constructor(y.length);for(let U=0;U<y.length;++U){let W=0;for(let z=P.length-1,X=U;z>=0;--z)W+=X%P[z]*D[z],X=Math.floor(X/P[z]);O[W]=y[U]}return[O,f]}function a(y){let P=u(y)[0],I=y.map(D=>Math.exp(D-P)),f=I.reduce((D,O)=>D+O,0);return I.map(D=>D/f)}function n(y){let P=u(y)[0],I=0;for(let D=0;D<y.length;++D)I+=Math.exp(y[D]-P);let f=Math.log(I);return y.map(D=>D-P-f)}function i(y,P){let I=0;for(let f=0;f<y.length;++f)I+=y[f]*P[f];return I}function l(y,P){let I=i(y,P),f=c(y),E=c(P);return I/(f*E)}function c(y){return Math.sqrt(y.reduce((P,I)=>P+I*I,0))}function _(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let f=1;f<y.length;++f)y[f]<P&&(P=y[f],I=f);return[P,I]}function u(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let f=1;f<y.length;++f)y[f]>P&&(P=y[f],I=f);return[P,I]}function d(y){return y>0&&(y&y-1)===0}class g{constructor(P){if(this.size=P|0,this.size<=1||!d(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=P<<1,this.table=new Float64Array(this.size*2);for(let f=0;f<this.table.length;f+=2){let E=Math.PI*f/this.size;this.table[f]=Math.cos(E),this.table[f+1]=-Math.sin(E)}let I=0;for(let f=1;this.size>f;f<<=1)++I;this._width=I%2===0?I-1:I,this._bitrev=new Int32Array(1<<this._width);for(let f=0;f<this._bitrev.length;++f){this._bitrev[f]=0;for(let E=0;E<this._width;E+=2){let D=this._width-E-2;this._bitrev[f]|=(f>>>E&3)<<D}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(P,I){let f=I||new Array(P.length>>>1);for(let E=0;E<P.length;E+=2)f[E>>>1]=P[E];return f}toComplexArray(P,I){let f=I||this.createComplexArray();for(let E=0;E<f.length;E+=2)f[E]=P[E>>>1],f[E+1]=0;return f}transform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._transform4(P,I,1)}realTransform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._realTransform4(P,I,1)}inverseTransform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._transform4(P,I,-1);for(let f=0;f<P.length;++f)P[f]/=this.size}_transform4(P,I,f){let E=this._csize,O=1<<this._width,U=E/O<<1,W,z,X=this._bitrev;if(U===4)for(W=0,z=0;W<E;W+=U,++z){let q=X[z];this._singleTransform2(I,P,W,q,O)}else for(W=0,z=0;W<E;W+=U,++z){let q=X[z];this._singleTransform4(I,P,W,q,O,f)}let J=this.table;for(O>>=2;O>=2;O>>=2){U=E/O<<1;let q=U>>>2;for(W=0;W<E;W+=U){let re=W+q-1;for(let oe=W,ne=0;oe<re;oe+=2,ne+=O){let ye=oe,Y=ye+q,H=Y+q,R=H+q,L=P[ye],ee=P[ye+1],ue=P[Y],ke=P[Y+1],Ie=P[H],Le=P[H+1],rt=P[R],we=P[R+1],A=J[ne],le=f*J[ne+1],ge=ue*A-ke*le,be=ue*le+ke*A,Ae=J[2*ne],ve=f*J[2*ne+1],pe=Ie*Ae-Le*ve,Pe=Ie*ve+Le*Ae,fe=J[3*ne],Te=f*J[3*ne+1],We=rt*fe-we*Te,$e=rt*Te+we*fe,Re=L+pe,Ne=ee+Pe,ot=L-pe,De=ee-Pe,Qe=ge+We,je=be+$e,pt=f*(ge-We),Ke=f*(be-$e);P[ye]=Re+Qe,P[ye+1]=Ne+je,P[Y]=ot+Ke,P[Y+1]=De-pt,P[H]=Re-Qe,P[H+1]=Ne-je,P[R]=ot-Ke,P[R+1]=De+pt}}}}_singleTransform2(P,I,f,E,D){let O=P[E],U=P[E+1],W=P[E+D],z=P[E+D+1];I[f]=O+W,I[f+1]=U+z,I[f+2]=O-W,I[f+3]=U-z}_singleTransform4(P,I,f,E,D,O){let U=D*2,W=D*3,z=P[E],X=P[E+1],J=P[E+D],q=P[E+D+1],re=P[E+U],oe=P[E+U+1],ne=P[E+W],ye=P[E+W+1],Y=z+re,H=X+oe,R=z-re,L=X-oe,ee=J+ne,ue=q+ye,ke=O*(J-ne),Ie=O*(q-ye);I[f]=Y+ee,I[f+1]=H+ue,I[f+2]=R+Ie,I[f+3]=L-ke,I[f+4]=Y-ee,I[f+5]=H-ue,I[f+6]=R-Ie,I[f+7]=L+ke}_realTransform4(P,I,f){let E=this._csize,O=1<<this._width,U=E/O<<1,W,z,X=this._bitrev;if(U===4)for(W=0,z=0;W<E;W+=U,++z){let re=X[z];this._singleRealTransform2(I,P,W,re>>>1,O>>>1)}else for(W=0,z=0;W<E;W+=U,++z){let re=X[z];this._singleRealTransform4(I,P,W,re>>>1,O>>>1,f)}let J=this.table;for(O>>=2;O>=2;O>>=2){U=E/O<<1;let re=U>>>1,oe=re>>>1,ne=oe>>>1;for(W=0;W<E;W+=U)for(let ye=0,Y=0;ye<=ne;ye+=2,Y+=O){let H=W+ye,R=H+oe,L=R+oe,ee=L+oe,ue=P[H],ke=P[H+1],Ie=P[R],Le=P[R+1],rt=P[L],we=P[L+1],A=P[ee],le=P[ee+1],ge=ue,be=ke,Ae=J[Y],ve=f*J[Y+1],pe=Ie*Ae-Le*ve,Pe=Ie*ve+Le*Ae,fe=J[2*Y],Te=f*J[2*Y+1],We=rt*fe-we*Te,$e=rt*Te+we*fe,Re=J[3*Y],Ne=f*J[3*Y+1],ot=A*Re-le*Ne,De=A*Ne+le*Re,Qe=ge+We,je=be+$e,pt=ge-We,Ke=be-$e,bt=pe+ot,At=Pe+De,Lt=f*(pe-ot),fr=f*(Pe-De);if(P[H]=Qe+bt,P[H+1]=je+At,P[R]=pt+fr,P[R+1]=Ke-Lt,ye===0){P[L]=Qe-bt,P[L+1]=je-At;continue}if(ye===ne)continue;let zt=W+oe-ye,yr=W+re-ye;P[zt]=pt-f*fr,P[zt+1]=-Ke-f*Lt,P[yr]=Qe-f*bt,P[yr+1]=-je+f*At}}let q=E>>>1;for(let re=2;re<q;re+=2)P[E-re]=P[re],P[E-re+1]=-P[re+1]}_singleRealTransform2(P,I,f,E,D){let O=P[E],U=P[E+D];I[f]=O+U,I[f+1]=0,I[f+2]=O-U,I[f+3]=0}_singleRealTransform4(P,I,f,E,D,O){let U=D*2,W=D*3,z=P[E],X=P[E+D],J=P[E+U],q=P[E+W],re=z+J,oe=z-J,ne=X+q,ye=O*(X-q);I[f]=re+ne,I[f+1]=0,I[f+2]=oe,I[f+3]=-ye,I[f+4]=re-ne,I[f+5]=0,I[f+6]=oe,I[f+7]=ye}}class h{constructor(P){let I=2*(P-1),f=2*(2*P-1),E=2**Math.ceil(Math.log2(f));this.bufferSize=E,this._a=I;let D=new Float64Array(f),O=new Float64Array(E);this._chirpBuffer=new Float64Array(E),this._buffer1=new Float64Array(E),this._buffer2=new Float64Array(E),this._outBuffer1=new Float64Array(E),this._outBuffer2=new Float64Array(E);let U=-2*Math.PI/P,W=Math.cos(U),z=Math.sin(U);for(let X=0;X<f>>1;++X){let J=(X+1-P)**2/2,q=Math.sqrt(W**2+z**2)**J,re=J*Math.atan2(z,W),oe=2*X;D[oe]=q*Math.cos(re),D[oe+1]=q*Math.sin(re),O[oe]=D[oe],O[oe+1]=-D[oe+1]}this._slicedChirpBuffer=D.subarray(I,f),this._f=new g(E>>1),this._f.transform(this._chirpBuffer,O)}_transform(P,I,f){let E=this._buffer1,D=this._buffer2,O=this._outBuffer1,U=this._outBuffer2,W=this._chirpBuffer,z=this._slicedChirpBuffer,X=this._a;if(f)for(let J=0;J<z.length;J+=2){let q=J+1,re=J>>1,oe=I[re];E[J]=oe*z[J],E[q]=oe*z[q]}else for(let J=0;J<z.length;J+=2){let q=J+1;E[J]=I[J]*z[J]-I[q]*z[q],E[q]=I[J]*z[q]+I[q]*z[J]}this._f.transform(O,E);for(let J=0;J<W.length;J+=2){let q=J+1;D[J]=O[J]*W[J]-O[q]*W[q],D[q]=O[J]*W[q]+O[q]*W[J]}this._f.inverseTransform(U,D);for(let J=0;J<U.length;J+=2){let q=U[J+X],re=U[J+X+1],oe=z[J],ne=z[J+1];P[J]=q*oe-re*ne,P[J+1]=q*ne+re*oe}}transform(P,I){this._transform(P,I,!1)}realTransform(P,I){this._transform(P,I,!0)}}class x{constructor(P){this.fft_length=P,this.isPowerOfTwo=d(P),this.isPowerOfTwo?(this.fft=new g(P),this.outputBufferSize=2*P):(this.fft=new h(P),this.outputBufferSize=this.fft.bufferSize)}realTransform(P,I){this.fft.realTransform(P,I)}transform(P,I){this.fft.transform(P,I)}}function F(y,P){if(P%2===0||P<=0)throw new Error("Window size must be a positive odd number");let I=new y.constructor(y.length),f=new y.constructor(P),E=Math.floor(P/2);for(let D=0;D<y.length;++D){let O=0;for(let U=-E;U<=E;++U){let W=D+U;W<0?W=Math.abs(W):W>=y.length&&(W=2*(y.length-1)-W),f[O++]=y[W]}f.sort(),I[D]=f[E]}return I}function v(y,P){let I=Math.pow(10,P);return Math.round(y*I)/I}function b(y){let P=Math.round(y);return Math.abs(y)%1===.5?P%2===0?P:P-1:P}function C(y){let P=y.length,I=y[0].length,f=[P+1,I+1],E=Array.from({length:f[0]},()=>Array(f[1]).fill(1/0));E[0][0]=0;let D=Array.from({length:f[0]},()=>Array(f[1]).fill(-1));for(let X=1;X<f[1];++X)for(let J=1;J<f[0];++J){let q=E[J-1][X-1],re=E[J-1][X],oe=E[J][X-1],ne,ye;q<re&&q<oe?(ne=q,ye=0):re<q&&re<oe?(ne=re,ye=1):(ne=oe,ye=2),E[J][X]=y[J-1][X-1]+ne,D[J][X]=ye}for(let X=0;X<f[1];++X)D[0][X]=2;for(let X=0;X<f[0];++X)D[X][0]=1;let O=P,U=I,W=[],z=[];for(;O>0||U>0;)switch(W.push(O-1),z.push(U-1),D[O][U]){case 0:--O,--U;break;case 1:--O;break;case 2:--U;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${O}, ${U}]. Please file a bug report.`)}return W.reverse(),z.reverse(),[W,z]}}),"./src/utils/tensor.js":((e,r,t)=>{t.r(r),t.d(r,{DataTypeMap:()=>n,Tensor:()=>i,cat:()=>I,full:()=>z,full_like:()=>X,interpolate:()=>_,interpolate_4d:()=>u,layer_norm:()=>b,matmul:()=>d,mean:()=>O,mean_pooling:()=>v,ones:()=>J,ones_like:()=>q,permute:()=>c,quantize_embeddings:()=>Y,rand:()=>ne,randn:()=>ye,rfft:()=>g,slice:()=>F,stack:()=>f,std_mean:()=>D,topk:()=>h,zeros:()=>re,zeros_like:()=>oe});var s=t("./src/utils/maths.js"),o=t("./src/backends/onnx.js"),a=t("./src/ops/registry.js");let n=Object.freeze({float32:Float32Array,float16:typeof Float16Array<"u"?Float16Array:Uint16Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array,uint4:Uint8Array,int4:Int8Array});class i{get dims(){return this.ort_tensor.dims}set dims(R){this.ort_tensor.dims=R}get type(){return this.ort_tensor.type}get data(){return this.ort_tensor.data}get size(){return this.ort_tensor.size}get location(){return this.ort_tensor.location}ort_tensor;constructor(...R){return(0,o.isONNXTensor)(R[0])?this.ort_tensor=R[0]:this.ort_tensor=new o.Tensor(R[0],R[1],R[2]),new Proxy(this,{get:(L,ee)=>{if(typeof ee=="string"){let ue=Number(ee);if(Number.isInteger(ue))return L._getitem(ue)}return L[ee]},set:(L,ee,ue)=>L[ee]=ue})}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){let[R,...L]=this.dims;if(L.length>0){let ee=L.reduce((ue,ke)=>ue*ke);for(let ue=0;ue<R;++ue)yield this._subarray(ue,ee,L)}else yield*this.data}_getitem(R){let[L,...ee]=this.dims;if(R=P(R,L),ee.length>0){let ue=ee.reduce((ke,Ie)=>ke*Ie);return this._subarray(R,ue,ee)}else return new i(this.type,[this.data[R]],ee)}indexOf(R){let L=this.data;for(let ee=0;ee<L.length;++ee)if(L[ee]==R)return ee;return-1}_subarray(R,L,ee){let ue=R*L,ke=(R+1)*L,Ie="subarray"in this.data?this.data.subarray(ue,ke):this.data.slice(ue,ke);return new i(this.type,Ie,ee)}item(){let R=this.data;if(R.length!==1)throw new Error(`a Tensor with ${R.length} elements cannot be converted to Scalar`);return R[0]}tolist(){return l(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=1/(1+Math.exp(-R[L]));return this}map(R){return this.clone().map_(R)}map_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]=R(L[ee],ee,L);return this}mul(R){return this.clone().mul_(R)}mul_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]*=R;return this}div(R){return this.clone().div_(R)}div_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]/=R;return this}add(R){return this.clone().add_(R)}add_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]+=R;return this}sub(R){return this.clone().sub_(R)}sub_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]-=R;return this}clone(){return new i(this.type,this.data.slice(),this.dims.slice())}slice(...R){let L=[],ee=[];for(let A=0;A<this.dims.length;++A){let le=R[A];if(le==null)ee.push([0,this.dims[A]]),L.push(this.dims[A]);else if(typeof le=="number")le=P(le,this.dims[A],A),ee.push([le,le+1]);else if(Array.isArray(le)&&le.length===2){let[ge,be]=le;if(ge=ge===null?0:P(ge,this.dims[A],A,!1),be=be===null?this.dims[A]:P(be,this.dims[A],A,!1),ge>be)throw new Error(`Invalid slice: ${le}`);let Ae=[Math.max(ge,0),Math.min(be,this.dims[A])];ee.push(Ae),L.push(Ae[1]-Ae[0])}else throw new Error(`Invalid slice: ${le}`)}let ue=ee.map(([A,le])=>le-A),ke=ue.reduce((A,le)=>A*le),Ie=this.data,Le=new Ie.constructor(ke),rt=this.stride(),we=!0;for(let A=1;A<ue.length;++A)if(ee[A][0]!==0||ee[A][1]!==this.dims[A]){we=!1;break}if(we){let A=ee[0][0]*rt[0],le=ee[0][1]*rt[0];if(ArrayBuffer.isView(Ie))Le.set(Ie.subarray(A,le));else if(Array.isArray(Ie)){let ge=Ie.slice(A,le);for(let be=0;be<ge.length;++be)Le[be]=ge[be]}else throw new Error("Unsupported data type for slicing")}else for(let A=0;A<ke;++A){let le=0;for(let ge=ue.length-1,be=A;ge>=0;--ge){let Ae=ue[ge];le+=(be%Ae+ee[ge][0])*rt[ge],be=Math.floor(be/Ae)}Le[A]=Ie[le]}return new i(this.type,Le,L)}permute(...R){return c(this,R)}transpose(...R){return this.permute(...R)}sum(R=null,L=!1){return this.norm(1,R,L)}norm(R="fro",L=null,ee=!1){if(R==="fro")R=2;else if(typeof R=="string")throw Error(`Unsupported norm: ${R}`);let ue=this.data,ke=(we,A)=>we+A**R;if(L===null){let we=ue.reduce(ke,0)**(1/R);return new i(this.type,[we],[])}let[Ie,Le,rt]=E(ke,this,L,ee);if(R!==1)for(let we=0;we<Le.length;++we)Le[we]=Le[we]**(1/R);return new i(Ie,Le,rt)}normalize_(R=2,L=1){L=P(L,this.dims.length);let ee=this.norm(R,L,!0),ue=this.data,ke=ee.data;for(let Ie=0;Ie<ue.length;++Ie){let Le=0;for(let rt=this.dims.length-1,we=Ie,A=1;rt>=0;--rt){let le=this.dims[rt];if(rt!==L){let ge=we%le;Le+=ge*A,A*=this.dims[rt]}we=Math.floor(we/le)}ue[Ie]/=ke[Le]}return this}normalize(R=2,L=1){return this.clone().normalize_(R,L)}stride(){return U(this.dims)}squeeze(R=null){return new i(this.type,this.data,C(this.dims,R))}squeeze_(R=null){return this.dims=C(this.dims,R),this}unsqueeze(R=null){return new i(this.type,this.data,y(this.dims,R))}unsqueeze_(R=null){return this.dims=y(this.dims,R),this}flatten_(R=0,L=-1){L=(L+this.dims.length)%this.dims.length;let ee=this.dims.slice(0,R),ue=this.dims.slice(R,L+1),ke=this.dims.slice(L+1);return this.dims=[...ee,ue.reduce((Ie,Le)=>Ie*Le,1),...ke],this}flatten(R=0,L=-1){return this.clone().flatten_(R,L)}view(...R){let L=-1;for(let ue=0;ue<R.length;++ue)if(R[ue]===-1){if(L!==-1)throw new Error("Only one dimension can be inferred");L=ue}let ee=this.data;if(L!==-1){let ue=R.reduce((ke,Ie,Le)=>Le!==L?ke*Ie:ke,1);R[L]=ee.length/ue}return new i(this.type,ee,R)}neg_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=-R[L];return this}neg(){return this.clone().neg_()}gt(R){let L=new Uint8Array(this.data.length),ee=this.data;for(let ue=0;ue<ee.length;++ue)L[ue]=ee[ue]>R?1:0;return new i("bool",L,this.dims)}lt(R){let L=new Uint8Array(this.data.length),ee=this.data;for(let ue=0;ue<ee.length;++ue)L[ue]=ee[ue]<R?1:0;return new i("bool",L,this.dims)}clamp_(R,L){let ee=this.data;for(let ue=0;ue<ee.length;++ue)ee[ue]=Math.min(Math.max(ee[ue],R),L);return this}clamp(R,L){return this.clone().clamp_(R,L)}round_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=Math.round(R[L]);return this}round(){return this.clone().round_()}mean(R=null,L=!1){return O(this,R,L)}min(R=null,L=!1){if(R===null){let Ie=(0,s.min)(this.data)[0];return new i(this.type,[Ie],[])}let[ee,ue,ke]=E((Ie,Le)=>Math.min(Ie,Le),this,R,L,1/0);return new i(ee,ue,ke)}max(R=null,L=!1){if(R===null){let Ie=(0,s.max)(this.data)[0];return new i(this.type,[Ie],[])}let[ee,ue,ke]=E((Ie,Le)=>Math.max(Ie,Le),this,R,L,-1/0);return new i(ee,ue,ke)}argmin(R=null,L=!1){if(R!==null)throw new Error("`dim !== null` not yet implemented.");let ee=(0,s.min)(this.data)[1];return new i("int64",[BigInt(ee)],[])}argmax(R=null,L=!1){if(R!==null)throw new Error("`dim !== null` not yet implemented.");let ee=(0,s.max)(this.data)[1];return new i("int64",[BigInt(ee)],[])}to(R){if(this.type===R)return this;if(!n.hasOwnProperty(R))throw new Error(`Unsupported type: ${R}`);let L,ee=["int64","uint64"].includes(this.type),ue=["int64","uint64"].includes(R);return ee&&!ue?L=Number:!ee&&ue&&(["float16","float32","float64"].includes(this.type)?L=ke=>BigInt(Math.floor(ke)):L=BigInt),new i(R,n[R].from(this.data,L),this.dims)}}function l(H,R){let L=H.length,ee=R.reduce((ke,Ie)=>ke*Ie);if(L!==ee)throw Error(`cannot reshape array of size ${L} into shape (${R})`);let ue=H;for(let ke=R.length-1;ke>=0;ke--)ue=ue.reduce((Ie,Le)=>{let rt=Ie[Ie.length-1];return rt.length<R[ke]?rt.push(Le):Ie.push([Le]),Ie},[[]]);return ue[0]}function c(H,R){let[L,ee]=(0,s.permute_data)(H.data,H.dims,R);return new i(H.type,L,ee)}function _(H,[R,L],ee="bilinear",ue=!1){let ke=H.dims.at(-3)??1,Ie=H.dims.at(-2),Le=H.dims.at(-1),rt=(0,s.interpolate_data)(H.data,[ke,Ie,Le],[R,L],ee,ue);return new i(H.type,rt,[ke,R,L])}async function u(H,{size:R=null,mode:L="bilinear"}={}){if(H.dims.length!==4)throw new Error("`interpolate_4d` currently only supports 4D input.");if(!R)throw new Error("`interpolate_4d` requires a `size` argument.");let ee;if(R.length===2)ee=[...H.dims.slice(0,2),...R];else if(R.length===3)ee=[H.dims[0],...R];else if(R.length===4)ee=R;else throw new Error("`size` must be of length 2, 3, or 4.");let ue;if(L==="nearest")ue=await a.TensorOpRegistry.nearest_interpolate_4d;else if(L==="bilinear")ue=await a.TensorOpRegistry.bilinear_interpolate_4d;else if(L==="bicubic")ue=await a.TensorOpRegistry.bicubic_interpolate_4d;else throw new Error(`Unsupported mode: ${L}`);let ke=new i("int64",new BigInt64Array(ee.map(BigInt)),[ee.length]);return await ue({x:H,s:ke})}async function d(H,R){return await(await a.TensorOpRegistry.matmul)({a:H,b:R})}async function g(H,R){return await(await a.TensorOpRegistry.rfft)({x:H,a:R})}async function h(H,R){let L=await a.TensorOpRegistry.top_k;return R==null?R=H.dims.at(-1):R=Math.min(R,H.dims.at(-1)),await L({x:H,k:new i("int64",[BigInt(R)],[1])})}let x=H=>new i("int64",H,[H.length]);async function F(H,R,L,ee,ue){return await(await a.TensorOpRegistry.slice)({x:H,s:x(R),e:x(L),a:x(ee),t:x(ue??new Array(ee.length).fill(1))})}function v(H,R){let L=H.data,ee=R.data,ue=[H.dims[0],H.dims[2]],ke=new L.constructor(ue[0]*ue[1]),[Ie,Le,rt]=H.dims,we=0;for(let A=0;A<Ie;++A){let le=A*rt*Le;for(let ge=0;ge<rt;++ge){let be=0,Ae=0,ve=A*Le,pe=le+ge;for(let fe=0;fe<Le;++fe){let Te=Number(ee[ve+fe]);Ae+=Te,be+=L[pe+fe*rt]*Te}let Pe=be/Ae;ke[we++]=Pe}}return new i(H.type,ke,ue)}function b(H,R,{eps:L=1e-5}={}){if(H.dims.length!==2)throw new Error("`layer_norm` currently only supports 2D input.");let[ee,ue]=H.dims;if(R.length!==1&&R[0]!==ue)throw new Error("`normalized_shape` must be a 1D array with shape `[input.dims[1]]`.");let[ke,Ie]=D(H,1,0,!0),Le=ke.data,rt=Ie.data,we=H.data,A=new we.constructor(we.length);for(let le=0;le<ee;++le){let ge=le*ue;for(let be=0;be<ue;++be){let Ae=ge+be;A[Ae]=(we[Ae]-rt[le])/(Le[le]+L)}}return new i(H.type,A,H.dims)}function C(H,R){return H=H.slice(),R===null?H=H.filter(L=>L!==1):typeof R=="number"?H[R]===1&&H.splice(R,1):Array.isArray(R)&&(H=H.filter((L,ee)=>L!==1||!R.includes(ee))),H}function y(H,R){return R=P(R,H.length+1),H=H.slice(),H.splice(R,0,1),H}function P(H,R,L=null,ee=!0){if(H<-R||H>=R){if(ee)throw new Error(`IndexError: index ${H} is out of bounds for dimension${L===null?"":" "+L} with size ${R}`);return H<-R?0:R}return H<0&&(H=(H%R+R)%R),H}function I(H,R=0){R=P(R,H[0].dims.length);let L=H[0].dims.slice();L[R]=H.reduce((Ie,Le)=>Ie+Le.dims[R],0);let ee=L.reduce((Ie,Le)=>Ie*Le,1),ue=new H[0].data.constructor(ee),ke=H[0].type;if(R===0){let Ie=0;for(let Le of H){let rt=Le.data;ue.set(rt,Ie),Ie+=rt.length}}else{let Ie=0;for(let Le=0;Le<H.length;++Le){let{data:rt,dims:we}=H[Le];for(let A=0;A<rt.length;++A){let le=0;for(let ge=we.length-1,be=A,Ae=1;ge>=0;--ge){let ve=we[ge],pe=be%ve;ge===R&&(pe+=Ie),le+=pe*Ae,Ae*=L[ge],be=Math.floor(be/ve)}ue[le]=rt[A]}Ie+=we[R]}}return new i(ke,ue,L)}function f(H,R=0){return I(H.map(L=>L.unsqueeze(R)),R)}function E(H,R,L=null,ee=!1,ue=null){let ke=R.data,Ie=R.dims;L=P(L,Ie.length);let Le=Ie.slice();Le[L]=1;let rt=new ke.constructor(ke.length/Ie[L]);ue!==null&&rt.fill(ue);for(let we=0;we<ke.length;++we){let A=0;for(let le=Ie.length-1,ge=we,be=1;le>=0;--le){let Ae=Ie[le];if(le!==L){let ve=ge%Ae;A+=ve*be,be*=Le[le]}ge=Math.floor(ge/Ae)}rt[A]=H(rt[A],ke[we],we,A)}return ee||Le.splice(L,1),[R.type,rt,Le]}function D(H,R=null,L=1,ee=!1){let ue=H.data,ke=H.dims;if(R===null){let be=ue.reduce((Pe,fe)=>Pe+fe,0)/ue.length,Ae=Math.sqrt(ue.reduce((Pe,fe)=>Pe+(fe-be)**2,0)/(ue.length-L)),ve=new i(H.type,[be],[]);return[new i(H.type,[Ae],[]),ve]}R=P(R,ke.length);let Ie=O(H,R,ee),Le=Ie.data,[rt,we,A]=E((ge,be,Ae,ve)=>ge+(be-Le[ve])**2,H,R,ee);for(let ge=0;ge<we.length;++ge)we[ge]=Math.sqrt(we[ge]/(ke[R]-L));return[new i(rt,we,A),Ie]}function O(H,R=null,L=!1){let ee=H.dims,ue=H.data;if(R===null){let rt=ue.reduce((we,A)=>we+A,0);return new i(H.type,[rt/ue.length],[])}R=P(R,ee.length);let[ke,Ie,Le]=E((rt,we)=>rt+we,H,R,L);if(ee[R]!==1)for(let rt=0;rt<Ie.length;++rt)Ie[rt]/=ee[R];return new i(ke,Ie,Le)}function U(H){let R=new Array(H.length);for(let L=H.length-1,ee=1;L>=0;--L)R[L]=ee,ee*=H[L];return R}function W(H,R,L,ee){let ue=H.reduce((ke,Ie)=>ke*Ie,1);return new i(L,new ee(ue).fill(R),H)}function z(H,R){let L,ee;if(typeof R=="number")L="float32",ee=Float32Array;else if(typeof R=="bigint")L="int64",ee=BigInt64Array;else if(typeof R=="boolean")L="bool",ee=Uint8Array;else throw new Error(`Unsupported data type: ${typeof R}`);return W(H,R,L,ee)}function X(H,R){return z(H.dims,R)}function J(H){return W(H,1n,"int64",BigInt64Array)}function q(H){return J(H.dims)}function re(H){return W(H,0n,"int64",BigInt64Array)}function oe(H){return re(H.dims)}function ne(H){let R=H.reduce((L,ee)=>L*ee,1);return new i("float32",Float32Array.from({length:R},()=>Math.random()),H)}function ye(H){let R=H.reduce((ee,ue)=>ee*ue,1);function L(){let ee=1-Math.random(),ue=1-Math.random();return Math.sqrt(-2*Math.log(ee))*Math.cos(2*Math.PI*ue)}return new i("float32",Float32Array.from({length:R},()=>L()),H)}function Y(H,R){if(H.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(H.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(R))throw new Error("The precision must be either 'binary' or 'ubinary'");let L=R==="binary",ee=L?"int8":"uint8",ue=L?Int8Array:Uint8Array,ke=H.data,Ie=new ue(ke.length/8);for(let Le=0;Le<ke.length;++Le){let rt=ke[Le]>0?1:0,we=Math.floor(Le/8),A=Le%8;Ie[we]|=rt<<7-A,L&&A===0&&(Ie[we]-=128)}return new i(ee,Ie,[H.dims[0],H.dims[1]/8])}}),"./src/utils/video.js":((e,r,t)=>{t.r(r),t.d(r,{RawVideo:()=>n,RawVideoFrame:()=>a,load_video:()=>i});var s=t("./src/utils/image.js"),o=t("./src/env.js");class a{constructor(c,_){this.image=c,this.timestamp=_}}class n{constructor(c,_){c.length>0&&c[0]instanceof s.RawImage&&(c=c.map((u,d)=>new a(u,(d+1)/(c.length+1)*_))),this.frames=c,this.duration=_}get width(){return this.frames[0].image.width}get height(){return this.frames[0].image.height}get fps(){return this.frames.length/this.duration}}async function i(l,{num_frames:c=null,fps:_=null}={}){if(!o.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(c==null&&_==null)throw new Error("Either num_frames or fps must be provided.");let u=[],d=document.createElement("video");if(d.crossOrigin="anonymous",d.muted=!0,typeof l=="string")d.src=l;else if(l instanceof Blob)d.src=URL.createObjectURL(l);else if(l instanceof HTMLVideoElement)d.src=l.src;else throw new Error("Invalid URL or video element provided.");if(await new Promise(C=>d.onloadedmetadata=C),d.seekable.start(0)===d.seekable.end(0)){let y=await(await fetch(d.src)).blob();d.src=URL.createObjectURL(y),await new Promise(P=>d.onloadedmetadata=P)}let g=d.duration,h,x;c!=null?(h=c,x=c===1?0:g/(c-1)):(x=1/_,h=Math.floor(g/x));let F=[];for(let C=0;C<h;++C)F.push(c===1?g/2:C*x);let v=document.createElement("canvas");v.width=d.videoWidth,v.height=d.videoHeight;let b=v.getContext("2d",{willReadFrequently:!0});for(let C of F){d.currentTime=C,await new Promise(f=>{d.onseeked=f}),b.drawImage(d,0,0,v.width,v.height);let y=b.getImageData(0,0,v.width,v.height),P=new s.RawImage(y.data,v.width,v.height,4),I=new a(P,C);u.push(I)}return d.remove(),new n(u,g)}})},A0={};function Vt(e){var r=A0[e];if(r!==void 0)return r.exports;var t=A0[e]={exports:{}};return ME[e](t,t.exports,Vt),t.exports}(()=>{var e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,r;Vt.t=function(t,s){if(s&1&&(t=this(t)),s&8||typeof t=="object"&&t&&(s&4&&t.__esModule||s&16&&typeof t.then=="function"))return t;var o=Object.create(null);Vt.r(o);var a={};r=r||[null,e({}),e([]),e(e)];for(var n=s&2&&t;typeof n=="object"&&!~r.indexOf(n);n=e(n))Object.getOwnPropertyNames(n).forEach(i=>a[i]=()=>t[i]);return a.default=()=>t,Vt.d(o,a),o}})();Vt.d=(e,r)=>{for(var t in r)Vt.o(r,t)&&!Vt.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})};Vt.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);Vt.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var p={};(()=>{Vt.r(p),Vt.d(p,{ASTFeatureExtractor:()=>u.ASTFeatureExtractor,ASTForAudioClassification:()=>t.ASTForAudioClassification,ASTModel:()=>t.ASTModel,ASTPreTrainedModel:()=>t.ASTPreTrainedModel,AlbertForMaskedLM:()=>t.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>t.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>t.AlbertForSequenceClassification,AlbertModel:()=>t.AlbertModel,AlbertPreTrainedModel:()=>t.AlbertPreTrainedModel,AlbertTokenizer:()=>s.AlbertTokenizer,ArceeForCausalLM:()=>t.ArceeForCausalLM,ArceeModel:()=>t.ArceeModel,ArceePreTrainedModel:()=>t.ArceePreTrainedModel,AudioClassificationPipeline:()=>r.AudioClassificationPipeline,AutoConfig:()=>o.AutoConfig,AutoFeatureExtractor:()=>d.AutoFeatureExtractor,AutoImageProcessor:()=>x.AutoImageProcessor,AutoModel:()=>t.AutoModel,AutoModelForAudioClassification:()=>t.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>t.AutoModelForAudioFrameClassification,AutoModelForAudioTextToText:()=>t.AutoModelForAudioTextToText,AutoModelForCTC:()=>t.AutoModelForCTC,AutoModelForCausalLM:()=>t.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>t.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>t.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>t.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>t.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>t.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>t.AutoModelForImageSegmentation,AutoModelForImageTextToText:()=>t.AutoModelForImageTextToText,AutoModelForImageToImage:()=>t.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>t.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>t.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>t.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>t.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>t.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>t.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>t.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>t.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>t.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>t.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>t.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>t.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>t.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>t.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>t.AutoModelForVision2Seq,AutoModelForXVector:()=>t.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>t.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>b.AutoProcessor,AutoTokenizer:()=>s.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>r.AutomaticSpeechRecognitionPipeline,BackgroundRemovalPipeline:()=>r.BackgroundRemovalPipeline,BartForConditionalGeneration:()=>t.BartForConditionalGeneration,BartForSequenceClassification:()=>t.BartForSequenceClassification,BartModel:()=>t.BartModel,BartPretrainedModel:()=>t.BartPretrainedModel,BartTokenizer:()=>s.BartTokenizer,BaseModelOutput:()=>t.BaseModelOutput,BaseStreamer:()=>C.BaseStreamer,BeitFeatureExtractor:()=>h.BeitFeatureExtractor,BeitForImageClassification:()=>t.BeitForImageClassification,BeitModel:()=>t.BeitModel,BeitPreTrainedModel:()=>t.BeitPreTrainedModel,BertForMaskedLM:()=>t.BertForMaskedLM,BertForQuestionAnswering:()=>t.BertForQuestionAnswering,BertForSequenceClassification:()=>t.BertForSequenceClassification,BertForTokenClassification:()=>t.BertForTokenClassification,BertModel:()=>t.BertModel,BertPreTrainedModel:()=>t.BertPreTrainedModel,BertTokenizer:()=>s.BertTokenizer,BitImageProcessor:()=>h.BitImageProcessor,BlenderbotForConditionalGeneration:()=>t.BlenderbotForConditionalGeneration,BlenderbotModel:()=>t.BlenderbotModel,BlenderbotPreTrainedModel:()=>t.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>t.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>t.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>t.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>s.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>s.BlenderbotTokenizer,BloomForCausalLM:()=>t.BloomForCausalLM,BloomModel:()=>t.BloomModel,BloomPreTrainedModel:()=>t.BloomPreTrainedModel,BloomTokenizer:()=>s.BloomTokenizer,CLIPFeatureExtractor:()=>h.CLIPFeatureExtractor,CLIPImageProcessor:()=>h.CLIPImageProcessor,CLIPModel:()=>t.CLIPModel,CLIPPreTrainedModel:()=>t.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>t.CLIPSegForImageSegmentation,CLIPSegModel:()=>t.CLIPSegModel,CLIPSegPreTrainedModel:()=>t.CLIPSegPreTrainedModel,CLIPTextModel:()=>t.CLIPTextModel,CLIPTextModelWithProjection:()=>t.CLIPTextModelWithProjection,CLIPTokenizer:()=>s.CLIPTokenizer,CLIPVisionModel:()=>t.CLIPVisionModel,CLIPVisionModelWithProjection:()=>t.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>t.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>t.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>t.CamembertForSequenceClassification,CamembertForTokenClassification:()=>t.CamembertForTokenClassification,CamembertModel:()=>t.CamembertModel,CamembertPreTrainedModel:()=>t.CamembertPreTrainedModel,CamembertTokenizer:()=>s.CamembertTokenizer,CausalLMOutput:()=>t.CausalLMOutput,CausalLMOutputWithPast:()=>t.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>h.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>t.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>t.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>t.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>u.ClapFeatureExtractor,ClapModel:()=>t.ClapModel,ClapPreTrainedModel:()=>t.ClapPreTrainedModel,ClapTextModelWithProjection:()=>t.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>P.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>t.CodeGenForCausalLM,CodeGenModel:()=>t.CodeGenModel,CodeGenPreTrainedModel:()=>t.CodeGenPreTrainedModel,CodeGenTokenizer:()=>s.CodeGenTokenizer,CodeLlamaTokenizer:()=>s.CodeLlamaTokenizer,CohereForCausalLM:()=>t.CohereForCausalLM,CohereModel:()=>t.CohereModel,CoherePreTrainedModel:()=>t.CoherePreTrainedModel,CohereTokenizer:()=>s.CohereTokenizer,ConvBertForMaskedLM:()=>t.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>t.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>t.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>t.ConvBertForTokenClassification,ConvBertModel:()=>t.ConvBertModel,ConvBertPreTrainedModel:()=>t.ConvBertPreTrainedModel,ConvBertTokenizer:()=>s.ConvBertTokenizer,ConvNextFeatureExtractor:()=>h.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>t.ConvNextForImageClassification,ConvNextImageProcessor:()=>h.ConvNextImageProcessor,ConvNextModel:()=>t.ConvNextModel,ConvNextPreTrainedModel:()=>t.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>t.ConvNextV2ForImageClassification,ConvNextV2Model:()=>t.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>t.ConvNextV2PreTrainedModel,DFineForObjectDetection:()=>t.DFineForObjectDetection,DFineModel:()=>t.DFineModel,DFinePreTrainedModel:()=>t.DFinePreTrainedModel,DINOv3ConvNextModel:()=>t.DINOv3ConvNextModel,DINOv3ConvNextPreTrainedModel:()=>t.DINOv3ConvNextPreTrainedModel,DINOv3ViTImageProcessor:()=>h.DINOv3ViTImageProcessor,DINOv3ViTModel:()=>t.DINOv3ViTModel,DINOv3ViTPreTrainedModel:()=>t.DINOv3ViTPreTrainedModel,DPTFeatureExtractor:()=>h.DPTFeatureExtractor,DPTForDepthEstimation:()=>t.DPTForDepthEstimation,DPTImageProcessor:()=>h.DPTImageProcessor,DPTModel:()=>t.DPTModel,DPTPreTrainedModel:()=>t.DPTPreTrainedModel,DacDecoderModel:()=>t.DacDecoderModel,DacDecoderOutput:()=>t.DacDecoderOutput,DacEncoderModel:()=>t.DacEncoderModel,DacEncoderOutput:()=>t.DacEncoderOutput,DacFeatureExtractor:()=>u.DacFeatureExtractor,DacModel:()=>t.DacModel,DacPreTrainedModel:()=>t.DacPreTrainedModel,DataTypeMap:()=>l.DataTypeMap,DebertaForMaskedLM:()=>t.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>t.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>t.DebertaForSequenceClassification,DebertaForTokenClassification:()=>t.DebertaForTokenClassification,DebertaModel:()=>t.DebertaModel,DebertaPreTrainedModel:()=>t.DebertaPreTrainedModel,DebertaTokenizer:()=>s.DebertaTokenizer,DebertaV2ForMaskedLM:()=>t.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>t.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>t.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>t.DebertaV2ForTokenClassification,DebertaV2Model:()=>t.DebertaV2Model,DebertaV2PreTrainedModel:()=>t.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>s.DebertaV2Tokenizer,DecisionTransformerModel:()=>t.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>t.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>h.DeiTFeatureExtractor,DeiTForImageClassification:()=>t.DeiTForImageClassification,DeiTImageProcessor:()=>h.DeiTImageProcessor,DeiTModel:()=>t.DeiTModel,DeiTPreTrainedModel:()=>t.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>t.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>t.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>r.DepthEstimationPipeline,DepthProForDepthEstimation:()=>t.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>t.DepthProPreTrainedModel,DetrFeatureExtractor:()=>h.DetrFeatureExtractor,DetrForObjectDetection:()=>t.DetrForObjectDetection,DetrForSegmentation:()=>t.DetrForSegmentation,DetrImageProcessor:()=>h.DetrImageProcessor,DetrModel:()=>t.DetrModel,DetrObjectDetectionOutput:()=>t.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>t.DetrPreTrainedModel,DetrSegmentationOutput:()=>t.DetrSegmentationOutput,Dinov2ForImageClassification:()=>t.Dinov2ForImageClassification,Dinov2Model:()=>t.Dinov2Model,Dinov2PreTrainedModel:()=>t.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>t.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>t.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>t.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>t.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>t.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>t.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>t.DistilBertForTokenClassification,DistilBertModel:()=>t.DistilBertModel,DistilBertPreTrainedModel:()=>t.DistilBertPreTrainedModel,DistilBertTokenizer:()=>s.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>r.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>h.DonutFeatureExtractor,DonutImageProcessor:()=>h.DonutImageProcessor,DonutSwinModel:()=>t.DonutSwinModel,DonutSwinPreTrainedModel:()=>t.DonutSwinPreTrainedModel,EdgeTamModel:()=>t.EdgeTamModel,EfficientNetForImageClassification:()=>t.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>h.EfficientNetImageProcessor,EfficientNetModel:()=>t.EfficientNetModel,EfficientNetPreTrainedModel:()=>t.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>t.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>t.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>t.ElectraForSequenceClassification,ElectraForTokenClassification:()=>t.ElectraForTokenClassification,ElectraModel:()=>t.ElectraModel,ElectraPreTrainedModel:()=>t.ElectraPreTrainedModel,ElectraTokenizer:()=>s.ElectraTokenizer,EncodecFeatureExtractor:()=>u.EncodecFeatureExtractor,EosTokenCriteria:()=>y.EosTokenCriteria,Ernie4_5ForCausalLM:()=>t.Ernie4_5ForCausalLM,Ernie4_5Model:()=>t.Ernie4_5Model,Ernie4_5PreTrainedModel:()=>t.Ernie4_5PreTrainedModel,EsmForMaskedLM:()=>t.EsmForMaskedLM,EsmForSequenceClassification:()=>t.EsmForSequenceClassification,EsmForTokenClassification:()=>t.EsmForTokenClassification,EsmModel:()=>t.EsmModel,EsmPreTrainedModel:()=>t.EsmPreTrainedModel,EsmTokenizer:()=>s.EsmTokenizer,ExaoneForCausalLM:()=>t.ExaoneForCausalLM,ExaoneModel:()=>t.ExaoneModel,ExaonePreTrainedModel:()=>t.ExaonePreTrainedModel,FFT:()=>c.FFT,FalconForCausalLM:()=>t.FalconForCausalLM,FalconModel:()=>t.FalconModel,FalconPreTrainedModel:()=>t.FalconPreTrainedModel,FalconTokenizer:()=>s.FalconTokenizer,FastViTForImageClassification:()=>t.FastViTForImageClassification,FastViTModel:()=>t.FastViTModel,FastViTPreTrainedModel:()=>t.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>r.FeatureExtractionPipeline,FeatureExtractor:()=>_.FeatureExtractor,FillMaskPipeline:()=>r.FillMaskPipeline,Florence2ForConditionalGeneration:()=>t.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>t.Florence2PreTrainedModel,Florence2Processor:()=>v.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>P.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>P.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>h.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>t.GLPNForDepthEstimation,GLPNModel:()=>t.GLPNModel,GLPNPreTrainedModel:()=>t.GLPNPreTrainedModel,GPT2LMHeadModel:()=>t.GPT2LMHeadModel,GPT2Model:()=>t.GPT2Model,GPT2PreTrainedModel:()=>t.GPT2PreTrainedModel,GPT2Tokenizer:()=>s.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>t.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>t.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>t.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>t.GPTJForCausalLM,GPTJModel:()=>t.GPTJModel,GPTJPreTrainedModel:()=>t.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>t.GPTNeoForCausalLM,GPTNeoModel:()=>t.GPTNeoModel,GPTNeoPreTrainedModel:()=>t.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>t.GPTNeoXForCausalLM,GPTNeoXModel:()=>t.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>t.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>s.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>t.Gemma2ForCausalLM,Gemma2Model:()=>t.Gemma2Model,Gemma2PreTrainedModel:()=>t.Gemma2PreTrainedModel,Gemma3ForCausalLM:()=>t.Gemma3ForCausalLM,Gemma3Model:()=>t.Gemma3Model,Gemma3PreTrainedModel:()=>t.Gemma3PreTrainedModel,Gemma3nAudioFeatureExtractor:()=>u.Gemma3nAudioFeatureExtractor,Gemma3nForConditionalGeneration:()=>t.Gemma3nForConditionalGeneration,Gemma3nPreTrainedModel:()=>t.Gemma3nPreTrainedModel,Gemma3nProcessor:()=>v.Gemma3nProcessor,GemmaForCausalLM:()=>t.GemmaForCausalLM,GemmaModel:()=>t.GemmaModel,GemmaPreTrainedModel:()=>t.GemmaPreTrainedModel,GemmaTokenizer:()=>s.GemmaTokenizer,GlmForCausalLM:()=>t.GlmForCausalLM,GlmModel:()=>t.GlmModel,GlmPreTrainedModel:()=>t.GlmPreTrainedModel,GraniteForCausalLM:()=>t.GraniteForCausalLM,GraniteModel:()=>t.GraniteModel,GraniteMoeHybridForCausalLM:()=>t.GraniteMoeHybridForCausalLM,GraniteMoeHybridModel:()=>t.GraniteMoeHybridModel,GraniteMoeHybridPreTrainedModel:()=>t.GraniteMoeHybridPreTrainedModel,GranitePreTrainedModel:()=>t.GranitePreTrainedModel,Grok1Tokenizer:()=>s.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>t.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>h.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>t.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>v.GroundingDinoProcessor,GroupViTModel:()=>t.GroupViTModel,GroupViTPreTrainedModel:()=>t.GroupViTPreTrainedModel,HeliumForCausalLM:()=>t.HeliumForCausalLM,HeliumModel:()=>t.HeliumModel,HeliumPreTrainedModel:()=>t.HeliumPreTrainedModel,HerbertTokenizer:()=>s.HerbertTokenizer,HieraForImageClassification:()=>t.HieraForImageClassification,HieraModel:()=>t.HieraModel,HieraPreTrainedModel:()=>t.HieraPreTrainedModel,HubertForCTC:()=>t.HubertForCTC,HubertForSequenceClassification:()=>t.HubertForSequenceClassification,HubertModel:()=>t.HubertModel,HubertPreTrainedModel:()=>t.HubertPreTrainedModel,IJepaForImageClassification:()=>t.IJepaForImageClassification,IJepaModel:()=>t.IJepaModel,IJepaPreTrainedModel:()=>t.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>t.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>h.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>t.Idefics3PreTrainedModel,Idefics3Processor:()=>v.Idefics3Processor,ImageClassificationPipeline:()=>r.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>r.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>u.ImageFeatureExtractor,ImageMattingOutput:()=>t.ImageMattingOutput,ImageProcessor:()=>g.ImageProcessor,ImageSegmentationPipeline:()=>r.ImageSegmentationPipeline,ImageToImagePipeline:()=>r.ImageToImagePipeline,ImageToTextPipeline:()=>r.ImageToTextPipeline,InterruptableStoppingCriteria:()=>y.InterruptableStoppingCriteria,JAISLMHeadModel:()=>t.JAISLMHeadModel,JAISModel:()=>t.JAISModel,JAISPreTrainedModel:()=>t.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>h.JinaCLIPImageProcessor,JinaCLIPModel:()=>t.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>t.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>v.JinaCLIPProcessor,JinaCLIPTextModel:()=>t.JinaCLIPTextModel,JinaCLIPVisionModel:()=>t.JinaCLIPVisionModel,Lfm2ForCausalLM:()=>t.Lfm2ForCausalLM,Lfm2Model:()=>t.Lfm2Model,Lfm2PreTrainedModel:()=>t.Lfm2PreTrainedModel,LiteWhisperForConditionalGeneration:()=>t.LiteWhisperForConditionalGeneration,Llama4ForCausalLM:()=>t.Llama4ForCausalLM,Llama4PreTrainedModel:()=>t.Llama4PreTrainedModel,LlamaForCausalLM:()=>t.LlamaForCausalLM,LlamaModel:()=>t.LlamaModel,LlamaPreTrainedModel:()=>t.LlamaPreTrainedModel,LlamaTokenizer:()=>s.LlamaTokenizer,LlavaForConditionalGeneration:()=>t.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>t.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>h.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>t.LlavaPreTrainedModel,LlavaProcessor:()=>v.LlavaProcessor,LlavaQwen2ForCausalLM:()=>t.LlavaQwen2ForCausalLM,LogitsProcessor:()=>P.LogitsProcessor,LogitsProcessorList:()=>P.LogitsProcessorList,LogitsWarper:()=>P.LogitsWarper,LongT5ForConditionalGeneration:()=>t.LongT5ForConditionalGeneration,LongT5Model:()=>t.LongT5Model,LongT5PreTrainedModel:()=>t.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>t.M2M100ForConditionalGeneration,M2M100Model:()=>t.M2M100Model,M2M100PreTrainedModel:()=>t.M2M100PreTrainedModel,M2M100Tokenizer:()=>s.M2M100Tokenizer,MBart50Tokenizer:()=>s.MBart50Tokenizer,MBartForCausalLM:()=>t.MBartForCausalLM,MBartForConditionalGeneration:()=>t.MBartForConditionalGeneration,MBartForSequenceClassification:()=>t.MBartForSequenceClassification,MBartModel:()=>t.MBartModel,MBartPreTrainedModel:()=>t.MBartPreTrainedModel,MBartTokenizer:()=>s.MBartTokenizer,MPNetForMaskedLM:()=>t.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>t.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>t.MPNetForSequenceClassification,MPNetForTokenClassification:()=>t.MPNetForTokenClassification,MPNetModel:()=>t.MPNetModel,MPNetPreTrainedModel:()=>t.MPNetPreTrainedModel,MPNetTokenizer:()=>s.MPNetTokenizer,MT5ForConditionalGeneration:()=>t.MT5ForConditionalGeneration,MT5Model:()=>t.MT5Model,MT5PreTrainedModel:()=>t.MT5PreTrainedModel,MarianMTModel:()=>t.MarianMTModel,MarianModel:()=>t.MarianModel,MarianPreTrainedModel:()=>t.MarianPreTrainedModel,MarianTokenizer:()=>s.MarianTokenizer,Mask2FormerImageProcessor:()=>h.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>h.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>t.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>h.MaskFormerImageProcessor,MaskFormerModel:()=>t.MaskFormerModel,MaskFormerPreTrainedModel:()=>t.MaskFormerPreTrainedModel,MaskedLMOutput:()=>t.MaskedLMOutput,MaxLengthCriteria:()=>y.MaxLengthCriteria,Metric3DForDepthEstimation:()=>t.Metric3DForDepthEstimation,Metric3DPreTrainedModel:()=>t.Metric3DPreTrainedModel,Metric3Dv2ForDepthEstimation:()=>t.Metric3Dv2ForDepthEstimation,Metric3Dv2PreTrainedModel:()=>t.Metric3Dv2PreTrainedModel,MgpstrForSceneTextRecognition:()=>t.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>t.MgpstrModelOutput,MgpstrPreTrainedModel:()=>t.MgpstrPreTrainedModel,MgpstrProcessor:()=>v.MgpstrProcessor,MgpstrTokenizer:()=>s.MgpstrTokenizer,MimiDecoderModel:()=>t.MimiDecoderModel,MimiDecoderOutput:()=>t.MimiDecoderOutput,MimiEncoderModel:()=>t.MimiEncoderModel,MimiEncoderOutput:()=>t.MimiEncoderOutput,MimiModel:()=>t.MimiModel,MimiPreTrainedModel:()=>t.MimiPreTrainedModel,MinLengthLogitsProcessor:()=>P.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>P.MinNewTokensLengthLogitsProcessor,Ministral3ForCausalLM:()=>t.Ministral3ForCausalLM,Ministral3Model:()=>t.Ministral3Model,Ministral3PreTrainedModel:()=>t.Ministral3PreTrainedModel,MinistralForCausalLM:()=>t.MinistralForCausalLM,MinistralModel:()=>t.MinistralModel,MinistralPreTrainedModel:()=>t.MinistralPreTrainedModel,Mistral3ForConditionalGeneration:()=>t.Mistral3ForConditionalGeneration,MistralForCausalLM:()=>t.MistralForCausalLM,MistralModel:()=>t.MistralModel,MistralPreTrainedModel:()=>t.MistralPreTrainedModel,MobileBertForMaskedLM:()=>t.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>t.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>t.MobileBertForSequenceClassification,MobileBertModel:()=>t.MobileBertModel,MobileBertPreTrainedModel:()=>t.MobileBertPreTrainedModel,MobileBertTokenizer:()=>s.MobileBertTokenizer,MobileLLMForCausalLM:()=>t.MobileLLMForCausalLM,MobileLLMModel:()=>t.MobileLLMModel,MobileLLMPreTrainedModel:()=>t.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>h.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>t.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>t.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>h.MobileNetV1ImageProcessor,MobileNetV1Model:()=>t.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>t.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>h.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>t.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>t.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>h.MobileNetV2ImageProcessor,MobileNetV2Model:()=>t.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>t.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>h.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>t.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>t.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>h.MobileNetV3ImageProcessor,MobileNetV3Model:()=>t.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>t.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>h.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>t.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>t.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>h.MobileNetV4ImageProcessor,MobileNetV4Model:()=>t.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>t.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>h.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>t.MobileViTForImageClassification,MobileViTImageProcessor:()=>h.MobileViTImageProcessor,MobileViTModel:()=>t.MobileViTModel,MobileViTPreTrainedModel:()=>t.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>t.MobileViTV2ForImageClassification,MobileViTV2Model:()=>t.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>t.MobileViTV2PreTrainedModel,ModelOutput:()=>t.ModelOutput,ModernBertDecoderForCausalLM:()=>t.ModernBertDecoderForCausalLM,ModernBertDecoderModel:()=>t.ModernBertDecoderModel,ModernBertDecoderPreTrainedModel:()=>t.ModernBertDecoderPreTrainedModel,ModernBertForMaskedLM:()=>t.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>t.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>t.ModernBertForTokenClassification,ModernBertModel:()=>t.ModernBertModel,ModernBertPreTrainedModel:()=>t.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>t.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>u.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>t.MoonshineForConditionalGeneration,MoonshineModel:()=>t.MoonshineModel,MoonshinePreTrainedModel:()=>t.MoonshinePreTrainedModel,MoonshineProcessor:()=>v.MoonshineProcessor,MptForCausalLM:()=>t.MptForCausalLM,MptModel:()=>t.MptModel,MptPreTrainedModel:()=>t.MptPreTrainedModel,MultiModalityCausalLM:()=>t.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>t.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>t.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>t.MusicgenForConditionalGeneration,MusicgenModel:()=>t.MusicgenModel,MusicgenPreTrainedModel:()=>t.MusicgenPreTrainedModel,NanoChatForCausalLM:()=>t.NanoChatForCausalLM,NanoChatModel:()=>t.NanoChatModel,NanoChatPreTrainedModel:()=>t.NanoChatPreTrainedModel,NeoBertForMaskedLM:()=>t.NeoBertForMaskedLM,NeoBertForQuestionAnswering:()=>t.NeoBertForQuestionAnswering,NeoBertForSequenceClassification:()=>t.NeoBertForSequenceClassification,NeoBertForTokenClassification:()=>t.NeoBertForTokenClassification,NeoBertModel:()=>t.NeoBertModel,NeoBertPreTrainedModel:()=>t.NeoBertPreTrainedModel,NllbTokenizer:()=>s.NllbTokenizer,NoBadWordsLogitsProcessor:()=>P.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>P.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>t.NomicBertModel,NomicBertPreTrainedModel:()=>t.NomicBertPreTrainedModel,NougatImageProcessor:()=>h.NougatImageProcessor,NougatTokenizer:()=>s.NougatTokenizer,OPTForCausalLM:()=>t.OPTForCausalLM,OPTModel:()=>t.OPTModel,OPTPreTrainedModel:()=>t.OPTPreTrainedModel,ObjectDetectionPipeline:()=>r.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>t.Olmo2ForCausalLM,Olmo2Model:()=>t.Olmo2Model,Olmo2PreTrainedModel:()=>t.Olmo2PreTrainedModel,OlmoForCausalLM:()=>t.OlmoForCausalLM,OlmoModel:()=>t.OlmoModel,OlmoPreTrainedModel:()=>t.OlmoPreTrainedModel,OpenELMForCausalLM:()=>t.OpenELMForCausalLM,OpenELMModel:()=>t.OpenELMModel,OpenELMPreTrainedModel:()=>t.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>h.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>t.OwlViTForObjectDetection,OwlViTImageProcessor:()=>h.OwlViTImageProcessor,OwlViTModel:()=>t.OwlViTModel,OwlViTPreTrainedModel:()=>t.OwlViTPreTrainedModel,OwlViTProcessor:()=>v.OwlViTProcessor,Owlv2ForObjectDetection:()=>t.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>h.Owlv2ImageProcessor,Owlv2Model:()=>t.Owlv2Model,Owlv2PreTrainedModel:()=>t.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>t.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>t.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>v.PaliGemmaProcessor,ParakeetFeatureExtractor:()=>u.ParakeetFeatureExtractor,ParakeetForCTC:()=>t.ParakeetForCTC,ParakeetPreTrainedModel:()=>t.ParakeetPreTrainedModel,PatchTSMixerForPrediction:()=>t.PatchTSMixerForPrediction,PatchTSMixerModel:()=>t.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>t.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>t.PatchTSTForPrediction,PatchTSTModel:()=>t.PatchTSTModel,PatchTSTPreTrainedModel:()=>t.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>t.Phi3ForCausalLM,Phi3Model:()=>t.Phi3Model,Phi3PreTrainedModel:()=>t.Phi3PreTrainedModel,Phi3VForCausalLM:()=>t.Phi3VForCausalLM,Phi3VImageProcessor:()=>h.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>t.Phi3VPreTrainedModel,Phi3VProcessor:()=>v.Phi3VProcessor,PhiForCausalLM:()=>t.PhiForCausalLM,PhiModel:()=>t.PhiModel,PhiPreTrainedModel:()=>t.PhiPreTrainedModel,Pipeline:()=>r.Pipeline,PixtralImageProcessor:()=>h.PixtralImageProcessor,PixtralProcessor:()=>v.PixtralProcessor,PreTrainedModel:()=>t.PreTrainedModel,PreTrainedTokenizer:()=>s.PreTrainedTokenizer,PretrainedConfig:()=>o.PretrainedConfig,PretrainedMixin:()=>t.PretrainedMixin,Processor:()=>F.Processor,PvtForImageClassification:()=>t.PvtForImageClassification,PvtImageProcessor:()=>h.PvtImageProcessor,PvtModel:()=>t.PvtModel,PvtPreTrainedModel:()=>t.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>u.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>t.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>t.PyAnnoteModel,PyAnnotePreTrainedModel:()=>t.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>v.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>t.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>r.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>t.Qwen2ForCausalLM,Qwen2Model:()=>t.Qwen2Model,Qwen2PreTrainedModel:()=>t.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>s.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>t.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>h.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>t.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>v.Qwen2VLProcessor,Qwen3ForCausalLM:()=>t.Qwen3ForCausalLM,Qwen3Model:()=>t.Qwen3Model,Qwen3PreTrainedModel:()=>t.Qwen3PreTrainedModel,RFDetrForObjectDetection:()=>t.RFDetrForObjectDetection,RFDetrModel:()=>t.RFDetrModel,RFDetrObjectDetectionOutput:()=>t.RFDetrObjectDetectionOutput,RFDetrPreTrainedModel:()=>t.RFDetrPreTrainedModel,RTDetrForObjectDetection:()=>t.RTDetrForObjectDetection,RTDetrImageProcessor:()=>h.RTDetrImageProcessor,RTDetrModel:()=>t.RTDetrModel,RTDetrObjectDetectionOutput:()=>t.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>t.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>t.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>t.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>t.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>t.RTDetrV2PreTrainedModel,RawAudio:()=>a.RawAudio,RawImage:()=>n.RawImage,RawVideo:()=>i.RawVideo,RawVideoFrame:()=>i.RawVideoFrame,RepetitionPenaltyLogitsProcessor:()=>P.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>t.ResNetForImageClassification,ResNetModel:()=>t.ResNetModel,ResNetPreTrainedModel:()=>t.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>t.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>t.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>t.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>t.RoFormerForTokenClassification,RoFormerModel:()=>t.RoFormerModel,RoFormerPreTrainedModel:()=>t.RoFormerPreTrainedModel,RoFormerTokenizer:()=>s.RoFormerTokenizer,RobertaForMaskedLM:()=>t.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>t.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>t.RobertaForSequenceClassification,RobertaForTokenClassification:()=>t.RobertaForTokenClassification,RobertaModel:()=>t.RobertaModel,RobertaPreTrainedModel:()=>t.RobertaPreTrainedModel,RobertaTokenizer:()=>s.RobertaTokenizer,Sam2ImageProcessor:()=>h.Sam2ImageProcessor,Sam2ImageSegmentationOutput:()=>t.Sam2ImageSegmentationOutput,Sam2Model:()=>t.Sam2Model,Sam2PreTrainedModel:()=>t.Sam2PreTrainedModel,Sam2Processor:()=>v.Sam2Processor,Sam2VideoProcessor:()=>v.Sam2VideoProcessor,Sam3ImageProcessor:()=>h.Sam3ImageProcessor,Sam3TrackerModel:()=>t.Sam3TrackerModel,SamImageProcessor:()=>h.SamImageProcessor,SamImageSegmentationOutput:()=>t.SamImageSegmentationOutput,SamModel:()=>t.SamModel,SamPreTrainedModel:()=>t.SamPreTrainedModel,SamProcessor:()=>v.SamProcessor,SapiensForDepthEstimation:()=>t.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>t.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>t.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>t.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>h.SegformerFeatureExtractor,SegformerForImageClassification:()=>t.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>t.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>h.SegformerImageProcessor,SegformerModel:()=>t.SegformerModel,SegformerPreTrainedModel:()=>t.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>t.Seq2SeqLMOutput,SequenceClassifierOutput:()=>t.SequenceClassifierOutput,SiglipImageProcessor:()=>h.SiglipImageProcessor,SiglipModel:()=>t.SiglipModel,SiglipPreTrainedModel:()=>t.SiglipPreTrainedModel,SiglipTextModel:()=>t.SiglipTextModel,SiglipTokenizer:()=>s.SiglipTokenizer,SiglipVisionModel:()=>t.SiglipVisionModel,SmolLM3ForCausalLM:()=>t.SmolLM3ForCausalLM,SmolLM3Model:()=>t.SmolLM3Model,SmolLM3PreTrainedModel:()=>t.SmolLM3PreTrainedModel,SmolVLMForConditionalGeneration:()=>t.SmolVLMForConditionalGeneration,SmolVLMImageProcessor:()=>h.SmolVLMImageProcessor,SmolVLMProcessor:()=>v.SmolVLMProcessor,SnacDecoderModel:()=>t.SnacDecoderModel,SnacEncoderModel:()=>t.SnacEncoderModel,SnacFeatureExtractor:()=>u.SnacFeatureExtractor,SnacModel:()=>t.SnacModel,SnacPreTrainedModel:()=>t.SnacPreTrainedModel,SpeechT5FeatureExtractor:()=>u.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>t.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>t.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>t.SpeechT5HifiGan,SpeechT5Model:()=>t.SpeechT5Model,SpeechT5PreTrainedModel:()=>t.SpeechT5PreTrainedModel,SpeechT5Processor:()=>v.SpeechT5Processor,SpeechT5Tokenizer:()=>s.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>t.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>t.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>t.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>t.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>t.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>s.SqueezeBertTokenizer,StableLmForCausalLM:()=>t.StableLmForCausalLM,StableLmModel:()=>t.StableLmModel,StableLmPreTrainedModel:()=>t.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>t.Starcoder2ForCausalLM,Starcoder2Model:()=>t.Starcoder2Model,Starcoder2PreTrainedModel:()=>t.Starcoder2PreTrainedModel,StoppingCriteria:()=>y.StoppingCriteria,StoppingCriteriaList:()=>y.StoppingCriteriaList,StyleTextToSpeech2Model:()=>t.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>t.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>r.SummarizationPipeline,SupertonicForConditionalGeneration:()=>t.SupertonicForConditionalGeneration,SupertonicPreTrainedModel:()=>t.SupertonicPreTrainedModel,SuppressTokensAtBeginLogitsProcessor:()=>P.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>t.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>h.Swin2SRImageProcessor,Swin2SRModel:()=>t.Swin2SRModel,Swin2SRPreTrainedModel:()=>t.Swin2SRPreTrainedModel,SwinForImageClassification:()=>t.SwinForImageClassification,SwinForSemanticSegmentation:()=>t.SwinForSemanticSegmentation,SwinModel:()=>t.SwinModel,SwinPreTrainedModel:()=>t.SwinPreTrainedModel,T5ForConditionalGeneration:()=>t.T5ForConditionalGeneration,T5Model:()=>t.T5Model,T5PreTrainedModel:()=>t.T5PreTrainedModel,T5Tokenizer:()=>s.T5Tokenizer,TableTransformerForObjectDetection:()=>t.TableTransformerForObjectDetection,TableTransformerModel:()=>t.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>t.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>t.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>P.TemperatureLogitsWarper,Tensor:()=>l.Tensor,Text2TextGenerationPipeline:()=>r.Text2TextGenerationPipeline,TextClassificationPipeline:()=>r.TextClassificationPipeline,TextGenerationPipeline:()=>r.TextGenerationPipeline,TextStreamer:()=>C.TextStreamer,TextToAudioPipeline:()=>r.TextToAudioPipeline,TokenClassificationPipeline:()=>r.TokenClassificationPipeline,TokenClassifierOutput:()=>t.TokenClassifierOutput,TokenizerModel:()=>s.TokenizerModel,TopKLogitsWarper:()=>P.TopKLogitsWarper,TopPLogitsWarper:()=>P.TopPLogitsWarper,TrOCRForCausalLM:()=>t.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>t.TrOCRPreTrainedModel,TranslationPipeline:()=>r.TranslationPipeline,UltravoxModel:()=>t.UltravoxModel,UltravoxPreTrainedModel:()=>t.UltravoxPreTrainedModel,UltravoxProcessor:()=>v.UltravoxProcessor,UniSpeechForCTC:()=>t.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>t.UniSpeechForSequenceClassification,UniSpeechModel:()=>t.UniSpeechModel,UniSpeechPreTrainedModel:()=>t.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>t.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>t.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>t.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>t.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>t.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>v.VLChatProcessor,VLMImageProcessor:()=>h.VLMImageProcessor,VaultGemmaForCausalLM:()=>t.VaultGemmaForCausalLM,VaultGemmaModel:()=>t.VaultGemmaModel,VaultGemmaPreTrainedModel:()=>t.VaultGemmaPreTrainedModel,ViTFeatureExtractor:()=>h.ViTFeatureExtractor,ViTForImageClassification:()=>t.ViTForImageClassification,ViTImageProcessor:()=>h.ViTImageProcessor,ViTMAEModel:()=>t.ViTMAEModel,ViTMAEPreTrainedModel:()=>t.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>t.ViTMSNForImageClassification,ViTMSNModel:()=>t.ViTMSNModel,ViTMSNPreTrainedModel:()=>t.ViTMSNPreTrainedModel,ViTModel:()=>t.ViTModel,ViTPreTrainedModel:()=>t.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>t.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>t.VitMatteForImageMatting,VitMatteImageProcessor:()=>h.VitMatteImageProcessor,VitMattePreTrainedModel:()=>t.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>t.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>h.VitPoseImageProcessor,VitPosePreTrainedModel:()=>t.VitPosePreTrainedModel,VitsModel:()=>t.VitsModel,VitsModelOutput:()=>t.VitsModelOutput,VitsPreTrainedModel:()=>t.VitsPreTrainedModel,VitsTokenizer:()=>s.VitsTokenizer,VoxtralForConditionalGeneration:()=>t.VoxtralForConditionalGeneration,VoxtralProcessor:()=>v.VoxtralProcessor,Wav2Vec2BertForCTC:()=>t.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>t.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>t.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>t.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>s.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>u.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>t.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>t.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>t.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>t.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>t.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>v.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>v.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>t.WavLMForAudioFrameClassification,WavLMForCTC:()=>t.WavLMForCTC,WavLMForSequenceClassification:()=>t.WavLMForSequenceClassification,WavLMForXVector:()=>t.WavLMForXVector,WavLMModel:()=>t.WavLMModel,WavLMPreTrainedModel:()=>t.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>u.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>t.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>t.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>u.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>t.WhisperForConditionalGeneration,WhisperModel:()=>t.WhisperModel,WhisperPreTrainedModel:()=>t.WhisperPreTrainedModel,WhisperProcessor:()=>v.WhisperProcessor,WhisperTextStreamer:()=>C.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>P.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>s.WhisperTokenizer,XLMForQuestionAnswering:()=>t.XLMForQuestionAnswering,XLMForSequenceClassification:()=>t.XLMForSequenceClassification,XLMForTokenClassification:()=>t.XLMForTokenClassification,XLMModel:()=>t.XLMModel,XLMPreTrainedModel:()=>t.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>t.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>t.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>t.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>t.XLMRobertaForTokenClassification,XLMRobertaModel:()=>t.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>t.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>s.XLMRobertaTokenizer,XLMTokenizer:()=>s.XLMTokenizer,XLMWithLMHeadModel:()=>t.XLMWithLMHeadModel,XVectorOutput:()=>t.XVectorOutput,YolosFeatureExtractor:()=>h.YolosFeatureExtractor,YolosForObjectDetection:()=>t.YolosForObjectDetection,YolosImageProcessor:()=>h.YolosImageProcessor,YolosModel:()=>t.YolosModel,YolosObjectDetectionOutput:()=>t.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>t.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>r.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>r.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>r.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>r.ZeroShotObjectDetectionPipeline,bankers_round:()=>c.bankers_round,cat:()=>l.cat,cos_sim:()=>c.cos_sim,dot:()=>c.dot,dynamic_time_warping:()=>c.dynamic_time_warping,env:()=>e.env,full:()=>l.full,full_like:()=>l.full_like,getCacheShapes:()=>o.getCacheShapes,hamming:()=>a.hamming,hanning:()=>a.hanning,interpolate:()=>l.interpolate,interpolate_4d:()=>l.interpolate_4d,interpolate_data:()=>c.interpolate_data,is_chinese_char:()=>s.is_chinese_char,layer_norm:()=>l.layer_norm,load_image:()=>n.load_image,load_video:()=>i.load_video,log_softmax:()=>c.log_softmax,magnitude:()=>c.magnitude,matmul:()=>l.matmul,max:()=>c.max,mean:()=>l.mean,mean_pooling:()=>l.mean_pooling,medianFilter:()=>c.medianFilter,mel_filter_bank:()=>a.mel_filter_bank,min:()=>c.min,ones:()=>l.ones,ones_like:()=>l.ones_like,permute:()=>l.permute,permute_data:()=>c.permute_data,pipeline:()=>r.pipeline,quantize_embeddings:()=>l.quantize_embeddings,rand:()=>l.rand,randn:()=>l.randn,read_audio:()=>a.read_audio,rfft:()=>l.rfft,round:()=>c.round,slice:()=>l.slice,softmax:()=>c.softmax,spectrogram:()=>a.spectrogram,stack:()=>l.stack,std_mean:()=>l.std_mean,topk:()=>l.topk,window_function:()=>a.window_function,zeros:()=>l.zeros,zeros_like:()=>l.zeros_like});var e=Vt("./src/env.js"),r=Vt("./src/pipelines.js"),t=Vt("./src/models.js"),s=Vt("./src/tokenizers.js"),o=Vt("./src/configs.js"),a=Vt("./src/utils/audio.js"),n=Vt("./src/utils/image.js"),i=Vt("./src/utils/video.js"),l=Vt("./src/utils/tensor.js"),c=Vt("./src/utils/maths.js"),_=Vt("./src/base/feature_extraction_utils.js"),u=Vt("./src/models/feature_extractors.js"),d=Vt("./src/models/auto/feature_extraction_auto.js"),g=Vt("./src/base/image_processors_utils.js"),h=Vt("./src/models/image_processors.js"),x=Vt("./src/models/auto/image_processing_auto.js"),F=Vt("./src/base/processing_utils.js"),v=Vt("./src/models/processors.js"),b=Vt("./src/models/auto/processing_auto.js"),C=Vt("./src/generation/streamers.js"),y=Vt("./src/generation/stopping_criteria.js"),P=Vt("./src/generation/logits_process.js")})();var GS=p.ASTFeatureExtractor,KS=p.ASTForAudioClassification,HS=p.ASTModel,qS=p.ASTPreTrainedModel,QS=p.AlbertForMaskedLM,XS=p.AlbertForQuestionAnswering,JS=p.AlbertForSequenceClassification,YS=p.AlbertModel,ZS=p.AlbertPreTrainedModel,eF=p.AlbertTokenizer,tF=p.ArceeForCausalLM,rF=p.ArceeModel,sF=p.ArceePreTrainedModel,oF=p.AudioClassificationPipeline,aF=p.AutoConfig,nF=p.AutoFeatureExtractor,iF=p.AutoImageProcessor,lF=p.AutoModel,cF=p.AutoModelForAudioClassification,dF=p.AutoModelForAudioFrameClassification,uF=p.AutoModelForAudioTextToText,_F=p.AutoModelForCTC,pF=p.AutoModelForCausalLM,mF=p.AutoModelForDepthEstimation,hF=p.AutoModelForDocumentQuestionAnswering,fF=p.AutoModelForImageClassification,gF=p.AutoModelForImageFeatureExtraction,MF=p.AutoModelForImageMatting,wF=p.AutoModelForImageSegmentation,bF=p.AutoModelForImageTextToText,vF=p.AutoModelForImageToImage,xF=p.AutoModelForMaskGeneration,yF=p.AutoModelForMaskedLM,TF=p.AutoModelForNormalEstimation,PF=p.AutoModelForObjectDetection,EF=p.AutoModelForPoseEstimation,kF=p.AutoModelForQuestionAnswering,CF=p.AutoModelForSemanticSegmentation,SF=p.AutoModelForSeq2SeqLM,FF=p.AutoModelForSequenceClassification,IF=p.AutoModelForSpeechSeq2Seq,AF=p.AutoModelForTextToSpectrogram,$F=p.AutoModelForTextToWaveform,DF=p.AutoModelForTokenClassification,OF=p.AutoModelForUniversalSegmentation,LF=p.AutoModelForVision2Seq,BF=p.AutoModelForXVector,zF=p.AutoModelForZeroShotObjectDetection,RF=p.AutoProcessor,NF=p.AutoTokenizer,jF=p.AutomaticSpeechRecognitionPipeline,VF=p.BackgroundRemovalPipeline,WF=p.BartForConditionalGeneration,UF=p.BartForSequenceClassification,GF=p.BartModel,KF=p.BartPretrainedModel,HF=p.BartTokenizer,qF=p.BaseModelOutput,QF=p.BaseStreamer,XF=p.BeitFeatureExtractor,JF=p.BeitForImageClassification,YF=p.BeitModel,ZF=p.BeitPreTrainedModel,eI=p.BertForMaskedLM,tI=p.BertForQuestionAnswering,rI=p.BertForSequenceClassification,sI=p.BertForTokenClassification,oI=p.BertModel,aI=p.BertPreTrainedModel,nI=p.BertTokenizer,iI=p.BitImageProcessor,lI=p.BlenderbotForConditionalGeneration,cI=p.BlenderbotModel,dI=p.BlenderbotPreTrainedModel,uI=p.BlenderbotSmallForConditionalGeneration,_I=p.BlenderbotSmallModel,pI=p.BlenderbotSmallPreTrainedModel,mI=p.BlenderbotSmallTokenizer,hI=p.BlenderbotTokenizer,fI=p.BloomForCausalLM,gI=p.BloomModel,MI=p.BloomPreTrainedModel,wI=p.BloomTokenizer,bI=p.CLIPFeatureExtractor,vI=p.CLIPImageProcessor,xI=p.CLIPModel,yI=p.CLIPPreTrainedModel,TI=p.CLIPSegForImageSegmentation,PI=p.CLIPSegModel,EI=p.CLIPSegPreTrainedModel,kI=p.CLIPTextModel,CI=p.CLIPTextModelWithProjection,SI=p.CLIPTokenizer,FI=p.CLIPVisionModel,II=p.CLIPVisionModelWithProjection,AI=p.CamembertForMaskedLM,$I=p.CamembertForQuestionAnswering,DI=p.CamembertForSequenceClassification,OI=p.CamembertForTokenClassification,LI=p.CamembertModel,BI=p.CamembertPreTrainedModel,zI=p.CamembertTokenizer,RI=p.CausalLMOutput,NI=p.CausalLMOutputWithPast,jI=p.ChineseCLIPFeatureExtractor,VI=p.ChineseCLIPModel,WI=p.ChineseCLIPPreTrainedModel,UI=p.ClapAudioModelWithProjection,GI=p.ClapFeatureExtractor,KI=p.ClapModel,HI=p.ClapPreTrainedModel,qI=p.ClapTextModelWithProjection,QI=p.ClassifierFreeGuidanceLogitsProcessor,XI=p.CodeGenForCausalLM,JI=p.CodeGenModel,YI=p.CodeGenPreTrainedModel,ZI=p.CodeGenTokenizer,eA=p.CodeLlamaTokenizer,tA=p.CohereForCausalLM,rA=p.CohereModel,sA=p.CoherePreTrainedModel,oA=p.CohereTokenizer,aA=p.ConvBertForMaskedLM,nA=p.ConvBertForQuestionAnswering,iA=p.ConvBertForSequenceClassification,lA=p.ConvBertForTokenClassification,cA=p.ConvBertModel,dA=p.ConvBertPreTrainedModel,uA=p.ConvBertTokenizer,_A=p.ConvNextFeatureExtractor,pA=p.ConvNextForImageClassification,mA=p.ConvNextImageProcessor,hA=p.ConvNextModel,fA=p.ConvNextPreTrainedModel,gA=p.ConvNextV2ForImageClassification,MA=p.ConvNextV2Model,wA=p.ConvNextV2PreTrainedModel,bA=p.DFineForObjectDetection,vA=p.DFineModel,xA=p.DFinePreTrainedModel,yA=p.DINOv3ConvNextModel,TA=p.DINOv3ConvNextPreTrainedModel,PA=p.DINOv3ViTImageProcessor,EA=p.DINOv3ViTModel,kA=p.DINOv3ViTPreTrainedModel,CA=p.DPTFeatureExtractor,SA=p.DPTForDepthEstimation,FA=p.DPTImageProcessor,IA=p.DPTModel,AA=p.DPTPreTrainedModel,$A=p.DacDecoderModel,DA=p.DacDecoderOutput,OA=p.DacEncoderModel,LA=p.DacEncoderOutput,BA=p.DacFeatureExtractor,zA=p.DacModel,RA=p.DacPreTrainedModel,NA=p.DataTypeMap,jA=p.DebertaForMaskedLM,VA=p.DebertaForQuestionAnswering,WA=p.DebertaForSequenceClassification,UA=p.DebertaForTokenClassification,GA=p.DebertaModel,KA=p.DebertaPreTrainedModel,HA=p.DebertaTokenizer,qA=p.DebertaV2ForMaskedLM,QA=p.DebertaV2ForQuestionAnswering,XA=p.DebertaV2ForSequenceClassification,JA=p.DebertaV2ForTokenClassification,YA=p.DebertaV2Model,ZA=p.DebertaV2PreTrainedModel,e$=p.DebertaV2Tokenizer,t$=p.DecisionTransformerModel,r$=p.DecisionTransformerPreTrainedModel,s$=p.DeiTFeatureExtractor,o$=p.DeiTForImageClassification,a$=p.DeiTImageProcessor,n$=p.DeiTModel,i$=p.DeiTPreTrainedModel,l$=p.DepthAnythingForDepthEstimation,c$=p.DepthAnythingPreTrainedModel,d$=p.DepthEstimationPipeline,u$=p.DepthProForDepthEstimation,_$=p.DepthProPreTrainedModel,p$=p.DetrFeatureExtractor,m$=p.DetrForObjectDetection,h$=p.DetrForSegmentation,f$=p.DetrImageProcessor,g$=p.DetrModel,M$=p.DetrObjectDetectionOutput,w$=p.DetrPreTrainedModel,b$=p.DetrSegmentationOutput,v$=p.Dinov2ForImageClassification,x$=p.Dinov2Model,y$=p.Dinov2PreTrainedModel,T$=p.Dinov2WithRegistersForImageClassification,P$=p.Dinov2WithRegistersModel,E$=p.Dinov2WithRegistersPreTrainedModel,k$=p.DistilBertForMaskedLM,C$=p.DistilBertForQuestionAnswering,S$=p.DistilBertForSequenceClassification,F$=p.DistilBertForTokenClassification,I$=p.DistilBertModel,A$=p.DistilBertPreTrainedModel,$$=p.DistilBertTokenizer,D$=p.DocumentQuestionAnsweringPipeline,O$=p.DonutFeatureExtractor,L$=p.DonutImageProcessor,B$=p.DonutSwinModel,z$=p.DonutSwinPreTrainedModel,R$=p.EdgeTamModel,N$=p.EfficientNetForImageClassification,j$=p.EfficientNetImageProcessor,V$=p.EfficientNetModel,W$=p.EfficientNetPreTrainedModel,U$=p.ElectraForMaskedLM,G$=p.ElectraForQuestionAnswering,K$=p.ElectraForSequenceClassification,H$=p.ElectraForTokenClassification,q$=p.ElectraModel,Q$=p.ElectraPreTrainedModel,X$=p.ElectraTokenizer,J$=p.EncodecFeatureExtractor,Y$=p.EosTokenCriteria,Z$=p.Ernie4_5ForCausalLM,eD=p.Ernie4_5Model,tD=p.Ernie4_5PreTrainedModel,rD=p.EsmForMaskedLM,sD=p.EsmForSequenceClassification,oD=p.EsmForTokenClassification,aD=p.EsmModel,nD=p.EsmPreTrainedModel,iD=p.EsmTokenizer,lD=p.ExaoneForCausalLM,cD=p.ExaoneModel,dD=p.ExaonePreTrainedModel,uD=p.FFT,_D=p.FalconForCausalLM,pD=p.FalconModel,mD=p.FalconPreTrainedModel,hD=p.FalconTokenizer,fD=p.FastViTForImageClassification,gD=p.FastViTModel,MD=p.FastViTPreTrainedModel,wD=p.FeatureExtractionPipeline,bD=p.FeatureExtractor,vD=p.FillMaskPipeline,xD=p.Florence2ForConditionalGeneration,yD=p.Florence2PreTrainedModel,TD=p.Florence2Processor,PD=p.ForcedBOSTokenLogitsProcessor,ED=p.ForcedEOSTokenLogitsProcessor,kD=p.GLPNFeatureExtractor,CD=p.GLPNForDepthEstimation,SD=p.GLPNModel,FD=p.GLPNPreTrainedModel,ID=p.GPT2LMHeadModel,AD=p.GPT2Model,$D=p.GPT2PreTrainedModel,DD=p.GPT2Tokenizer,OD=p.GPTBigCodeForCausalLM,LD=p.GPTBigCodeModel,BD=p.GPTBigCodePreTrainedModel,zD=p.GPTJForCausalLM,RD=p.GPTJModel,ND=p.GPTJPreTrainedModel,jD=p.GPTNeoForCausalLM,VD=p.GPTNeoModel,WD=p.GPTNeoPreTrainedModel,UD=p.GPTNeoXForCausalLM,GD=p.GPTNeoXModel,KD=p.GPTNeoXPreTrainedModel,HD=p.GPTNeoXTokenizer,qD=p.Gemma2ForCausalLM,QD=p.Gemma2Model,XD=p.Gemma2PreTrainedModel,JD=p.Gemma3ForCausalLM,YD=p.Gemma3Model,ZD=p.Gemma3PreTrainedModel,eO=p.Gemma3nAudioFeatureExtractor,tO=p.Gemma3nForConditionalGeneration,rO=p.Gemma3nPreTrainedModel,sO=p.Gemma3nProcessor,oO=p.GemmaForCausalLM,aO=p.GemmaModel,nO=p.GemmaPreTrainedModel,iO=p.GemmaTokenizer,lO=p.GlmForCausalLM,cO=p.GlmModel,dO=p.GlmPreTrainedModel,uO=p.GraniteForCausalLM,_O=p.GraniteModel,pO=p.GraniteMoeHybridForCausalLM,mO=p.GraniteMoeHybridModel,hO=p.GraniteMoeHybridPreTrainedModel,fO=p.GranitePreTrainedModel,gO=p.Grok1Tokenizer,MO=p.GroundingDinoForObjectDetection,wO=p.GroundingDinoImageProcessor,bO=p.GroundingDinoPreTrainedModel,vO=p.GroundingDinoProcessor,xO=p.GroupViTModel,yO=p.GroupViTPreTrainedModel,TO=p.HeliumForCausalLM,PO=p.HeliumModel,EO=p.HeliumPreTrainedModel,kO=p.HerbertTokenizer,CO=p.HieraForImageClassification,SO=p.HieraModel,FO=p.HieraPreTrainedModel,IO=p.HubertForCTC,AO=p.HubertForSequenceClassification,$O=p.HubertModel,DO=p.HubertPreTrainedModel,OO=p.IJepaForImageClassification,LO=p.IJepaModel,BO=p.IJepaPreTrainedModel,zO=p.Idefics3ForConditionalGeneration,RO=p.Idefics3ImageProcessor,NO=p.Idefics3PreTrainedModel,jO=p.Idefics3Processor,VO=p.ImageClassificationPipeline,WO=p.ImageFeatureExtractionPipeline,UO=p.ImageFeatureExtractor,GO=p.ImageMattingOutput,KO=p.ImageProcessor,HO=p.ImageSegmentationPipeline,qO=p.ImageToImagePipeline,QO=p.ImageToTextPipeline,XO=p.InterruptableStoppingCriteria,JO=p.JAISLMHeadModel,YO=p.JAISModel,ZO=p.JAISPreTrainedModel,eL=p.JinaCLIPImageProcessor,tL=p.JinaCLIPModel,rL=p.JinaCLIPPreTrainedModel,sL=p.JinaCLIPProcessor,oL=p.JinaCLIPTextModel,aL=p.JinaCLIPVisionModel,nL=p.Lfm2ForCausalLM,iL=p.Lfm2Model,lL=p.Lfm2PreTrainedModel,cL=p.LiteWhisperForConditionalGeneration,dL=p.Llama4ForCausalLM,uL=p.Llama4PreTrainedModel,_L=p.LlamaForCausalLM,pL=p.LlamaModel,mL=p.LlamaPreTrainedModel,hL=p.LlamaTokenizer,fL=p.LlavaForConditionalGeneration,gL=p.LlavaOnevisionForConditionalGeneration,ML=p.LlavaOnevisionImageProcessor,wL=p.LlavaPreTrainedModel,bL=p.LlavaProcessor,vL=p.LlavaQwen2ForCausalLM,xL=p.LogitsProcessor,yL=p.LogitsProcessorList,TL=p.LogitsWarper,PL=p.LongT5ForConditionalGeneration,EL=p.LongT5Model,kL=p.LongT5PreTrainedModel,CL=p.M2M100ForConditionalGeneration,SL=p.M2M100Model,FL=p.M2M100PreTrainedModel,IL=p.M2M100Tokenizer,AL=p.MBart50Tokenizer,$L=p.MBartForCausalLM,DL=p.MBartForConditionalGeneration,OL=p.MBartForSequenceClassification,LL=p.MBartModel,BL=p.MBartPreTrainedModel,zL=p.MBartTokenizer,RL=p.MPNetForMaskedLM,NL=p.MPNetForQuestionAnswering,jL=p.MPNetForSequenceClassification,VL=p.MPNetForTokenClassification,WL=p.MPNetModel,UL=p.MPNetPreTrainedModel,GL=p.MPNetTokenizer,KL=p.MT5ForConditionalGeneration,HL=p.MT5Model,qL=p.MT5PreTrainedModel,QL=p.MarianMTModel,XL=p.MarianModel,JL=p.MarianPreTrainedModel,YL=p.MarianTokenizer,ZL=p.Mask2FormerImageProcessor,e3=p.MaskFormerFeatureExtractor,t3=p.MaskFormerForInstanceSegmentation,r3=p.MaskFormerImageProcessor,s3=p.MaskFormerModel,o3=p.MaskFormerPreTrainedModel,a3=p.MaskedLMOutput,n3=p.MaxLengthCriteria,i3=p.Metric3DForDepthEstimation,l3=p.Metric3DPreTrainedModel,c3=p.Metric3Dv2ForDepthEstimation,d3=p.Metric3Dv2PreTrainedModel,u3=p.MgpstrForSceneTextRecognition,_3=p.MgpstrModelOutput,p3=p.MgpstrPreTrainedModel,m3=p.MgpstrProcessor,h3=p.MgpstrTokenizer,f3=p.MimiDecoderModel,g3=p.MimiDecoderOutput,M3=p.MimiEncoderModel,w3=p.MimiEncoderOutput,b3=p.MimiModel,v3=p.MimiPreTrainedModel,x3=p.MinLengthLogitsProcessor,y3=p.MinNewTokensLengthLogitsProcessor,T3=p.Ministral3ForCausalLM,P3=p.Ministral3Model,E3=p.Ministral3PreTrainedModel,k3=p.MinistralForCausalLM,C3=p.MinistralModel,S3=p.MinistralPreTrainedModel,F3=p.Mistral3ForConditionalGeneration,I3=p.MistralForCausalLM,A3=p.MistralModel,$3=p.MistralPreTrainedModel,D3=p.MobileBertForMaskedLM,O3=p.MobileBertForQuestionAnswering,L3=p.MobileBertForSequenceClassification,B3=p.MobileBertModel,z3=p.MobileBertPreTrainedModel,R3=p.MobileBertTokenizer,N3=p.MobileLLMForCausalLM,j3=p.MobileLLMModel,V3=p.MobileLLMPreTrainedModel,W3=p.MobileNetV1FeatureExtractor,U3=p.MobileNetV1ForImageClassification,G3=p.MobileNetV1ForSemanticSegmentation,K3=p.MobileNetV1ImageProcessor,H3=p.MobileNetV1Model,q3=p.MobileNetV1PreTrainedModel,Q3=p.MobileNetV2FeatureExtractor,X3=p.MobileNetV2ForImageClassification,J3=p.MobileNetV2ForSemanticSegmentation,Y3=p.MobileNetV2ImageProcessor,Z3=p.MobileNetV2Model,eB=p.MobileNetV2PreTrainedModel,tB=p.MobileNetV3FeatureExtractor,rB=p.MobileNetV3ForImageClassification,sB=p.MobileNetV3ForSemanticSegmentation,oB=p.MobileNetV3ImageProcessor,aB=p.MobileNetV3Model,nB=p.MobileNetV3PreTrainedModel,iB=p.MobileNetV4FeatureExtractor,lB=p.MobileNetV4ForImageClassification,cB=p.MobileNetV4ForSemanticSegmentation,dB=p.MobileNetV4ImageProcessor,uB=p.MobileNetV4Model,_B=p.MobileNetV4PreTrainedModel,pB=p.MobileViTFeatureExtractor,mB=p.MobileViTForImageClassification,hB=p.MobileViTImageProcessor,fB=p.MobileViTModel,gB=p.MobileViTPreTrainedModel,MB=p.MobileViTV2ForImageClassification,wB=p.MobileViTV2Model,bB=p.MobileViTV2PreTrainedModel,vB=p.ModelOutput,xB=p.ModernBertDecoderForCausalLM,yB=p.ModernBertDecoderModel,TB=p.ModernBertDecoderPreTrainedModel,PB=p.ModernBertForMaskedLM,EB=p.ModernBertForSequenceClassification,kB=p.ModernBertForTokenClassification,CB=p.ModernBertModel,SB=p.ModernBertPreTrainedModel,FB=p.Moondream1ForConditionalGeneration,IB=p.MoonshineFeatureExtractor,AB=p.MoonshineForConditionalGeneration,$B=p.MoonshineModel,DB=p.MoonshinePreTrainedModel,OB=p.MoonshineProcessor,LB=p.MptForCausalLM,BB=p.MptModel,zB=p.MptPreTrainedModel,RB=p.MultiModalityCausalLM,NB=p.MultiModalityPreTrainedModel,jB=p.MusicgenForCausalLM,VB=p.MusicgenForConditionalGeneration,WB=p.MusicgenModel,UB=p.MusicgenPreTrainedModel,GB=p.NanoChatForCausalLM,KB=p.NanoChatModel,HB=p.NanoChatPreTrainedModel,qB=p.NeoBertForMaskedLM,QB=p.NeoBertForQuestionAnswering,XB=p.NeoBertForSequenceClassification,JB=p.NeoBertForTokenClassification,YB=p.NeoBertModel,ZB=p.NeoBertPreTrainedModel,ez=p.NllbTokenizer,tz=p.NoBadWordsLogitsProcessor,rz=p.NoRepeatNGramLogitsProcessor,sz=p.NomicBertModel,oz=p.NomicBertPreTrainedModel,az=p.NougatImageProcessor,nz=p.NougatTokenizer,iz=p.OPTForCausalLM,lz=p.OPTModel,cz=p.OPTPreTrainedModel,dz=p.ObjectDetectionPipeline,uz=p.Olmo2ForCausalLM,_z=p.Olmo2Model,pz=p.Olmo2PreTrainedModel,mz=p.OlmoForCausalLM,hz=p.OlmoModel,fz=p.OlmoPreTrainedModel,gz=p.OpenELMForCausalLM,Mz=p.OpenELMModel,wz=p.OpenELMPreTrainedModel,bz=p.OwlViTFeatureExtractor,vz=p.OwlViTForObjectDetection,xz=p.OwlViTImageProcessor,yz=p.OwlViTModel,Tz=p.OwlViTPreTrainedModel,Pz=p.OwlViTProcessor,Ez=p.Owlv2ForObjectDetection,kz=p.Owlv2ImageProcessor,Cz=p.Owlv2Model,Sz=p.Owlv2PreTrainedModel,Fz=p.PaliGemmaForConditionalGeneration,Iz=p.PaliGemmaPreTrainedModel,Az=p.PaliGemmaProcessor,$z=p.ParakeetFeatureExtractor,Dz=p.ParakeetForCTC,Oz=p.ParakeetPreTrainedModel,Lz=p.PatchTSMixerForPrediction,Bz=p.PatchTSMixerModel,zz=p.PatchTSMixerPreTrainedModel,Rz=p.PatchTSTForPrediction,Nz=p.PatchTSTModel,jz=p.PatchTSTPreTrainedModel,Vz=p.Phi3ForCausalLM,Wz=p.Phi3Model,Uz=p.Phi3PreTrainedModel,Gz=p.Phi3VForCausalLM,Kz=p.Phi3VImageProcessor,Hz=p.Phi3VPreTrainedModel,qz=p.Phi3VProcessor,Qz=p.PhiForCausalLM,Xz=p.PhiModel,Jz=p.PhiPreTrainedModel,Yz=p.Pipeline,Zz=p.PixtralImageProcessor,eR=p.PixtralProcessor,tR=p.PreTrainedModel,rR=p.PreTrainedTokenizer,sR=p.PretrainedConfig,oR=p.PretrainedMixin,aR=p.Processor,nR=p.PvtForImageClassification,iR=p.PvtImageProcessor,lR=p.PvtModel,cR=p.PvtPreTrainedModel,dR=p.PyAnnoteFeatureExtractor,uR=p.PyAnnoteForAudioFrameClassification,_R=p.PyAnnoteModel,pR=p.PyAnnotePreTrainedModel,mR=p.PyAnnoteProcessor,hR=p.QuestionAnsweringModelOutput,fR=p.QuestionAnsweringPipeline,gR=p.Qwen2ForCausalLM,MR=p.Qwen2Model,wR=p.Qwen2PreTrainedModel,bR=p.Qwen2Tokenizer,vR=p.Qwen2VLForConditionalGeneration,xR=p.Qwen2VLImageProcessor,yR=p.Qwen2VLPreTrainedModel,TR=p.Qwen2VLProcessor,PR=p.Qwen3ForCausalLM,ER=p.Qwen3Model,kR=p.Qwen3PreTrainedModel,CR=p.RFDetrForObjectDetection,SR=p.RFDetrModel,FR=p.RFDetrObjectDetectionOutput,IR=p.RFDetrPreTrainedModel,AR=p.RTDetrForObjectDetection,$R=p.RTDetrImageProcessor,DR=p.RTDetrModel,OR=p.RTDetrObjectDetectionOutput,LR=p.RTDetrPreTrainedModel,BR=p.RTDetrV2ForObjectDetection,zR=p.RTDetrV2Model,RR=p.RTDetrV2ObjectDetectionOutput,NR=p.RTDetrV2PreTrainedModel,jR=p.RawAudio,VR=p.RawImage,WR=p.RawVideo,UR=p.RawVideoFrame,GR=p.RepetitionPenaltyLogitsProcessor,KR=p.ResNetForImageClassification,HR=p.ResNetModel,qR=p.ResNetPreTrainedModel,QR=p.RoFormerForMaskedLM,XR=p.RoFormerForQuestionAnswering,JR=p.RoFormerForSequenceClassification,YR=p.RoFormerForTokenClassification,ZR=p.RoFormerModel,eN=p.RoFormerPreTrainedModel,tN=p.RoFormerTokenizer,rN=p.RobertaForMaskedLM,sN=p.RobertaForQuestionAnswering,oN=p.RobertaForSequenceClassification,aN=p.RobertaForTokenClassification,nN=p.RobertaModel,iN=p.RobertaPreTrainedModel,lN=p.RobertaTokenizer,cN=p.Sam2ImageProcessor,dN=p.Sam2ImageSegmentationOutput,uN=p.Sam2Model,_N=p.Sam2PreTrainedModel,pN=p.Sam2Processor,mN=p.Sam2VideoProcessor,hN=p.Sam3ImageProcessor,fN=p.Sam3TrackerModel,gN=p.SamImageProcessor,MN=p.SamImageSegmentationOutput,wN=p.SamModel,bN=p.SamPreTrainedModel,vN=p.SamProcessor,xN=p.SapiensForDepthEstimation,yN=p.SapiensForNormalEstimation,TN=p.SapiensForSemanticSegmentation,PN=p.SapiensPreTrainedModel,EN=p.SeamlessM4TFeatureExtractor,kN=p.SegformerFeatureExtractor,CN=p.SegformerForImageClassification,SN=p.SegformerForSemanticSegmentation,FN=p.SegformerImageProcessor,IN=p.SegformerModel,AN=p.SegformerPreTrainedModel,$N=p.Seq2SeqLMOutput,DN=p.SequenceClassifierOutput,ON=p.SiglipImageProcessor,LN=p.SiglipModel,BN=p.SiglipPreTrainedModel,zN=p.SiglipTextModel,RN=p.SiglipTokenizer,NN=p.SiglipVisionModel,jN=p.SmolLM3ForCausalLM,VN=p.SmolLM3Model,WN=p.SmolLM3PreTrainedModel,UN=p.SmolVLMForConditionalGeneration,GN=p.SmolVLMImageProcessor,KN=p.SmolVLMProcessor,HN=p.SnacDecoderModel,qN=p.SnacEncoderModel,QN=p.SnacFeatureExtractor,XN=p.SnacModel,JN=p.SnacPreTrainedModel,YN=p.SpeechT5FeatureExtractor,ZN=p.SpeechT5ForSpeechToText,ej=p.SpeechT5ForTextToSpeech,tj=p.SpeechT5HifiGan,rj=p.SpeechT5Model,sj=p.SpeechT5PreTrainedModel,oj=p.SpeechT5Processor,aj=p.SpeechT5Tokenizer,nj=p.SqueezeBertForMaskedLM,ij=p.SqueezeBertForQuestionAnswering,lj=p.SqueezeBertForSequenceClassification,cj=p.SqueezeBertModel,dj=p.SqueezeBertPreTrainedModel,uj=p.SqueezeBertTokenizer,_j=p.StableLmForCausalLM,pj=p.StableLmModel,mj=p.StableLmPreTrainedModel,hj=p.Starcoder2ForCausalLM,fj=p.Starcoder2Model,gj=p.Starcoder2PreTrainedModel,Mj=p.StoppingCriteria,wj=p.StoppingCriteriaList,bj=p.StyleTextToSpeech2Model,vj=p.StyleTextToSpeech2PreTrainedModel,xj=p.SummarizationPipeline,yj=p.SupertonicForConditionalGeneration,Tj=p.SupertonicPreTrainedModel,Pj=p.SuppressTokensAtBeginLogitsProcessor,Ej=p.Swin2SRForImageSuperResolution,kj=p.Swin2SRImageProcessor,Cj=p.Swin2SRModel,Sj=p.Swin2SRPreTrainedModel,Fj=p.SwinForImageClassification,Ij=p.SwinForSemanticSegmentation,Aj=p.SwinModel,$j=p.SwinPreTrainedModel,Dj=p.T5ForConditionalGeneration,Oj=p.T5Model,Lj=p.T5PreTrainedModel,Bj=p.T5Tokenizer,zj=p.TableTransformerForObjectDetection,Rj=p.TableTransformerModel,Nj=p.TableTransformerObjectDetectionOutput,jj=p.TableTransformerPreTrainedModel,Vj=p.TemperatureLogitsWarper,Wj=p.Tensor,Uj=p.Text2TextGenerationPipeline,Gj=p.TextClassificationPipeline,Kj=p.TextGenerationPipeline,Hj=p.TextStreamer,qj=p.TextToAudioPipeline,Qj=p.TokenClassificationPipeline,Xj=p.TokenClassifierOutput,Jj=p.TokenizerModel,Yj=p.TopKLogitsWarper,Zj=p.TopPLogitsWarper,eV=p.TrOCRForCausalLM,tV=p.TrOCRPreTrainedModel,rV=p.TranslationPipeline,sV=p.UltravoxModel,oV=p.UltravoxPreTrainedModel,aV=p.UltravoxProcessor,nV=p.UniSpeechForCTC,iV=p.UniSpeechForSequenceClassification,lV=p.UniSpeechModel,cV=p.UniSpeechPreTrainedModel,dV=p.UniSpeechSatForAudioFrameClassification,uV=p.UniSpeechSatForCTC,_V=p.UniSpeechSatForSequenceClassification,pV=p.UniSpeechSatModel,mV=p.UniSpeechSatPreTrainedModel,hV=p.VLChatProcessor,fV=p.VLMImageProcessor,gV=p.VaultGemmaForCausalLM,MV=p.VaultGemmaModel,wV=p.VaultGemmaPreTrainedModel,bV=p.ViTFeatureExtractor,vV=p.ViTForImageClassification,xV=p.ViTImageProcessor,yV=p.ViTMAEModel,TV=p.ViTMAEPreTrainedModel,PV=p.ViTMSNForImageClassification,EV=p.ViTMSNModel,kV=p.ViTMSNPreTrainedModel,CV=p.ViTModel,SV=p.ViTPreTrainedModel,FV=p.VisionEncoderDecoderModel,IV=p.VitMatteForImageMatting,AV=p.VitMatteImageProcessor,$V=p.VitMattePreTrainedModel,DV=p.VitPoseForPoseEstimation,OV=p.VitPoseImageProcessor,LV=p.VitPosePreTrainedModel,BV=p.VitsModel,zV=p.VitsModelOutput,RV=p.VitsPreTrainedModel,NV=p.VitsTokenizer,jV=p.VoxtralForConditionalGeneration,VV=p.VoxtralProcessor,WV=p.Wav2Vec2BertForCTC,UV=p.Wav2Vec2BertForSequenceClassification,GV=p.Wav2Vec2BertModel,KV=p.Wav2Vec2BertPreTrainedModel,HV=p.Wav2Vec2CTCTokenizer,qV=p.Wav2Vec2FeatureExtractor,QV=p.Wav2Vec2ForAudioFrameClassification,XV=p.Wav2Vec2ForCTC,JV=p.Wav2Vec2ForSequenceClassification,YV=p.Wav2Vec2Model,ZV=p.Wav2Vec2PreTrainedModel,e4=p.Wav2Vec2Processor,t4=p.Wav2Vec2ProcessorWithLM,r4=p.WavLMForAudioFrameClassification,s4=p.WavLMForCTC,o4=p.WavLMForSequenceClassification,a4=p.WavLMForXVector,n4=p.WavLMModel,i4=p.WavLMPreTrainedModel,l4=p.WeSpeakerFeatureExtractor,c4=p.WeSpeakerResNetModel,d4=p.WeSpeakerResNetPreTrainedModel,u4=p.WhisperFeatureExtractor,_4=p.WhisperForConditionalGeneration,p4=p.WhisperModel,m4=p.WhisperPreTrainedModel,h4=p.WhisperProcessor,$0=p.WhisperTextStreamer,f4=p.WhisperTimeStampLogitsProcessor,g4=p.WhisperTokenizer,M4=p.XLMForQuestionAnswering,w4=p.XLMForSequenceClassification,b4=p.XLMForTokenClassification,v4=p.XLMModel,x4=p.XLMPreTrainedModel,y4=p.XLMRobertaForMaskedLM,T4=p.XLMRobertaForQuestionAnswering,P4=p.XLMRobertaForSequenceClassification,E4=p.XLMRobertaForTokenClassification,k4=p.XLMRobertaModel,C4=p.XLMRobertaPreTrainedModel,S4=p.XLMRobertaTokenizer,F4=p.XLMTokenizer,I4=p.XLMWithLMHeadModel,A4=p.XVectorOutput,$4=p.YolosFeatureExtractor,D4=p.YolosForObjectDetection,O4=p.YolosImageProcessor,L4=p.YolosModel,B4=p.YolosObjectDetectionOutput,z4=p.YolosPreTrainedModel,R4=p.ZeroShotAudioClassificationPipeline,N4=p.ZeroShotClassificationPipeline,j4=p.ZeroShotImageClassificationPipeline,V4=p.ZeroShotObjectDetectionPipeline,W4=p.bankers_round,U4=p.cat,G4=p.cos_sim,K4=p.dot,H4=p.dynamic_time_warping,q4=p.env,Q4=p.full,X4=p.full_like,J4=p.getCacheShapes,Y4=p.hamming,Z4=p.hanning,eW=p.interpolate,tW=p.interpolate_4d,rW=p.interpolate_data,sW=p.is_chinese_char,oW=p.layer_norm,aW=p.load_image,nW=p.load_video,iW=p.log_softmax,lW=p.magnitude,cW=p.matmul,dW=p.max,uW=p.mean,_W=p.mean_pooling,pW=p.medianFilter,mW=p.mel_filter_bank,hW=p.min,fW=p.ones,gW=p.ones_like,MW=p.permute,wW=p.permute_data,D0=p.pipeline,bW=p.quantize_embeddings,vW=p.rand,xW=p.randn,yW=p.read_audio,TW=p.rfft,PW=p.round,EW=p.slice,kW=p.softmax,CW=p.spectrogram,SW=p.stack,FW=p.std_mean,IW=p.topk,AW=p.window_function,$W=p.zeros,DW=p.zeros_like;async function O0(e){let{spec:r,onLoading:t}=e;return await D0(e.task,r.model,{device:r.device,dtype:r.dtype,progress_callback:o=>{t({total:o.total,progress:o.progress})}})}async function L0(e){let{pipe:r,spec:t,request:s,callbacks:o}=e;if(!r.processor.feature_extractor)throw new Error("no feature_extractor");let a=r.processor.feature_extractor?.config.chunk_length/r.model.config.max_source_positions,n=0,i=null,l=0,c=0,_=t.chunkLength-t.strideLength,u=()=>{let x=n*_;return Math.min(x/s.duration,1)},d=r.tokenizer,g=new $0(d,{time_precision:a,token_callback_function:()=>{i??=performance.now(),++l>1&&(c=l/(performance.now()-i)*1e3)},callback_function:x=>{o.onTranscription(x),o.onReport({tokensPerSecond:c,progress:u()})},on_finalize:()=>{i=null,l=0,n++,o.onReport({tokensPerSecond:c,progress:u()})}}),h=await r(new Float32Array(s.audio),{top_k:0,do_sample:!1,chunk_length_s:t.chunkLength,stride_length_s:t.strideLength,language:s.language,task:"transcribe",return_timestamps:"word",force_full_sequences:!1,streamer:g});return{text:h.text,chunks:h.chunks}}function wE(e){if(e instanceof To)return e;let r=new To(bE(e));return e instanceof Error&&(r.stack=e.stack),r}function Tu(e){return async(...r)=>{try{return await e(...r)}catch(t){throw wE(t)}}}function bE(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)??String(e)}catch{return String(e)}}var B0=ls(),vE=e=>Lf(async r=>{B0.resolve({spec:r,pipe:await O0({spec:r,task:"automatic-speech-recognition",onLoading:t=>e.loading(t)})})});await Zf.worker(e=>{let r=vE(e.host);return{prepare:Tu(r),transcribe:Tu(async t=>{let{pipe:s,spec:o}=await B0.promise;return L0({pipe:s,spec:o,request:t,callbacks:{onReport:a=>e.host.deliverReport(a),onTranscription:a=>e.host.deliverTranscription(a)}})})}});
|
|
2852
2852
|
/*! Bundled license information:
|
|
2853
2853
|
|
|
2854
2854
|
onnxruntime-web/dist/ort.bundle.min.mjs:
|