@kubohiroya/turbowarp-teachable-machine 3.6.0 → 4.0.0
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/README.ja.md +4 -3
- package/README.md +4 -3
- package/dist/backend-wasm.js +1 -1
- package/dist/backend-webgpu.js +1 -1
- package/dist/composition.js +7 -7
- package/dist/posenet.js +6 -6
- package/dist/runtime.js +2 -2
- package/dist/tm.js +7 -7
- package/package.json +6 -6
package/README.ja.md
CHANGED
|
@@ -50,19 +50,19 @@ flowchart LR
|
|
|
50
50
|
ダウンロード先、および合成ランタイムが取得する成果物は、jsDelivr上のバージョン固定ビルドです。
|
|
51
51
|
|
|
52
52
|
```text
|
|
53
|
-
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@
|
|
53
|
+
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@4.0.0/dist/tm.js
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
合成ランタイムは、縮小済みの第三者バンドルを書き換えることなく、同じ検証済み成果物を読み込んだり同梱したりできます。
|
|
57
57
|
|
|
58
58
|
```text
|
|
59
|
-
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@
|
|
59
|
+
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@4.0.0/dist/runtime.js
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
公開済みパッケージを別のプロジェクトに追加するには次のようにします。
|
|
63
63
|
|
|
64
64
|
```sh
|
|
65
|
-
pnpm add --save-exact @kubohiroya/turbowarp-teachable-machine@
|
|
65
|
+
pnpm add --save-exact @kubohiroya/turbowarp-teachable-machine@4.0.0
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
### 名前について
|
|
@@ -399,6 +399,7 @@ const offlineRuntime = createBundledTMRuntime({runtime: tmPose, projectBundle});
|
|
|
399
399
|
## 開発
|
|
400
400
|
|
|
401
401
|
```bash
|
|
402
|
+
npm install --global corepack@latest
|
|
402
403
|
corepack enable
|
|
403
404
|
pnpm install --frozen-lockfile
|
|
404
405
|
pnpm check
|
package/README.md
CHANGED
|
@@ -62,20 +62,20 @@ select that file, and keep **Run without sandbox** enabled.
|
|
|
62
62
|
The download, and the artifact a composite runtime fetches, is the version-pinned build on jsDelivr:
|
|
63
63
|
|
|
64
64
|
```text
|
|
65
|
-
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@
|
|
65
|
+
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@4.0.0/dist/tm.js
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
A composite runtime can load or embed the same reviewed artifact without rewriting a minified
|
|
69
69
|
third-party bundle:
|
|
70
70
|
|
|
71
71
|
```text
|
|
72
|
-
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@
|
|
72
|
+
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@4.0.0/dist/runtime.js
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
To add the published package to another project:
|
|
76
76
|
|
|
77
77
|
```sh
|
|
78
|
-
pnpm add --save-exact @kubohiroya/turbowarp-teachable-machine@
|
|
78
|
+
pnpm add --save-exact @kubohiroya/turbowarp-teachable-machine@4.0.0
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
### Names
|
|
@@ -942,6 +942,7 @@ Returns the latest recorded error message.
|
|
|
942
942
|
## Development
|
|
943
943
|
|
|
944
944
|
```bash
|
|
945
|
+
npm install --global corepack@latest
|
|
945
946
|
corepack enable
|
|
946
947
|
pnpm install --frozen-lockfile
|
|
947
948
|
pnpm check
|
package/dist/backend-wasm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @license Includes TensorFlow.js WASM backend 4.22.0 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/
|
|
1
|
+
/*! @license Includes TensorFlow.js WASM backend 4.22.0 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/v4.0.0/THIRD_PARTY_NOTICES.md. */
|
|
2
2
|
(function(i){var ki=Object.create,wr=Object.defineProperty,Si=Object.getOwnPropertyDescriptor,Mi=Object.getOwnPropertyNames,Ai=Object.getPrototypeOf,Fr=Object.prototype.hasOwnProperty,dn=(t,a)=>()=>(a||(t((a={exports:{}}).exports,a),t=null),a.exports),xi=(t,a,u,d)=>{if(a&&typeof a=="object"||typeof a=="function")for(var r=Mi(a),n=0,o=r.length,p;n<o;n++)p=r[n],!Fr.call(t,p)&&p!==u&&wr(t,p,{get:(l=>a[l]).bind(null,p),enumerable:!(d=Si(a,p))||d.enumerable});return t},Nr=(t,a,u)=>(u=t!=null?ki(Ai(t)):{},xi(a||!t||!t.__esModule||!Fr.call(t,"default")?wr(u,"default",{value:t,enumerable:!0}):u,t)),G;(function(t){t[t.float32=0]="float32",t[t.int32=1]="int32",t[t.bool=2]="bool",t[t.string=3]="string",t[t.complex64=4]="complex64"})(G||(G={}));var qe;(function(t){t[t.linear=0]="linear",t[t.relu=1]="relu",t[t.relu6=2]="relu6",t[t.prelu=3]="prelu",t[t.leakyrelu=4]="leakyrelu",t[t.sigmoid=5]="sigmoid",t[t.elu=6]="elu"})(qe||(qe={}));var Cr;function Di(t){Cr=t.wasm.cwrap(i._FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function wi(t){const{inputs:a,backend:u,attrs:d}=t,{a:r,b:n,bias:o,preluActivationWeights:p}=a;if(r.dtype!=="float32"||n.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");const{transposeA:l,transposeB:s,activation:e,leakyreluAlpha:m}=d,f=u.dataIdMap.get(r.dataId).id,g=u.dataIdMap.get(n.dataId).id;let h=0;if(o!=null){const B=u.dataIdMap.get(o.dataId);if(B.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${B.shape.length}.`);h=B.id}const b=p==null?0:u.dataIdMap.get(p.dataId).id,y=qe[e];if(y==null)throw new Error(`${e} activation not yet supported for FusedConv2D in the wasm backend.`);const k=l?r.shape[2]:r.shape[1],I=s?n.shape[1]:n.shape[2],M=i.broadcast_util.assertAndGetBroadcastShape(r.shape.slice(0,-2),n.shape.slice(0,-2)),D=u.makeOutput([...M,k,I],r.dtype),F=u.dataIdMap.get(D.dataId).id,E=new Uint8Array(new Int32Array(r.shape).buffer),O=new Uint8Array(new Int32Array(n.shape).buffer);return Cr(f,E,r.shape.length,g,O,n.shape.length,l,s,y,h,b,m||0,F),D}var Fi={kernelName:i._FusedMatMul,backendName:"wasm",setupFunc:Di,kernelFunc:wi};function W(t,a){let u;function d(n){u=n.wasm.cwrap(t,null,["number","number","number"])}function r(n){const{backend:o,inputs:{x:p}}=n,l=o.dataIdMap.get(p.dataId).id,s=o.makeOutput(p.shape,a||p.dtype),e=o.dataIdMap.get(s.dataId).id;return i.util.sizeFromShape(s.shape)===0||u(l,G[p.dtype],e),s}return{kernelName:t,backendName:"wasm",setupFunc:d,kernelFunc:r}}var Ni=W(i.Abs),Ci=W(i.Acos),Ri=W(i.Acosh);function Y(t,a,u){let d;function r(o){d=o.wasm.cwrap(t,null,["number","array","number","number","array","number","number","number"])}function n(o){const{backend:p,inputs:l}=o,{a:s,b:e}=l,m=p.dataIdMap.get(s.dataId).id,f=p.dataIdMap.get(e.dataId).id,g=u??s.dtype,h=i.backend_util.assertAndGetBroadcastShape(s.shape,e.shape),b=p.makeOutput(h,g);if(i.util.sizeFromShape(h)===0)return b;const y=new Uint8Array(new Int32Array(s.shape).buffer),k=new Uint8Array(new Int32Array(e.shape).buffer),I=p.dataIdMap.get(b.dataId).id;return d(m,y,s.shape.length,f,k,e.shape.length,G[s.dtype],I),b}return{kernelName:t,backendName:"wasm",setupFunc:r,kernelFunc:n}}var _i=!0,Pi=Y(i.Add,_i),Rr;function Ei(t){Rr=t.wasm.cwrap(i.AddN,null,["array","number","number","number"])}function Bi(t){const{inputs:a,backend:u}=t,d=u.makeOutput(a[0].shape,a[0].dtype);if(i.util.sizeFromShape(d.shape)===0)return d;const r=a.map(p=>u.dataIdMap.get(p.dataId).id),n=new Uint8Array(new Int32Array(r).buffer),o=u.dataIdMap.get(d.dataId).id;return Rr(n,r.length,G[d.dtype],o),d}var Ti={kernelName:i.AddN,backendName:"wasm",setupFunc:Ei,kernelFunc:Bi};function on(t){const{inputs:{x:a},backend:u}=t;if(a.dtype==="string")return(0,i.tensor)(u.readSync(a.dataId),a.shape,a.dtype);const d=u.makeOutput(a.shape,a.dtype),r=u.typedArrayFromHeap(a);return u.typedArrayFromHeap(d).set(r),d}var Oi={kernelName:i.Identity,backendName:"wasm",kernelFunc:on},_r;function Wi(t){_r=t.wasm.cwrap(i.Transpose,null,["number","array","number","number","number","array","number"])}function Ie(t){const{inputs:a,backend:u,attrs:d}=t,[r,n]=Hi(a.x.shape,d.perm);let o=!0;for(let h=0;h<n.length;h++)n[h]!==h&&(o=!1);const p=zi(a.x.shape,d.perm),l={dataId:a.x.dataId,shape:r,dtype:a.x.dtype};if(o){const h=on({inputs:a,backend:u});return h.shape=p,h}const s=u.makeOutput(p,l.dtype),e=u.dataIdMap.get(l.dataId).id,m=u.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(n).buffer),g=new Uint8Array(new Int32Array(l.shape).buffer);return _r(e,g,l.shape.length,G[l.dtype],m,f,n.length),s}function zi(t,a){const u=new Array(t.length);for(let d=0;d<u.length;d++)u[d]=t[a[d]];return u}function Hi(t,a){const u=[],d=[];for(let r=0;r<t.length;++r)t[r]!==1&&u.push(t[r]),t[a[r]]!==1&&d.push(a[r]);for(let r=0;r<d.length;++r){let n=-1;for(let o=0;o<d.length;++o)d[o]>=r&&(n===-1||d[n]>d[o])&&(n=o);d[n]=r}return[u,d]}var Li={kernelName:i.Transpose,backendName:"wasm",kernelFunc:Ie,setupFunc:Wi};function ke(t,a,u){const d=t.shape,r=t.shape.length,n=i.util.parseAxisParam(a,d);let o=n;const p=i.backend_util.getAxesPermutation(o,r);let l=null,s=!1;if(p!=null){const e=new Array(r);for(let f=0;f<e.length;f++)e[f]=d[p[f]];o=i.backend_util.getInnerMostAxes(o.length,r),l=Ie({inputs:{x:t},attrs:{perm:p},backend:u});const m=u.dataIdMap.get(t.dataId).id;u.dataIdMap.get(l.dataId).id!==m&&(s=!0)}return{transposed:l,originalAxes:n,axes:o,inputWasTransposed:s}}var Pr;function Gi(t){Pr=t.wasm.cwrap(i.All,null,["number, number, number"])}function $i(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u;let p=a.dataIdMap.get(o.dataId).id,l=o;const{transposed:s,axes:e,originalAxes:m,inputWasTransposed:f}=ke(o,r,a);if(f){const I=a.dataIdMap.get(s.dataId).id;l=s,p=I}const g=l.shape.length;i.backend_util.assertAxesAreInnerMostDims("all",e,g);const[h,b]=i.backend_util.computeOutAndReduceShapes(l.shape,e),y=i.util.sizeFromShape(b),k=a.makeOutput(h,o.dtype);if(i.util.sizeFromShape(l.shape)!==0){const I=a.dataIdMap.get(k.dataId).id;Pr(p,y,I)}return f&&a.disposeData(s.dataId),n&&(k.shape=i.backend_util.expandShapeToKeepDim(k.shape,m)),k}var Vi={kernelName:i.All,backendName:"wasm",setupFunc:Gi,kernelFunc:$i},Er;function Ui(t){Er=t.wasm.cwrap(i.Any,null,["number, number, number"])}function qi(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u;let p=a.dataIdMap.get(o.dataId).id,l=o;const{transposed:s,axes:e,originalAxes:m,inputWasTransposed:f}=ke(o,r,a);if(f){const I=a.dataIdMap.get(s.dataId).id;l=s,p=I}const g=l.shape.length;i.backend_util.assertAxesAreInnerMostDims("any",e,g);const[h,b]=i.backend_util.computeOutAndReduceShapes(l.shape,e),y=i.util.sizeFromShape(b),k=a.makeOutput(h,o.dtype);if(i.util.sizeFromShape(l.shape)!==0){const I=a.dataIdMap.get(k.dataId).id;Er(p,y,I)}return f&&a.disposeData(s.dataId),n&&(k.shape=i.backend_util.expandShapeToKeepDim(k.shape,m)),k}var Ki={kernelName:i.Any,backendName:"wasm",setupFunc:Ui,kernelFunc:qi};function Br(t){let a;function u(r){a=r.wasm.cwrap(t,null,["number","number","number","number","number"])}function d(r){const{backend:n,inputs:o,attrs:p}=r,{axis:l}=p,{x:s}=o,e=n.dataIdMap.get(s.dataId).id;let m=e,f=s;const{transposed:g,axes:h,inputWasTransposed:b}=ke(s,l,n);if(b){const F=n.dataIdMap.get(g.dataId).id;F!==e&&(f=g,m=F)}const y=f.shape.slice(0,-1),k=n.makeOutput(y,"int32"),I=n.dataIdMap.get(k.dataId).id,M=i.util.sizeFromShape(k.shape),D=f.shape[h[0]];return a(m,G[f.dtype],M,D,I),b&&n.disposeData(g.dataId),k}return{kernelName:t,backendName:"wasm",setupFunc:u,kernelFunc:d}}var Xi=Br(i.ArgMax),Ji=Br(i.ArgMin),Qi=W(i.Asin),Yi=W(i.Asinh),Zi=W(i.Atan),ji=Y(i.Atan2,!1),es=W(i.Atanh),Tr;function ns(t){Tr=t.wasm.cwrap(i.AvgPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ts(t){const{inputs:a,attrs:u,backend:d}=t,r=a.x,n=d.dataIdMap.get(r.dataId).id,{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=u,e=i.backend_util.computePool2DInfo(r.shape,o,p,1,l,s),m=e.filterHeight,f=e.filterWidth,g=e.padInfo.top,h=e.padInfo.right,b=e.padInfo.bottom,y=e.padInfo.left,k=e.strideHeight,I=e.strideWidth,M=e.inChannels;if(e.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${e.dataFormat}'. Please use 'channelsLast'.`);if(e.dilationWidth!==1||e.dilationHeight!==1)throw new Error(`was backend only supports average pooling with dilation = [1, 1], got [${e.dilationHeight}, ${e.dilationWidth}].`);const D=d.makeOutput(e.outShape,"float32"),F=d.dataIdMap.get(D.dataId).id;return Tr(n,r.shape[0],r.shape[1],r.shape[2],m,f,g,h,b,y,k,I,M,F),D}var as={kernelName:i.AvgPool,backendName:"wasm",setupFunc:ns,kernelFunc:ts},Or;function rs(t){Or=t.wasm.cwrap("AvgPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function us(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{filterSize:n,strides:o,pad:p,dimRoundingMode:l,dataFormat:s}=d,e=i.backend_util.computePool3DInfo(r.shape,n,o,1,p,l,s),m=u.makeOutput(e.outShape,r.dtype);return Or(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inDepth,e.inHeight,e.inWidth,e.outDepth,e.outHeight,e.outWidth,e.strideDepth,e.strideHeight,e.strideWidth,e.dilationDepth,e.dilationHeight,e.dilationWidth,e.effectiveFilterDepth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.front,e.padInfo.top,e.padInfo.left),m}var is={kernelName:i.AvgPool3D,backendName:"wasm",setupFunc:rs,kernelFunc:us},Wr;function ss(t){Wr=t.wasm.cwrap("AvgPool3DGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ds(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,input:n}=a,{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=d,e=i.backend_util.computePool3DInfo(n.shape,o,p,1,l,s),m=u.makeOutput(n.shape,n.dtype);return Wr(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inDepth,e.inHeight,e.inWidth,e.outDepth,e.outHeight,e.outWidth,e.strideDepth,e.strideHeight,e.strideWidth,e.dilationDepth,e.dilationHeight,e.dilationWidth,e.effectiveFilterDepth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.front,e.padInfo.top,e.padInfo.left,e.filterDepth,e.filterHeight,e.filterWidth),m}var os={kernelName:i.AvgPool3DGrad,backendName:"wasm",setupFunc:ss,kernelFunc:ds},zr;function ps(t){zr=t.wasm.cwrap("AvgPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ls(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,input:n}=a,{filterSize:o,strides:p,pad:l}=d,s=i.backend_util.computePool2DInfo(n.shape,o,p,1,l),e=u.makeOutput(n.shape,n.dtype);return zr(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(e.dataId).id,s.batchSize,s.inChannels,s.inHeight,s.inWidth,s.outHeight,s.outWidth,s.strideHeight,s.strideWidth,s.dilationHeight,s.dilationWidth,s.effectiveFilterHeight,s.effectiveFilterWidth,s.padInfo.top,s.padInfo.left,s.filterHeight,s.filterWidth),e}var cs={kernelName:i.AvgPoolGrad,backendName:"wasm",setupFunc:ps,kernelFunc:ls};function ue(t){const{inputs:a,attrs:u}=t,{x:d}=a,{shape:r}=u,n=i.util.sizeFromShape(d.shape),o=i.util.inferFromImplicitShape(r,n);return i.util.assert(n===i.util.sizeFromShape(o),()=>`new shape: ${o}, old shape: ${d.shape}. New shape and old shape must have the same number of elements.`),t.backend.incRef(d.dataId),{dataId:d.dataId,shape:o,dtype:d.dtype}}var ms={kernelName:i.Reshape,backendName:"wasm",kernelFunc:ue},Hr;function hs(t){Hr=t.wasm.cwrap(i.BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function gs(t){const{inputs:a,backend:u,attrs:d}=t,{a:r,b:n}=a,{transposeA:o,transposeB:p}=d;if(r.dtype!=="float32"||n.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");const l=r.shape.length,s=n.shape.length,e=o?r.shape[l-2]:r.shape[l-1],m=p?n.shape[s-1]:n.shape[s-2],f=o?r.shape[l-1]:r.shape[l-2],g=p?n.shape[s-2]:n.shape[s-1],h=r.shape.slice(0,-2),b=n.shape.slice(0,-2),y=i.util.sizeFromShape(h),k=i.util.sizeFromShape(b),I=i.broadcast_util.assertAndGetBroadcastShape(r.shape.slice(0,-2),n.shape.slice(0,-2)).concat([f,g]);i.util.assert(e===m,()=>`Error in matMul: inner shapes (${e}) and (${m}) of Tensors with shapes ${r.shape} and ${n.shape} and transposeA=${o} and transposeB=${p} must match.`);const M=o?[y,e,f]:[y,f,e],D=p?[k,g,m]:[k,m,g],F=ue({inputs:{x:r},backend:u,attrs:{shape:M}}),E=ue({inputs:{x:n},backend:u,attrs:{shape:D}}),O=u.dataIdMap.get(F.dataId).id,B=u.dataIdMap.get(E.dataId).id,K=o?F.shape[2]:F.shape[1],X=p?E.shape[1]:E.shape[2],U=Math.max(y,k),q=u.makeOutput([U,K,X],F.dtype),Z=u.dataIdMap.get(q.dataId).id,ie=new Uint8Array(new Int32Array(F.shape).buffer),le=new Uint8Array(new Int32Array(E.shape).buffer);return Hr(O,ie,F.shape.length,B,le,E.shape.length,o,p,Z),u.disposeData(F.dataId),u.disposeData(E.dataId),q.shape=I,q}var fs={kernelName:i.BatchMatMul,backendName:"wasm",setupFunc:hs,kernelFunc:gs};function bs(t,a,u,d){const r=i.util.getArrayFromDType(u,i.util.sizeFromShape(a));if(d&&u!=="string"){let n=0;t.forEach(o=>{const p=i.util.sizeFromShape(o.shape);r.set(o.vals,n),n+=p})}else{let n=0;t.forEach(o=>{const p=u==="string"?i.backend_util.fromUint8ToStringArray(o.vals):o.vals;let l=0;for(let s=0;s<o.shape[0];++s){const e=s*a[1]+n;for(let m=0;m<o.shape[1];++m)r[e+m]=p[l++]}n+=o.shape[1]})}return r}function vs(t,a,u,d){if(t===a||t<a&&u<0||a<t&&u>1)return i.util.makeZerosTypedArray(0,d);const r=Math.abs(Math.ceil((a-t)/u)),n=i.util.makeZerosTypedArray(r,d);a<t&&u===1&&(u=-1),n[0]=t;for(let o=1;o<n.length;o++)n[o]=n[o-1]+u;return n}function Lr(t,a,u,d,r){const n=i.slice_util.isSliceContinous(d,a,u),o=i.util.sizeFromShape(u),p=i.util.computeStrides(d);if(n){const m=i.slice_util.computeFlatOffset(a,p);return r==="string"?t.slice(m,m+o):t.subarray(m,m+o)}const l=r==="string"?i.backend_util.fromUint8ToStringArray(t):t,s=(0,i.buffer)(d,r,l),e=(0,i.buffer)(u,r);for(let m=0;m<e.size;++m){const f=e.indexToLoc(m),g=f.map((h,b)=>h+a[b]);e.set(s.get(...g),...f)}return r==="string"?i.backend_util.fromStringArrayToUint8(e.values):e.values}var ys=class{constructor(t,a,u,d,r,n){this.separator=i.util.encodeString(t),this.nGramWidths=a,this.leftPad=i.util.encodeString(u),this.rightPad=i.util.encodeString(d),this.padWidth=r,this.preserveShort=n}getPadWidth(t){return Math.min(this.padWidth<0?t-1:this.padWidth,t-1)}getNumNGrams(t,a){const u=this.getPadWidth(a);return Math.max(0,t+2*u-a+1)}createNGrams(t,a,u,d,r,n){for(let o=0;o<r;++o){const p=this.getPadWidth(n),l=Math.max(0,p-o),s=Math.max(0,p-(r-(o+1))),e=n-(l+s),m=a+(l>0?0:o-p);let f=0;f+=l*this.leftPad.length;for(let k=0;k<e;++k)f+=t[m+k].length;f+=s*this.rightPad.length;const g=l+s+e-1;f+=g*this.separator.length,u[d+o]=new Uint8Array(f);const h=u[d+o];let b=0;const y=k=>k.forEach(I=>h[b++]=I);for(let k=0;k<l;++k)y(this.leftPad),y(this.separator);for(let k=0;k<e-1;++k)y(t[m+k]),y(this.separator);if(e>0){y(t[m+e-1]);for(let k=0;k<s;++k)y(this.separator),y(this.rightPad)}else{for(let k=0;k<s-1;++k)y(this.rightPad),y(this.separator);y(this.rightPad)}}}compute(t,a){const u=t.length,d=a.length;if(d>0){let p=a[0];if(p!==0)throw new Error(`First split value must be 0, got ${p}`);for(let l=1;l<d;++l){let s=a[l]>=p;if(s=s&&a[l]<=u,!s)throw new Error(`Invalid split value ${a[l]}, must be in [${p}, ${u}]`);p=a[l]}if(p!==u)throw new Error(`Last split value must be data size. Expected ${u}, got ${p}`)}const r=d-1,n=i.util.getArrayFromDType("int32",d);if(u===0||d===0){const p=new Array(u);for(let l=0;l<=r;++l)n[l]=0;return[p,n]}n[0]=0;for(let p=1;p<=r;++p){const l=a[p]-a[p-1];let s=0;this.nGramWidths.forEach(e=>{s+=this.getNumNGrams(l,e)}),this.preserveShort&&l>0&&s===0&&(s=1),n[p]=n[p-1]+s}const o=new Array(n[r]);for(let p=0;p<r;++p){const l=a[p];let s=n[p];if(this.nGramWidths.forEach(e=>{const m=a[p+1]-a[p],f=this.getNumNGrams(m,e);this.createNGrams(t,l,o,s,f,e),s+=f}),this.preserveShort&&s===n[p]){const e=a[p+1]-a[p];if(e===0)continue;const m=e+2*this.padWidth;this.createNGrams(t,l,o,s,1,m)}}return[o,n]}};function Is(t,a,u,d,r,n,o,p){return new ys(u,d,r,n,o,p).compute(t,a)}function ks(t,a,u,d){if(!t.length)return;if(a.length===0){for(let n=0;n<t.length;++n)d.push(t.subarray(n,n+1));return}if(a.length===1){const n=a[0];let o=t.indexOf(n);for(;o!==-1;){const p=t.subarray(0,o);(!u||p.length!==0)&&d.push(p),t=t.subarray(o+1),o=t.indexOf(n)}(!u||t.length!==0)&&d.push(t);return}let r=0;for(let n=0;n<t.length+1;n++)if(n===t.length||a.indexOf(t[n])!==-1){const o=t.subarray(r,n);(!u||o.length!==0)&&d.push(o),r=n+1}}function Ss(t,a,u){const d=t.length,r=[];let n=0,o=0;const p=new Array(d);for(let f=0;f<d;++f){const g=r.length;ks(t[f],a,u,r);const h=r.length-g;p[f]=h,n+=h,o=Math.max(o,h)}const l=i.util.getArrayFromDType("int32",n*2),s=new Array(n),e=[d,o];let m=0;for(let f=0;f<d;++f)for(let g=0;g<p[f];++g)l[m*2]=f,l[m*2+1]=g,s[m]=r[m],++m;return[l,s,e]}function Ms(t,a){const u=i.util.getArrayFromDType("int32",t.length);for(let d=0;d<t.length;++d)u[d]=i.util.fingerPrint64(t[d]).modulo(a).getLowBitsUnsigned();return u}function As(t,a,u,d){const r=i.util.parseAxisParam(a,u)[0],n=[1,u[0],1];for(let h=0;h<r;h++)n[0]*=u[h];n[1]=u[r];for(let h=r+1;h<u.length;h++)n[2]*=u[h];const o=new Map,p=new Int32Array(u[r]),l=new i.TensorBuffer(n,d,t),s=[],e=n[0]===1&&n[2]===1;for(let h=0;h<u[r];h++){let b;if(e)b=t[h].toString();else{const k=[];for(let I=0;I<n[0];I++)for(let M=0;M<n[2];M++)k.push(l.get(I,h,M));b=k.join(",")}const y=o.get(b);if(y!=null)p[h]=y;else{const k=o.size;o.set(b,k),p[h]=k,s.push(h)}}const m=n.slice();m[1]=o.size;const f=new i.TensorBuffer(m,d);s.forEach((h,b)=>{for(let y=0;y<n[0];y++)for(let k=0;k<n[2];k++)f.set(l.get(y,h,k),y,b,k)});const g=u.slice();return g[r]=m[1],{outputValues:f.values,outputShape:g,indices:p}}function De(t){const{inputs:{x:a},attrs:{begin:u,size:d},backend:r}=t,[n,o]=i.slice_util.parseSliceParams(a,u,d),p=i.slice_util.isSliceContinous(a.shape,n,o),l=r.readSync(a.dataId),s=r.makeOutput(o,a.dtype),e=i.util.computeStrides(a.shape),m=r.dataIdMap.get(s.dataId);if(p){const h=i.slice_util.computeFlatOffset(n,e);return a.dtype==="string"?m.stringBytes=l.slice(h,h+i.util.sizeFromShape(o)):r.typedArrayFromHeap(s).set(l.subarray(h,h+i.util.sizeFromShape(o))),s}if(a.dtype==="string")return m.stringBytes=Lr(l,n,o,a.shape,a.dtype),s;const f=r.typedArrayFromHeap(s),g=a.shape.length;if(g===2)xs(l,e[0],f,n,o);else if(g===3)Ds(l,e[0],e[1],f,n,o);else if(g===4)ws(l,e[0],e[1],e[2],f,n,o);else{const h=Lr(l,n,o,a.shape,a.dtype);f.set(h)}return s}function xs(t,a,u,d,r){let n=0;const o=d[0],p=d[1],l=o+r[0];for(let s=o;s<l;s++){const e=s*a+p;u.set(t.subarray(e,e+r[1]),n),n+=r[1]}}function Ds(t,a,u,d,r,n){let o=0;const p=r[0],l=r[1],s=r[2],e=p+n[0],m=l+n[1];for(let f=p;f<e;f++)for(let g=l;g<m;g++){const h=f*a+g*u+s;d.set(t.subarray(h,h+n[2]),o),o+=n[2]}}function ws(t,a,u,d,r,n,o){let p=0;const l=n[0],s=n[1],e=n[2],m=l+o[0],f=s+o[1],g=e+o[2],h=n[3];for(let b=l;b<m;b++)for(let y=s;y<f;y++)for(let k=e;k<g;k++){const I=b*a+y*u+k*d+h;r.set(t.subarray(I,I+o[3]),p),p+=o[3]}}var Fs={kernelName:i.Slice,backendName:"wasm",kernelFunc:De};function Ns(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{blockShape:n,crops:o}=d,p=n.reduce((k,I)=>k*I),l=i.backend_util.getReshaped(r.shape,n,p),s=i.backend_util.getPermuted(l.length,n.length),e=i.backend_util.getReshapedPermuted(r.shape,n,p),m=i.backend_util.getSliceBeginCoords(o,n.length),f=i.backend_util.getSliceSize(e,o,n.length),g=ue({inputs:{x:r},backend:u,attrs:{shape:l}}),h=Ie({inputs:{x:g},backend:u,attrs:{perm:s}}),b=ue({inputs:{x:h},backend:u,attrs:{shape:e}}),y=De({inputs:{x:b},backend:u,attrs:{begin:m,size:f}});return u.disposeData(g.dataId),u.disposeData(h.dataId),u.disposeData(b.dataId),y}var Cs={kernelName:i.BatchToSpaceND,backendName:"wasm",kernelFunc:Ns},Gr;function Rs(t){Gr=t.wasm.cwrap(i.Bincount,null,["number","number","boolean","number","number","number"])}function _s(t){const{backend:a,inputs:u,attrs:d}=t,{x:r,weights:n}=u,{size:o}=d,p=n.shape.reduce((m,f)=>m*f,1)!==0,l=r.shape.length===1?[o]:[r.shape[0],o],s=a.makeOutput(l,n.dtype);function e(m){return a.dataIdMap.get(m.dataId).id}return Gr(e(r),o,p,e(n),G[n.dtype],e(s)),s}var Ps={kernelName:i.Bincount,backendName:"wasm",setupFunc:Rs,kernelFunc:_s},Es=!0,Bs=Y(i.BitwiseAnd,Es);function Ts(t){const{inputs:a,backend:u}=t,{s0:d,s1:r}=a,n=u.typedArrayFromHeap(d),o=u.typedArrayFromHeap(r),p=i.backend_util.assertAndGetBroadcastShape(Array.from(n),Array.from(o));return u.makeOutput([p.length],"int32",void 0,new Int32Array(p))}var Os={kernelName:i.BroadcastArgs,backendName:"wasm",kernelFunc:Ts};function Se(t){const{inputs:{x:a},attrs:{dtype:u},backend:d}=t,r=d.makeOutput(a.shape,u),n=d.typedArrayFromHeap(a);return d.typedArrayFromHeap(r).set(n),r}var Ws={kernelName:i.Cast,backendName:"wasm",kernelFunc:Se},zs=W(i.Ceil),$r;function Hs(t){$r=t.wasm.cwrap(i.ClipByValue,null,["number","number","number","number"])}function Ls(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{clipValueMin:n,clipValueMax:o}=d,p=u.dataIdMap.get(r.dataId).id,l=u.makeOutput(r.shape,r.dtype),s=u.dataIdMap.get(l.dataId).id;return $r(p,n,o,s),l}var Gs={kernelName:i.ClipByValue,backendName:"wasm",setupFunc:Hs,kernelFunc:Ls};function Vr(t){const{inputs:a,backend:u}=t,d=i.util.parseAxisParam(t.attrs.axis,a[0].shape)[0],r=a.map(g=>g.shape);i.backend_util.assertParamsConsistent(r,d);let n=i.backend_util.computeOutShape(a.map(g=>g.shape),d);const o=a.filter(g=>i.util.sizeFromShape(g.shape)>0);if(o.length===1)return on({inputs:{x:o[0]},backend:u});const p=u.makeOutput(n,a[0].dtype);if(i.util.sizeFromShape(n)===0)return p;if(o[0].dtype==="string"){const g=o.map(I=>{const M=[-1,i.util.sizeFromShape(I.shape.slice(d))];return ue({inputs:{x:I},backend:u,attrs:{shape:M}})}),h=g.map(I=>({vals:u.readSync(I.dataId),shape:I.shape}));n=i.backend_util.computeOutShape(g.map(I=>I.shape),1);const b=g[0].shape[0]===1,y=bs(h,n,a[0].dtype,b);p.shape=i.backend_util.computeOutShape(o.map(I=>I.shape),d);const k=u.dataIdMap.get(p.dataId);return k.stringBytes=i.backend_util.fromStringArrayToUint8(y),g.forEach(I=>u.disposeData(I.dataId)),p}const l=i.util.sizeFromShape(o[0].shape.slice(0,d));let s=0;const e=o.map(g=>{const h=i.util.sizeFromShape(g.shape.slice(d));return s+=h,h}),m=o.map(g=>u.typedArrayFromHeap(g)),f=u.typedArrayFromHeap(p);for(let g=0;g<l;g++){let h=g*s;for(let b=0;b<m.length;b++){const y=e[b],k=g*y,I=m[b].subarray(k,k+y);f.set(I,h),h+=y}}return p}var $s={kernelName:i.Concat,backendName:"wasm",kernelFunc:Vr},Ur;function Vs(t){Ur=t.wasm.cwrap(i.Conv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Us(t){const{inputs:a,attrs:u,backend:d}=t,{x:r,filter:n}=a,o=d.dataIdMap.get(r.dataId).id,p=d.dataIdMap.get(n.dataId).id,{strides:l,dilations:s,pad:e,dimRoundingMode:m,dataFormat:f}=u,g=i.backend_util.convertConv2DDataFormat(f),h=i.backend_util.computeConv2DInfo(r.shape,n.shape,l,s,e,m,!1,g),b=h.filterHeight,y=h.filterWidth,k=h.padInfo.top,I=h.padInfo.right,M=h.padInfo.bottom,D=h.padInfo.left,F=h.dilationHeight,E=h.dilationWidth,O=h.strideHeight,B=h.strideWidth,K=h.inChannels,X=h.outChannels,U=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend Conv2D does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);const q=d.makeOutput(h.outShape,"float32"),Z=d.dataIdMap.get(q.dataId).id;return Ur(o,r.shape[0],r.shape[1],r.shape[2],p,b,y,k,I,M,D,U,F,E,O,B,K,X,Z),q}var qs={kernelName:i.Conv2D,backendName:"wasm",setupFunc:Vs,kernelFunc:Us},qr;function Ks(t){qr=t.wasm.cwrap(i.Conv2DBackpropInput,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Xs(t){const{backend:a,inputs:u,attrs:d}=t,{dy:r,filter:n}=u,{strides:o,pad:p,dataFormat:l,dimRoundingMode:s,inputShape:e}=d,m=1,f=i.backend_util.convertConv2DDataFormat(l),g=i.backend_util.computeConv2DInfo(e,n.shape,o,m,p,s,!1,f),{batchSize:h,filterHeight:b,filterWidth:y,inChannels:k,inHeight:I,inWidth:M,outChannels:D,outHeight:F,outWidth:E,strideHeight:O,strideWidth:B}=g,K=b-1-g.padInfo.top,X=y-1-g.padInfo.left,U=g.dataFormat==="channelsLast",q=i.util.computeStrides(g.inShape),Z=i.util.computeStrides(r.shape),[ie,le,Q]=i.util.computeStrides(n.shape),j=q[0],ge=U?q[1]:q[2],$=U?q[2]:1,ce=U?1:q[1],me=Z[0],se=U?Z[1]:Z[2],ee=U?Z[2]:1,Te=U?1:Z[1],Fe=a.makeOutput(g.inShape,"float32"),Oe=a.dataIdMap.get(Fe.dataId).id,Je=a.dataIdMap.get(r.dataId).id,Qe=a.dataIdMap.get(n.dataId).id;return qr(Je,Qe,h,b,y,I,M,k,F,E,D,O,B,K,X,ie,le,Q,j,ge,$,ce,me,se,ee,Te,Oe),Fe}var Js={kernelName:i.Conv2DBackpropInput,backendName:"wasm",setupFunc:Ks,kernelFunc:Xs},Kr;function Qs(t){Kr=t.wasm.cwrap(i.Conv3D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Ys(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,filter:n}=a,{strides:o,pad:p,dilations:l}=d;if(r.dtype!=="float32")throw new Error(`Tensor x must have dtype float32, got ${r.dtype}`);if(n.dtype!=="float32")throw new Error(`Tensor filter must have dtype float32, got ${n.dtype}`);const s=i.backend_util.computeConv3DInfo(r.shape,n.shape,o,l,p),e=u.makeOutput(s.outShape,r.dtype);return Kr(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(e.dataId).id,s.batchSize,s.inDepth,s.inHeight,s.inWidth,s.inChannels,s.outDepth,s.outHeight,s.outWidth,s.outChannels,s.strideDepth,s.strideHeight,s.strideWidth,s.dilationDepth,s.dilationHeight,s.dilationWidth,s.filterDepth,s.filterHeight,s.filterWidth,s.padInfo.front,s.padInfo.top,s.padInfo.left),e}var Zs={kernelName:i.Conv3D,backendName:"wasm",setupFunc:Qs,kernelFunc:Ys},Xr;function js(t){Xr=t.wasm.cwrap(i.Conv3DBackpropFilterV2,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ed(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,dy:n}=a,{strides:o,pad:p,filterShape:l}=d;if(r.dtype!=="float32")throw new Error(`Tensor dy must have dtype float32, got ${r.dtype}`);if(n.dtype!=="float32")throw new Error(`Tensor filter must have dtype float32, got ${n.dtype}`);const s=i.backend_util.computeConv3DInfo(r.shape,l,o,1,p),e=u.makeOutput(s.filterShape,n.dtype);return Xr(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(e.dataId).id,s.batchSize,s.inDepth,s.inHeight,s.inWidth,s.inChannels,s.outDepth,s.outHeight,s.outWidth,s.outChannels,s.strideDepth,s.strideHeight,s.strideWidth,s.dilationDepth,s.dilationHeight,s.dilationWidth,s.filterDepth,s.filterHeight,s.filterWidth,s.padInfo.front,s.padInfo.top,s.padInfo.left),e}var nd={kernelName:i.Conv3DBackpropFilterV2,backendName:"wasm",setupFunc:js,kernelFunc:ed},Jr;function td(t){Jr=t.wasm.cwrap(i.Conv3DBackpropInputV2,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ad(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,filter:n}=a,{pad:o,strides:p,inputShape:l}=d;if(r.dtype!=="float32")throw new Error(`Tensor dy must have dtype float32, got ${r.dtype}`);if(n.dtype!=="float32")throw new Error(`Tensor filter must have dtype float32, got ${n.dtype}`);const s=i.backend_util.computeConv3DInfo(l,n.shape,p,1,o),e=u.makeOutput(s.inShape,r.dtype);return Jr(u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(e.dataId).id,s.batchSize,s.inDepth,s.inHeight,s.inWidth,s.inChannels,s.outDepth,s.outHeight,s.outWidth,s.outChannels,s.strideDepth,s.strideHeight,s.strideWidth,s.dilationDepth,s.dilationHeight,s.dilationWidth,s.filterDepth,s.filterHeight,s.filterWidth,s.padInfo.front,s.padInfo.top,s.padInfo.left),e}var rd={kernelName:i.Conv3DBackpropInputV2,backendName:"wasm",setupFunc:td,kernelFunc:ad},ud=W(i.Cos),id=W(i.Cosh),Un;(function(t){t[t.bilinear=0]="bilinear",t[t.nearest=1]="nearest"})(Un||(Un={}));var Qr;function sd(t){Qr=t.wasm.cwrap(i.CropAndResize,null,["number","number","number","number","array","number","number","number","number","number"])}function dd(t){const{backend:a,inputs:u,attrs:d}=t,{method:r,extrapolationValue:n,cropSize:o}=d,{image:p,boxes:l,boxInd:s}=u,e=l.shape[0],[m,f]=o,g=[e,m,f,p.shape[3]];let h=a.dataIdMap.get(p.dataId),b;p.dtype!=="float32"&&(b=Se({backend:a,inputs:{x:p},attrs:{dtype:"float32"}}),h=a.dataIdMap.get(b.dataId));const y=h.id,k=a.dataIdMap.get(l.dataId).id,I=a.dataIdMap.get(s.dataId).id,M=a.makeOutput(g,"float32"),D=a.dataIdMap.get(M.dataId).id,F=new Uint8Array(new Int32Array(p.shape).buffer);return Qr(y,k,I,e,F,m,f,Un[r],n,D),b!=null&&a.disposeData(b.dataId),M}var od={kernelName:i.CropAndResize,backendName:"wasm",setupFunc:sd,kernelFunc:dd},Yr;function pd(t){Yr=t.wasm.cwrap(i.Cumprod,null,["number","number","number","number","number","number"])}function ld(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{axis:n,exclusive:o,reverse:p}=d,l=r.shape.length;i.util.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumprod does not support ${r.dtype} tensors in the WASM backend`);const s=i.backend_util.getAxesPermutation([n],l);let e=r;s!==null&&(e=Ie({inputs:{x:r},attrs:{perm:s},backend:u}));const m=i.backend_util.getInnerMostAxes(1,l)[0];i.backend_util.assertAxesAreInnerMostDims("cumprod",[m],l);const f=u.makeOutput(e.shape,e.dtype),g=e.shape[m],h=u.dataIdMap.get(e.dataId).id,b=u.dataIdMap.get(f.dataId).id;Yr(h,o?1:0,p?1:0,g,b,G[r.dtype]);let y=f;if(s!==null){const k=i.backend_util.getUndoAxesPermutation(s);y=Ie({inputs:{x:f},attrs:{perm:k},backend:u}),u.disposeData(e.dataId),u.disposeData(f.dataId)}return y}var cd={kernelName:i.Cumprod,backendName:"wasm",setupFunc:pd,kernelFunc:ld},Zr;function md(t){Zr=t.wasm.cwrap(i.Cumsum,null,["number","number","number","number","number","number"])}function hd(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{axis:n,exclusive:o,reverse:p}=d,l=r.shape.length;i.util.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);const s=i.backend_util.getAxesPermutation([n],l);let e=r;s!==null&&(e=Ie({inputs:{x:r},attrs:{perm:s},backend:u}));const m=i.backend_util.getInnerMostAxes(1,l)[0];i.backend_util.assertAxesAreInnerMostDims("cumsum",[m],l);const f=u.makeOutput(e.shape,e.dtype),g=e.shape[m],h=u.dataIdMap.get(e.dataId).id,b=u.dataIdMap.get(f.dataId).id;Zr(h,o?1:0,p?1:0,g,b,G[r.dtype]);let y=f;if(s!==null){const k=i.backend_util.getUndoAxesPermutation(s);y=Ie({inputs:{x:f},attrs:{perm:k},backend:u}),u.disposeData(e.dataId),u.disposeData(f.dataId)}return y}var gd={kernelName:i.Cumsum,backendName:"wasm",setupFunc:md,kernelFunc:hd},jr;function fd(t){jr=t.wasm.cwrap("DenseBincount",null,["number","array","number","number","boolean","number","number","boolean","number"])}function bd(t){const{backend:a,inputs:u,attrs:d}=t,{x:r,weights:n}=u,{size:o,binaryOutput:p}=d,l=n.shape.reduce((f,g)=>f*g,1)!==0,s=r.shape.length===1?[o]:[r.shape[0],o],e=a.makeOutput(s,n.dtype);function m(f){return a.dataIdMap.get(f.dataId).id}return jr(m(r),new Uint8Array(new Int32Array(r.shape).buffer),r.shape.length,o,l,m(n),G[n.dtype],p,m(e)),e}var vd={kernelName:i.DenseBincount,backendName:"wasm",setupFunc:fd,kernelFunc:bd},eu;function yd(t){eu=t.wasm.cwrap(i.DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function Id(t){const{backend:a,inputs:u,attrs:d}=t,{x:r}=u,{blockSize:n,dataFormat:o}=d,p=r.shape[0],l=o==="NHWC"?r.shape[1]:r.shape[2],s=o==="NHWC"?r.shape[2]:r.shape[3],e=o==="NHWC"?r.shape[3]:r.shape[1],m=l*n,f=s*n,g=e/(n*n),h=o==="NHWC"?[p,m,f,g]:[p,g,m,f],b=a.makeOutput(h,"float32"),y=a.dataIdMap.get(r.dataId).id,k=new Uint8Array(new Int32Array(i.util.computeStrides(r.shape)).buffer),I=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(i.util.computeStrides(h)).buffer),D=a.dataIdMap.get(b.dataId).id;return eu(y,n,o==="NHWC"?1:0,k,r.shape.length-1,I,M,h.length,D),b}var kd={kernelName:i.DepthToSpace,backendName:"wasm",setupFunc:yd,kernelFunc:Id},nu;function Sd(t){nu=t.wasm.cwrap(i.DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Md(t){const{inputs:a,attrs:u,backend:d}=t,{x:r,filter:n}=a,o=d.dataIdMap.get(r.dataId).id,p=d.dataIdMap.get(n.dataId).id,{strides:l,dilations:s,pad:e,dimRoundingMode:m}=u,f=s??[1,1],g=i.backend_util.computeConv2DInfo(r.shape,n.shape,l,f,e,m,!0),h=g.filterHeight,b=g.filterWidth,y=g.padInfo.top,k=g.padInfo.right,I=g.padInfo.bottom,M=g.padInfo.left,D=g.dilationHeight,F=g.dilationWidth,E=g.strideHeight,O=g.strideWidth,B=g.inChannels,K=g.outChannels,X=g.padInfo.type==="SAME"?1:0;if(g.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${g.dataFormat}'. Please use 'channelsLast'.`);const U=d.makeOutput(g.outShape,"float32"),q=d.dataIdMap.get(U.dataId).id;return nu(o,r.shape[0],r.shape[1],r.shape[2],p,h,b,y,k,I,M,X,D,F,E,O,B,K,q),U}var Ad={kernelName:i.DepthwiseConv2dNative,backendName:"wasm",setupFunc:Sd,kernelFunc:Md},tu;function xd(t){tu=t.wasm.cwrap("Diag",null,["number","number","number","number"])}function Dd(t){const{inputs:a,backend:u}=t,{x:d}=a,r=i.util.sizeFromShape(d.shape),n=u.makeOutput([...d.shape,...d.shape],d.dtype);return tu(u.dataIdMap.get(d.dataId).id,G[d.dtype],r,u.dataIdMap.get(n.dataId).id),n}var wd={kernelName:i.Diag,backendName:"wasm",setupFunc:xd,kernelFunc:Dd},au;function Fd(t){au=t.wasm.cwrap(i.Dilation2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Nd(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,filter:n}=a,{strides:o,pad:p,dilations:l}=d;if(r.dtype!==n.dtype)throw new Error(`Dilation2D error: x must have the same dtype as filter. Got ${r.dtype} and ${n.dtype}`);const s=i.backend_util.computeDilation2DInfo(r.shape,n.shape,o,p,"NHWC",l),e=u.makeOutput(s.outShape,r.dtype);return au(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(e.dataId).id,G[r.dtype],s.batchSize,s.inChannels,s.inHeight,s.inWidth,s.outHeight,s.outWidth,s.strideHeight,s.strideWidth,s.dilationHeight,s.dilationWidth,s.filterHeight,s.filterWidth,s.padInfo.top,s.padInfo.left),e}var Cd={kernelName:i.Dilation2D,backendName:"wasm",setupFunc:Fd,kernelFunc:Nd},ru;function Rd(t){ru=t.wasm.cwrap(i.Dilation2DBackpropFilter,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function _d(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,filter:n,dy:o}=a,{strides:p,pad:l,dilations:s}=d;if(r.dtype!==n.dtype||r.dtype!==o.dtype)throw new Error(`Dilation2DBackpropFilter error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${n.dtype}, and ${o.dtype}`);const e=i.backend_util.computeDilation2DInfo(r.shape,n.shape,p,l,"NHWC",s),m=u.makeOutput(n.shape,n.dtype);return ru(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(o.dataId).id,u.dataIdMap.get(m.dataId).id,G[r.dtype],e.batchSize,e.inChannels,e.inHeight,e.inWidth,e.outHeight,e.outWidth,e.strideHeight,e.strideWidth,e.dilationHeight,e.dilationWidth,e.filterHeight,e.filterWidth,e.padInfo.top,e.padInfo.left),m}var Pd={kernelName:i.Dilation2DBackpropFilter,backendName:"wasm",setupFunc:Rd,kernelFunc:_d},uu;function Ed(t){uu=t.wasm.cwrap(i.Dilation2DBackpropInput,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Bd(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,filter:n,dy:o}=a,{strides:p,pad:l,dilations:s}=d;if(r.dtype!==n.dtype||r.dtype!==o.dtype)throw new Error(`Dilation2DBackpropInput error: x must have the same dtype as filter and dy. Got ${r.dtype}, ${n.dtype}, and ${o.dtype}`);const e=i.backend_util.computeDilation2DInfo(r.shape,n.shape,p,l,"NHWC",s),m=u.makeOutput(r.shape,r.dtype);return uu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(o.dataId).id,u.dataIdMap.get(m.dataId).id,G[r.dtype],e.batchSize,e.inChannels,e.inHeight,e.inWidth,e.outHeight,e.outWidth,e.strideHeight,e.strideWidth,e.dilationHeight,e.dilationWidth,e.filterHeight,e.filterWidth,e.padInfo.top,e.padInfo.left),m}var Td={kernelName:i.Dilation2DBackpropInput,backendName:"wasm",setupFunc:Ed,kernelFunc:Bd},Od=W(i.Elu),iu;function Wd(t){iu=t.wasm.cwrap(i.EluGrad,null,["number","number","number"])}function zd(t){const{inputs:a,backend:u}=t,{dy:d,y:r}=a,n=u.makeOutput(r.shape,"float32"),o=p=>u.dataIdMap.get(p.dataId).id;return iu(o(r),o(d),o(n)),n}var Hd={kernelName:i.EluGrad,backendName:"wasm",setupFunc:Wd,kernelFunc:zd},Ld=!1,Gd=Y(i.Equal,Ld,"bool"),$d=W(i.Erf),Vd=W(i.Exp,"float32");function qn(t){const{inputs:a,attrs:u,backend:d}=t,{input:r}=a,{dim:n}=u,o=r.shape.length,p=r.shape.slice();let l=n;return n<0&&(i.util.assert(-(o+1)<=n,()=>`Axis must be in the interval [${-(o+1)}, ${o}]`),l=o+n+1),p.splice(l,0,1),ue({inputs:{x:r},backend:d,attrs:{shape:p}})}var Ud={kernelName:i.ExpandDims,backendName:"wasm",kernelFunc:qn},qd=W(i.Expm1,"float32");function su(t){const{attrs:{shape:a,value:u},backend:d}=t;let{attrs:{dtype:r}}=t;r=r||i.util.inferDtype(u);const n=d.makeOutput(a,r);return d.typedArrayFromHeap(n).fill(u),n}var Kd={kernelName:i.Fill,backendName:"wasm",kernelFunc:su},du;function Xd(t){du=t.wasm.cwrap(i.FlipLeftRight,null,["number","number","number","number","number","number"])}function Jd(t){const{inputs:a,backend:u}=t,{image:d}=a,r=u.makeOutput(d.shape,d.dtype),n=u.dataIdMap.get(d.dataId).id,o=u.dataIdMap.get(r.dataId).id,[p,l,s,e]=d.shape;return du(n,p,l,s,e,o),r}var Qd={kernelName:i.FlipLeftRight,backendName:"wasm",kernelFunc:Jd,setupFunc:Xd},Yd=W(i.Floor),Zd=!1,jd=Y(i.FloorDiv,Zd),ou;function eo(t){ou=t.wasm.cwrap(i.FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function no(t){const{backend:a,inputs:u,attrs:d}=t,{varianceEpsilon:r}=d,{x:n,mean:o,variance:p,offset:l,scale:s}=u,e=a.dataIdMap.get(n.dataId).id,m=a.dataIdMap.get(o.dataId).id,f=a.dataIdMap.get(p.dataId).id,g=l!=null?a.dataIdMap.get(l.dataId).id:0,h=s!=null?a.dataIdMap.get(s.dataId).id:0,b=a.makeOutput(n.shape,n.dtype);if(i.util.sizeFromShape(n.shape)===0)return b;const y=a.dataIdMap.get(b.dataId).id;return ou(e,m,f,g,h,r,y),b}var to={kernelName:i.FusedBatchNorm,backendName:"wasm",setupFunc:eo,kernelFunc:no},pu;function ao(t){pu=t.wasm.cwrap(i.FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ro(t){const{inputs:a,attrs:u,backend:d}=t,{x:r,filter:n,bias:o,preluActivationWeights:p}=a,{strides:l,pad:s,dilations:e,dataFormat:m,dimRoundingMode:f,activation:g,leakyreluAlpha:h}=u,b=i.backend_util.computeConv2DInfo(r.shape,n.shape,l,e,s,f),y=qe[g];if(y==null)throw new Error(`${g} activation not yet supported for FusedConv2D in the wasm backend.`);const k=d.dataIdMap.get(r.dataId).id,I=d.dataIdMap.get(n.dataId).id,M=b.outChannels;let D=0;if(o!=null){const ee=d.dataIdMap.get(o.dataId);if(ee.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);if(ee.shape[0]!==M)throw new Error(`FusedConv2D bias shape (${ee.shape}) does not match the number of output channels (${M})`);D=ee.id}const F=b.filterHeight,E=b.filterWidth,O=b.padInfo.top,B=b.padInfo.right,K=b.padInfo.bottom,X=b.padInfo.left,U=b.dilationHeight,q=b.dilationWidth,Z=b.strideHeight,ie=b.strideWidth,le=b.inChannels,Q=b.padInfo.type==="SAME"?1:0,j=b.batchSize,ge=b.inHeight,$=b.inWidth;if(m!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${m}'. Please use 'NHWC'.`);const ce=d.makeOutput(b.outShape,"float32"),me=d.dataIdMap.get(ce.dataId).id,se=p==null?0:d.dataIdMap.get(p.dataId).id;return pu(k,j,ge,$,I,F,E,D,O,B,K,X,Q,U,q,Z,ie,le,M,y,se,h||0,me),ce}var uo={kernelName:i.FusedConv2D,backendName:"wasm",setupFunc:ao,kernelFunc:ro},lu;function io(t){lu=t.wasm.cwrap(i.FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function so(t){const{inputs:a,attrs:u,backend:d}=t,{x:r,filter:n,bias:o,preluActivationWeights:p}=a,{strides:l,pad:s,dilations:e,dataFormat:m,dimRoundingMode:f,activation:g,leakyreluAlpha:h}=u,b=i.backend_util.computeConv2DInfo(r.shape,n.shape,l,e,s,f,!0),y=qe[g];if(y==null)throw new Error(`${g} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);const k=d.dataIdMap.get(r.dataId).id,I=d.dataIdMap.get(n.dataId).id,M=b.outChannels;let D=0;if(o!=null){const ee=d.dataIdMap.get(o.dataId);if(ee.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ee.shape.length}.`);if(ee.shape[0]!==M)throw new Error(`FusedDepthwiseConv2D bias shape (${ee.shape}) does not match the number of output channels (${M})`);D=ee.id}const F=b.filterHeight,E=b.filterWidth,O=b.padInfo.top,B=b.padInfo.right,K=b.padInfo.bottom,X=b.padInfo.left,U=b.dilationHeight,q=b.dilationWidth,Z=b.strideHeight,ie=b.strideWidth,le=b.inChannels,Q=b.padInfo.type==="SAME"?1:0,j=b.batchSize,ge=b.inHeight,$=b.inWidth;if(m!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${m}'. Please use 'NHWC'.`);const ce=d.makeOutput(b.outShape,"float32"),me=d.dataIdMap.get(ce.dataId).id,se=p==null?0:d.dataIdMap.get(p.dataId).id;return lu(k,j,ge,$,I,F,E,D,O,B,K,X,Q,U,q,Z,ie,le,M,y,se,h||0,me),ce}var oo={kernelName:i.FusedDepthwiseConv2D,backendName:"wasm",setupFunc:io,kernelFunc:so},cu;function po(t){cu=t.wasm.cwrap(i.GatherNd,null,["number","number","number","number","number","number","array","number"])}function lo(t){const{backend:a,inputs:u}=t,{params:d,indices:r}=u,[n,o,p,l]=i.gather_util.prepareAndValidate(d,r),s=a.makeOutput(n,d.dtype);if(o===0)return s;const e=r.shape,m=e[e.length-1],f=a.dataIdMap.get(d.dataId).id,g=a.dataIdMap.get(r.dataId).id,h=new Uint8Array(new Int32Array(l).buffer),b=a.dataIdMap.get(s.dataId).id;return cu(f,G[d.dtype],g,o,m,p,h,b),s}var co={kernelName:i.GatherNd,backendName:"wasm",setupFunc:po,kernelFunc:lo},mu;function mo(t){mu=t.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function ho(t){const{backend:a,inputs:u,attrs:d}=t,{x:r,indices:n}=u,{axis:o,batchDims:p}=d,l=i.util.parseAxisParam(o,r.shape)[0],s=a.readSync(n.dataId),e=r.shape[l];for(let O=0;O<s.length;++O){const B=s[O];i.util.assert(B<=e-1&&B>=0,()=>`GatherV2: the index value ${B} is not in [0, ${e-1}]`)}const m=i.backend_util.segment_util.collectGatherOpShapeInfo(r,n,l,p),f=ue({inputs:{x:r},attrs:{shape:[m.batchSize,m.outerSize,m.dimSize,m.sliceSize]},backend:a}),g=i.util.sizeFromShape(n.shape),h=ue({inputs:{x:n},attrs:{shape:[m.batchSize,g/m.batchSize]},backend:a}),b=[m.batchSize,m.outerSize,g/m.batchSize,m.sliceSize],y=a.makeOutput(b,r.dtype);if(i.util.sizeFromShape(r.shape)===0)return y;const k=f.shape.length-1,I=a.dataIdMap.get(f.dataId).id,M=a.dataIdMap.get(h.dataId).id,D=a.dataIdMap.get(y.dataId).id,F=new Uint8Array(new Int32Array(i.util.computeStrides(f.shape)).buffer),E=new Uint8Array(new Int32Array(i.util.computeStrides(b)).buffer);return mu(I,G[r.dtype],F,k,M,m.batchSize,E,D),a.disposeData(f.dataId),a.disposeData(h.dataId),y.shape=m.outputShape,y}var go={kernelName:i.GatherV2,backendName:"wasm",setupFunc:mo,kernelFunc:ho},fo=!1,bo=Y(i.Greater,fo,"bool"),vo=!1,yo=Y(i.GreaterEqual,vo,"bool"),Io=W(i.IsFinite,"bool"),ko=W(i.IsInf,"bool"),So=W(i.IsNan,"bool"),hu;function Mo(t){hu=t.wasm.cwrap(i.LeakyRelu,null,["number","number","number","number"])}function Ao(t){const{inputs:{x:a},attrs:{alpha:u},backend:d}=t,r=d.dataIdMap.get(a.dataId).id,n=d.makeOutput(a.shape,"float32");if(i.util.sizeFromShape(a.shape)!==0){const o=d.dataIdMap.get(n.dataId).id;hu(r,G[a.dtype],u,o)}return n}var xo={kernelName:i.LeakyRelu,backendName:"wasm",setupFunc:Mo,kernelFunc:Ao},Do=!1,wo=Y(i.Less,Do,"bool"),Fo=!1,No=Y(i.LessEqual,Fo,"bool"),gu;function Co(t){gu=t.wasm.cwrap(i.LinSpace,null,["number","number","number","number"])}function Ro(t){const{attrs:a,backend:u}=t,{start:d,stop:r,num:n}=a,o=Math.floor(n),p=u.makeOutput([o],"float32");return gu(u.dataIdMap.get(p.dataId).id,d,r,o),p}var _o={kernelName:i.LinSpace,backendName:"wasm",setupFunc:Co,kernelFunc:Ro},Po=W(i.Log),Eo=W(i.Log1p),Bo=!1,To=Y(i.LogicalAnd,Bo,"bool"),Oo=W(i.LogicalNot),Wo=!1,zo=Y(i.LogicalOr,Wo,"bool"),Ho=!1,Lo=Y(i.LogicalXor,Ho,"bool"),fu;function Go(t){fu=t.wasm.cwrap(i.LRN,null,["number","number","number","number","number","number","number"])}function $o(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{depthRadius:n,bias:o,alpha:p,beta:l}=d;if(r.dtype!=="float32")throw new Error("LRN error: x must have dtype float32");const s=u.makeOutput(r.shape,r.dtype);return fu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(s.dataId).id,r.shape[3],n,o,p,l),s}var Vo={kernelName:i.LRN,backendName:"wasm",setupFunc:Go,kernelFunc:$o},bu;function Uo(t){bu=t.wasm.cwrap(i.LRNGrad,null,["number","number","number","number","number","number","number","number","number"])}function qo(t){const{inputs:a,backend:u,attrs:d}=t,{x:r,y:n,dy:o}=a,{depthRadius:p,bias:l,alpha:s,beta:e}=d;if(r.dtype!=="float32"||n.dtype!=="float32"||o.dtype!=="float32")throw new Error("LRNGrad error: x, y, and dy must have dtype float32");const m=u.makeOutput(r.shape,r.dtype);return bu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(o.dataId).id,u.dataIdMap.get(m.dataId).id,o.shape[3],p,l,s,e),m}var Ko={kernelName:i.LRNGrad,backendName:"wasm",setupFunc:Uo,kernelFunc:qo},vu;function Xo(t){vu=t.wasm.cwrap(i.Max,null,["number","number","number","number"])}function Jo(t){const{backend:a,inputs:u,attrs:d}=t,{reductionIndices:r,keepDims:n}=d,{x:o}=u;let p=a.dataIdMap.get(o.dataId).id,l=o;const{transposed:s,axes:e,originalAxes:m,inputWasTransposed:f}=ke(o,r,a);if(f){const I=a.dataIdMap.get(s.dataId).id;l=s,p=I}const g=l.shape.length;i.backend_util.assertAxesAreInnerMostDims("max",e,g);const[h,b]=i.backend_util.computeOutAndReduceShapes(l.shape,e),y=i.util.sizeFromShape(b),k=a.makeOutput(h,o.dtype);if(i.util.sizeFromShape(l.shape)!==0){const I=a.dataIdMap.get(k.dataId).id;vu(p,G[o.dtype],y,I)}return f&&a.disposeData(s.dataId),n&&(k.shape=i.backend_util.expandShapeToKeepDim(k.shape,m)),k}var Qo={kernelName:i.Max,backendName:"wasm",setupFunc:Xo,kernelFunc:Jo},Yo=!1,Zo=Y(i.Maximum,Yo),yu;function jo(t){yu=t.wasm.cwrap(i.MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ep(t){const{inputs:a,attrs:u,backend:d}=t,r=a.x,n=d.dataIdMap.get(r.dataId).id;i.util.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);const{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=u,e=i.backend_util.computePool2DInfo(r.shape,o,p,1,l,s),m=e.filterHeight,f=e.filterWidth,g=e.padInfo.top,h=e.padInfo.right,b=e.padInfo.bottom,y=e.padInfo.left,k=e.dilationHeight,I=e.dilationWidth,M=e.strideHeight,D=e.strideWidth,F=e.inChannels,E=e.outChannels;if(e.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${e.dataFormat}'. Please use 'channelsLast'.`);const O=d.makeOutput(e.outShape,"float32"),B=d.dataIdMap.get(O.dataId).id;return yu(n,r.shape[0],r.shape[1],r.shape[2],m,f,g,h,b,y,k,I,M,D,F,E,B),O}var np={kernelName:i.MaxPool,backendName:"wasm",setupFunc:jo,kernelFunc:ep},Iu;function tp(t){Iu=t.wasm.cwrap("MaxPool3D",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ap(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{filterSize:n,strides:o,pad:p,dimRoundingMode:l,dataFormat:s}=d,e=i.backend_util.computePool3DInfo(r.shape,n,o,1,p,l,s),m=u.makeOutput(e.outShape,r.dtype);return Iu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inDepth,e.inHeight,e.inWidth,e.outDepth,e.outHeight,e.outWidth,e.strideDepth,e.strideHeight,e.strideWidth,e.dilationDepth,e.dilationHeight,e.dilationWidth,e.effectiveFilterDepth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.front,e.padInfo.top,e.padInfo.left),m}var rp={kernelName:i.MaxPool3D,backendName:"wasm",setupFunc:tp,kernelFunc:ap},ku;function up(t){ku=t.wasm.cwrap("MaxPool3DGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ip(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,input:n}=a,{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=d,e=i.backend_util.computePool3DInfo(n.shape,o,p,1,l,s),m=u.makeOutput(n.shape,n.dtype);return ku(u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inDepth,e.inHeight,e.inWidth,e.outDepth,e.outHeight,e.outWidth,e.strideDepth,e.strideHeight,e.strideWidth,e.dilationDepth,e.dilationHeight,e.dilationWidth,e.effectiveFilterDepth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.front,e.padInfo.top,e.padInfo.left),m}var sp={kernelName:i.MaxPool3DGrad,backendName:"wasm",setupFunc:up,kernelFunc:ip},Su;function dp(t){Su=t.wasm.cwrap("MaxPoolGrad",null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function op(t){const{inputs:a,backend:u,attrs:d}=t,{dy:r,input:n}=a,{filterSize:o,strides:p,pad:l,dimRoundingMode:s}=d,e=i.backend_util.computePool2DInfo(n.shape,o,p,1,l,s),m=u.makeOutput(n.shape,n.dtype);return Su(u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,e.batchSize,e.inChannels,e.inHeight,e.inWidth,e.outHeight,e.outWidth,e.strideHeight,e.strideWidth,e.dilationHeight,e.dilationWidth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.top,e.padInfo.left),m}var pp={kernelName:i.MaxPoolGrad,backendName:"wasm",setupFunc:dp,kernelFunc:op},Mu;function lp(t){Mu=t.wasm.cwrap("MaxPoolWithArgmax",null,["number","number","number","number","boolean","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function cp(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{filterSize:n,strides:o,pad:p,includeBatchInIndex:l}=d;i.util.assert(r.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`);const s=[1,1];i.util.assert(i.backend_util.eitherStridesOrDilationsAreOne(o,s),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${s}'`);const e=i.backend_util.computePool2DInfo(r.shape,n,o,[1,1],p),m=u.makeOutput(e.outShape,r.dtype),f=u.makeOutput(e.outShape,"int32");return Mu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(m.dataId).id,u.dataIdMap.get(f.dataId).id,G[r.dtype],l,e.batchSize,e.inChannels,e.inHeight,e.inWidth,e.outHeight,e.outWidth,e.strideHeight,e.strideWidth,e.dilationHeight,e.dilationWidth,e.effectiveFilterHeight,e.effectiveFilterWidth,e.padInfo.top,e.padInfo.left),[m,f]}var mp={kernelName:i.MaxPoolWithArgmax,backendName:"wasm",setupFunc:lp,kernelFunc:cp},Au;function hp(t){Au=t.wasm.cwrap(i.Mean,null,["number, number, number"])}function gp(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u,p=a.dataIdMap.get(o.dataId).id;let l=p,s=o;const{transposed:e,axes:m,originalAxes:f,inputWasTransposed:g}=ke(o,r,a);let h=m;if(g){const D=a.dataIdMap.get(e.dataId).id;D!==p&&(s=e,l=D,h=i.backend_util.getInnerMostAxes(h.length,s.shape.length))}i.backend_util.assertAxesAreInnerMostDims("mean",h,s.shape.length);const[b,y]=i.backend_util.computeOutAndReduceShapes(s.shape,h),k=i.util.sizeFromShape(y);let I=s;s.dtype!=="float32"&&(I=Se({backend:a,inputs:{x:s},attrs:{dtype:"float32"}}),l=a.dataIdMap.get(I.dataId).id);const M=a.makeOutput(b,"float32");if(i.util.sizeFromShape(s.shape)!==0){const D=a.dataIdMap.get(M.dataId).id;Au(l,k,D)}return g&&a.disposeData(e.dataId),n&&(M.shape=i.backend_util.expandShapeToKeepDim(M.shape,f)),s.dtype!=="float32"&&a.disposeData(I.dataId),M}var fp={kernelName:i.Mean,backendName:"wasm",setupFunc:hp,kernelFunc:gp},xu;function bp(t){xu=t.wasm.cwrap(i.Min,null,["number","number","number","number"])}function vp(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u,p=a.dataIdMap.get(o.dataId).id;let l=p,s=o;const{transposed:e,axes:m,originalAxes:f,inputWasTransposed:g}=ke(o,r,a);if(g){const M=a.dataIdMap.get(e.dataId).id;M!==p&&(s=e,l=M)}const h=s.shape.length;i.backend_util.assertAxesAreInnerMostDims("min",m,h);const[b,y]=i.backend_util.computeOutAndReduceShapes(s.shape,m),k=i.util.sizeFromShape(y),I=a.makeOutput(b,s.dtype);if(i.util.sizeFromShape(s.shape)!==0){const M=a.dataIdMap.get(I.dataId).id;xu(l,G[o.dtype],k,M)}return g&&a.disposeData(e.dataId),n&&(I.shape=i.backend_util.expandShapeToKeepDim(I.shape,f)),I}var yp={kernelName:i.Min,backendName:"wasm",setupFunc:bp,kernelFunc:vp},Ip=!1,kp=Y(i.Minimum,Ip),Kn;(function(t){t[t.reflect=0]="reflect",t[t.symmetric=1]="symmetric"})(Kn||(Kn={}));var Du;function Sp(t){Du=t.wasm.cwrap(i.MirrorPad,null,["number","array","number","number","array","array","number","number"])}function Mp(t){const{inputs:{x:a},backend:u,attrs:{paddings:d,mode:r}}=t,n=d.map((h,b)=>h[0]+a.shape[b]+h[1]),o=u.dataIdMap.get(a.dataId).id,p=u.makeOutput(n,a.dtype),l=u.dataIdMap.get(p.dataId).id,s=new Uint8Array(new Int32Array(a.shape).buffer),e=d.map(h=>h[0]),m=d.map(h=>h[1]),f=new Uint8Array(new Int32Array(e).buffer),g=new Uint8Array(new Int32Array(m).buffer);return Du(o,s,a.shape.length,G[a.dtype],f,g,Kn[r],l),p}var Ap={kernelName:i.MirrorPad,backendName:"wasm",kernelFunc:Mp,setupFunc:Sp},wu;function xp(t){wu=t.wasm.cwrap(i.Softmax,null,["number","number","number","number"])}function Fu(t){const{backend:a,inputs:{logits:u},attrs:{dim:d}}=t,r=a.dataIdMap.get(u.dataId).id,n=a.makeOutput(u.shape,u.dtype),o=a.dataIdMap.get(n.dataId).id,p=u.shape[d],l=i.util.sizeFromShape(u.shape)/p;return i.util.sizeFromShape(n.shape)===0||wu(r,o,p,l),n}var Dp={kernelName:i.Softmax,backendName:"wasm",setupFunc:xp,kernelFunc:Fu},Nu;function wp(t){Nu=t.wasm.cwrap(i.Multinomial,null,["number","number","number","number","number","number"])}function Fp(t){const{inputs:a,backend:u,attrs:d}=t,{logits:r}=a,{numSamples:n,seed:o,normalized:p}=d;if(r.dtype!=="float32")throw new Error(`Tensor logits must have dtype float32, got ${r.dtype}`);const l=p?r:Fu({inputs:{logits:r},backend:u,attrs:{dim:r.shape.length-1}}),[s,e]=l.shape,m=u.makeOutput([s,n],"int32");return Nu(u.dataIdMap.get(l.dataId).id,s,e,n,o,u.dataIdMap.get(m.dataId).id),p||u.disposeData(l.dataId),m}var Np={kernelName:i.Multinomial,backendName:"wasm",setupFunc:wp,kernelFunc:Fp},Cp=Y(i.Mod,!0),Rp=!0,_p=Y(i.Multiply,Rp),Pp=W(i.Neg);function Xn(t,a){const u=new Int32Array(t.wasm.HEAPU8.buffer,a,4),d=u[0],r=u[1],n=u[2],o=u[3];return t.wasm._free(a),{pSelectedIndices:d,selectedSize:r,pSelectedScores:n,pValidOutputs:o}}var Cu;function Ep(t){Cu=t.wasm.cwrap(i.NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function Bp(t){const{backend:a,inputs:u,attrs:d}=t,{iouThreshold:r,maxOutputSize:n,scoreThreshold:o}=d,{boxes:p,scores:l}=u,s=a.dataIdMap.get(p.dataId).id,e=a.dataIdMap.get(l.dataId).id,m=Cu(s,e,n,r,o),{pSelectedIndices:f,selectedSize:g,pSelectedScores:h,pValidOutputs:b}=Xn(a,m);return a.wasm._free(h),a.wasm._free(b),a.makeOutput([g],"int32",f)}var Tp={kernelName:i.NonMaxSuppressionV3,backendName:"wasm",setupFunc:Ep,kernelFunc:Bp},Ru;function Op(t){Ru=t.wasm.cwrap(i.NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function Wp(t){const{backend:a,inputs:u,attrs:d}=t,{iouThreshold:r,maxOutputSize:n,scoreThreshold:o,padToMaxOutputSize:p}=d,{boxes:l,scores:s}=u,e=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(s.dataId).id,f=Ru(e,m,n,r,o,p),{pSelectedIndices:g,selectedSize:h,pSelectedScores:b,pValidOutputs:y}=Xn(a,f);return a.wasm._free(b),[a.makeOutput([h],"int32",g),a.makeOutput([],"int32",y)]}var zp={kernelName:i.NonMaxSuppressionV4,backendName:"wasm",setupFunc:Op,kernelFunc:Wp},_u;function Hp(t){_u=t.wasm.cwrap(i.NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function Lp(t){const{backend:a,inputs:u,attrs:d}=t,{iouThreshold:r,maxOutputSize:n,scoreThreshold:o,softNmsSigma:p}=d,{boxes:l,scores:s}=u,e=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(s.dataId).id,f=_u(e,m,n,r,o,p),{pSelectedIndices:g,selectedSize:h,pSelectedScores:b,pValidOutputs:y}=Xn(a,f);return a.wasm._free(y),[a.makeOutput([h],"int32",g),a.makeOutput([h],"float32",b)]}var Gp={kernelName:i.NonMaxSuppressionV5,backendName:"wasm",setupFunc:Hp,kernelFunc:Lp},$p=!1,Vp=Y(i.NotEqual,$p,"bool"),Pu;function Up(t){Pu=t.wasm.cwrap(i.OneHot,null,["number","number","number","number","number"])}function qp(t){const{inputs:a,backend:u,attrs:d}=t,{indices:r}=a,{dtype:n,depth:o,onValue:p,offValue:l}=d,s=u.makeOutput([...r.shape,o],n),e=u.dataIdMap.get(s.dataId).id,m=u.dataIdMap.get(r.dataId).id;return Pu(m,o,p,l,e),s}var Kp={kernelName:i.OneHot,backendName:"wasm",setupFunc:Up,kernelFunc:qp};function Xp(t){const{inputs:{x:a},backend:u}=t,d=u.makeOutput(a.shape,a.dtype);return u.typedArrayFromHeap(d).fill(1),d}var Jp={kernelName:i.OnesLike,backendName:"wasm",kernelFunc:Xp};function Qp(t){const{inputs:a,backend:u,attrs:d}=t,{axis:r}=d;if(a.length===1)return qn({inputs:{input:a[0]},backend:u,attrs:{dim:r}});const n=a[0].shape,o=a[0].dtype;a.forEach(e=>{i.util.assertShapesMatch(n,e.shape,"All tensors passed to stack must have matching shapes"),i.util.assert(o===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});const p=[],l=a.map(e=>{const m=qn({inputs:{input:e},backend:u,attrs:{dim:r}});return p.push(m),m}),s=Vr({inputs:l,backend:u,attrs:{axis:r}});return p.forEach(e=>u.disposeData(e.dataId)),s}var Yp={kernelName:i.Pack,backendName:"wasm",kernelFunc:Qp},Eu;function Zp(t){Eu=t.wasm.cwrap(i.PadV2,null,["number","array","number","number","array","array","number","number"])}function jp(t){const{inputs:{x:a},backend:u,attrs:{paddings:d,constantValue:r}}=t,n=d.map((h,b)=>h[0]+a.shape[b]+h[1]);if(i.util.sizeFromShape(a.shape)===0)return su({backend:u,attrs:{shape:n,value:r,dtype:a.dtype}});const o=u.dataIdMap.get(a.dataId).id,p=u.makeOutput(n,a.dtype),l=u.dataIdMap.get(p.dataId).id,s=new Uint8Array(new Int32Array(a.shape).buffer),e=d.map(h=>h[0]),m=d.map(h=>h[1]),f=new Uint8Array(new Int32Array(e).buffer),g=new Uint8Array(new Int32Array(m).buffer);return Eu(o,s,a.shape.length,G[a.dtype],f,g,r,l),p}var Bu={kernelName:i.PadV2,backendName:"wasm",kernelFunc:jp,setupFunc:Zp},el=!1,nl=Y(i.Pow,el),Tu;function tl(t){Tu=t.wasm.cwrap(i.Prelu,null,["number","number","number"])}function al(t){const{inputs:a,backend:u}=t,{x:d,alpha:r}=a,n=u.dataIdMap.get(d.dataId).id,o=u.dataIdMap.get(r.dataId).id;let p=n;const l=d;let s=l;l.dtype!=="float32"&&(s=Se({backend:u,inputs:{x:d},attrs:{dtype:"float32"}}),p=u.dataIdMap.get(s.dataId).id);const e=u.makeOutput(d.shape,"float32"),m=u.dataIdMap.get(e.dataId).id;return Tu(p,o,m),l.dtype!=="float32"&&u.disposeData(s.dataId),e}var rl={kernelName:i.Prelu,backendName:"wasm",setupFunc:tl,kernelFunc:al},Ou;function ul(t){Ou=t.wasm.cwrap(i.Prod,null,["number","number","number","number"])}function il(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u,p=a.dataIdMap.get(o.dataId).id;let l=p,s=o;const{transposed:e,axes:m,originalAxes:f,inputWasTransposed:g}=ke(o,r,a);let h=m;if(g){const M=a.dataIdMap.get(e.dataId).id;M!==p&&(s=e,l=M,h=i.backend_util.getInnerMostAxes(h.length,s.shape.length))}i.backend_util.assertAxesAreInnerMostDims("prod",h,s.shape.length);const[b,y]=i.backend_util.computeOutAndReduceShapes(s.shape,h),k=i.util.sizeFromShape(y),I=a.makeOutput(b,s.dtype);if(i.util.sizeFromShape(s.shape)!==0){const M=a.dataIdMap.get(I.dataId).id;Ou(l,k,G[I.dtype],M)}return g&&a.disposeData(e.dataId),n&&(I.shape=i.backend_util.expandShapeToKeepDim(I.shape,f)),I}var sl={kernelName:i.Prod,backendName:"wasm",setupFunc:ul,kernelFunc:il},dl=t=>{const{backend:a,attrs:u}=t,{start:d,stop:r,step:n,dtype:o}=u,p=vs(d,r,n,o),l=a.makeOutput([p.length],o);return a.typedArrayFromHeap(l).set(p),l},ol={kernelName:i.Range,backendName:"wasm",kernelFunc:dl},pl=!0,ll=Y(i.RealDiv,pl),cl=W(i.Reciprocal),ml=W(i.Relu),hl=W(i.Relu6),Wu;function gl(t){Wu=t.wasm.cwrap(i.ResizeBilinear,null,["number","number","number","number","number","number","number","number","number","number"])}function fl(t){const{backend:a,inputs:u,attrs:d}=t,{images:r}=u,{alignCorners:n,halfPixelCenters:o,size:p}=d,[l,s]=p,[e,m,f,g]=r.shape,h=[e,l,s,g];let b=a.dataIdMap.get(r.dataId),y;b.dtype!=="float32"&&(y=Se({backend:a,inputs:{x:r},attrs:{dtype:"float32"}}),b=a.dataIdMap.get(y.dataId));const k=b.id,I=a.makeOutput(h,"float32");if(i.util.sizeFromShape(r.shape)===0)return I;const M=a.dataIdMap.get(I.dataId).id;return Wu(k,e,m,f,g,l,s,n?1:0,o?1:0,M),y!=null&&a.disposeData(y.dataId),I}var bl={kernelName:i.ResizeBilinear,backendName:"wasm",setupFunc:gl,kernelFunc:fl},zu;function vl(t){zu=t.wasm.cwrap(i.ResizeBilinearGrad,null,["number","number","number","array","array","boolean"])}function yl(t){const{inputs:a,backend:u,attrs:d}=t,{images:r,dy:n}=a,{alignCorners:o}=d,p=u.makeOutput(r.shape,"float32");let l=u.dataIdMap.get(r.dataId),s;return l.dtype!=="float32"&&(s=Se({backend:u,inputs:{x:r},attrs:{dtype:"float32"}}),l=u.dataIdMap.get(s.dataId)),zu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(p.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(n.shape).buffer),o),s!=null&&u.disposeData(s.dataId),p}var Il={kernelName:i.ResizeBilinearGrad,backendName:"wasm",setupFunc:vl,kernelFunc:yl},Hu;function kl(t){Hu=t.wasm.cwrap(i.ResizeNearestNeighbor,null,["number","number","number","number","number","number","number","number","number","number"])}function Sl(t){const{backend:a,inputs:u,attrs:d}=t,{images:r}=u,{alignCorners:n,halfPixelCenters:o,size:p}=d,[l,s]=p,[e,m,f,g]=r.shape,h=[e,l,s,g],b=a.makeOutput(h,"float32");if(i.util.sizeFromShape(r.shape)===0)return b;let y=a.dataIdMap.get(r.dataId),k;y.dtype!=="float32"&&(k=Se({backend:a,inputs:{x:r},attrs:{dtype:"float32"}}),y=a.dataIdMap.get(k.dataId));const I=y.id,M=a.dataIdMap.get(b.dataId).id;return Hu(I,e,m,f,g,l,s,n?1:0,o?1:0,M),k!=null&&a.disposeData(k.dataId),b}var Ml={kernelName:i.ResizeNearestNeighbor,backendName:"wasm",setupFunc:kl,kernelFunc:Sl},Lu;function Al(t){Lu=t.wasm.cwrap(i.ResizeNearestNeighborGrad,null,["number","number","number","array","array","boolean"])}function xl(t){const{inputs:a,backend:u,attrs:d}=t,{images:r,dy:n}=a,{alignCorners:o}=d,p=u.makeOutput(r.shape,"float32");let l=u.dataIdMap.get(r.dataId),s;return l.dtype!=="float32"&&(s=Se({backend:u,inputs:{x:r},attrs:{dtype:"float32"}}),l=u.dataIdMap.get(s.dataId)),Lu(u.dataIdMap.get(r.dataId).id,u.dataIdMap.get(n.dataId).id,u.dataIdMap.get(p.dataId).id,new Uint8Array(new Int32Array(r.shape).buffer),new Uint8Array(new Int32Array(n.shape).buffer),o),s!=null&&u.disposeData(s.dataId),p}var Dl={kernelName:i.ResizeNearestNeighborGrad,backendName:"wasm",setupFunc:Al,kernelFunc:xl},Gu;function wl(t){Gu=t.wasm.cwrap(i.Reverse,null,["number","array","number","array","number","number"])}function Fl(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{dims:n}=d,o=i.util.parseAxisParam(n,r.shape);if(r.shape.length===0)return on({inputs:{x:r},backend:u});const p=u.makeOutput(r.shape,r.dtype),l=u.dataIdMap.get(r.dataId).id,s=u.dataIdMap.get(p.dataId).id,e=new Uint8Array(new Int32Array(o).buffer),m=new Uint8Array(new Int32Array(r.shape).buffer);Gu(l,e,o.length,m,r.shape.length,s);const f=ue({inputs:{x:p},attrs:{shape:r.shape},backend:u});return u.disposeData(p.dataId),f}var Nl={kernelName:i.Reverse,backendName:"wasm",kernelFunc:Fl,setupFunc:wl},$u;function Cl(t){$u=t.wasm.cwrap(i.RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Rl(t){const{inputs:a,backend:u,attrs:d}=t,{image:r}=a,{radians:n,fillValue:o,center:p}=d,l=u.makeOutput(r.shape,r.dtype),s=u.dataIdMap.get(r.dataId).id,e=u.dataIdMap.get(l.dataId).id,[m,f,g,h]=r.shape,[b,y]=i.backend_util.getImageCenter(p,f,g),k=o===0,I=255,M=typeof o=="number"?[o,o,o,k?0:I]:[...o,I],D=new Uint8Array(new Int32Array(M).buffer);return $u(s,m,f,g,h,n,b,y,D,M.length,e),l}var _l={kernelName:i.RotateWithOffset,backendName:"wasm",kernelFunc:Rl,setupFunc:Cl},Pl=W(i.Round),El=W(i.Rsqrt),Vu;function Bl(t){Vu=t.wasm.cwrap(i.ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function Tl(t){const{backend:a,inputs:u,attrs:d}=t,{indices:r,updates:n}=u,{shape:o}=d,p=a.makeOutput(o,n.dtype);if(i.util.sizeFromShape(o)===0)return p;const{sliceRank:l,numUpdates:s,sliceSize:e,strides:m,outputSize:f}=i.scatter_util.calculateShapes(n,r,o),g=a.dataIdMap.get(r.dataId).id,h=a.dataIdMap.get(n.dataId).id,b=new Uint8Array(new Int32Array(m).buffer),y=a.dataIdMap.get(p.dataId).id;return Vu(g,h,G[n.dtype],l,s,e,b,f,y),p}var Ol={kernelName:i.ScatterNd,backendName:"wasm",setupFunc:Bl,kernelFunc:Tl},Uu;function Wl(t){Uu=t.wasm.cwrap(i.SearchSorted,null,["number","number","number","number","number","number","bool","number"])}function zl(t){const{inputs:a,backend:u,attrs:d}=t,{sortedSequence:r,values:n}=a,{side:o}=d;if(r.dtype!==n.dtype)throw new Error(`SearchSorted error: sorted_sequence must have the same dtype as values. Got ${r.dtype} and ${n.dtype}`);const p=u.makeOutput(n.shape,"int32");function l(s){return u.dataIdMap.get(s.dataId).id}return Uu(l(r),l(n),r.shape[0],r.shape[1],n.shape[1],G[r.dtype],o==="left",l(p)),p}var Hl={kernelName:i.SearchSorted,backendName:"wasm",setupFunc:Wl,kernelFunc:zl},qu;function Ll(t){qu=t.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Gl(t){const{inputs:a,backend:u}=t,{condition:d,t:r,e:n}=a,o=u.dataIdMap.get(d.dataId).id,p=u.dataIdMap.get(r.dataId).id,l=u.dataIdMap.get(n.dataId).id,s=u.makeOutput(r.shape,r.dtype),e=u.dataIdMap.get(s.dataId).id,m=d.shape.length,f=r.shape.length,g=m===0||m>1||f===1?1:i.util.sizeFromShape(r.shape.slice(1));return qu(o,p,l,g,e),s}var $l={kernelName:i.Select,backendName:"wasm",kernelFunc:Gl,setupFunc:Ll},Vl=W(i.Selu),Ku;function Ul(t){Ku=t.wasm.cwrap(i.Sigmoid,null,["number","number"])}function ql(t){const{backend:a,inputs:{x:u}}=t,d=a.dataIdMap.get(u.dataId).id,r=a.makeOutput(u.shape,u.dtype),n=a.dataIdMap.get(r.dataId).id;return i.util.sizeFromShape(r.shape)===0||Ku(d,n),r}var Kl={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Ul,kernelFunc:ql},Xl=W(i.Sign),Jl=W(i.Sin),Ql=W(i.Sinh),Yl=W(i.Softplus);function Zl(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,{blockShape:n,paddings:o}=d,p=i.util.sizeFromShape(n),l=[[0,0]];l.push(...o);for(let y=1+n.length;y<r.shape.length;++y)l.push([0,0]);const s=Bu.kernelFunc({inputs:{x:r},backend:u,attrs:{paddings:l,constantValue:0}}),e=i.backend_util.getReshaped(s.shape,n,p,!1),m=i.backend_util.getPermuted(e.length,n.length,!1),f=i.backend_util.getReshapedPermuted(s.shape,n,p,!1),g=ue({inputs:{x:s},backend:u,attrs:{shape:e}}),h=Ie({inputs:{x:g},backend:u,attrs:{perm:m}}),b=ue({inputs:{x:h},backend:u,attrs:{shape:f}});return u.disposeData(s.dataId),u.disposeData(g.dataId),u.disposeData(h.dataId),b}var jl={kernelName:i.SpaceToBatchND,backendName:"wasm",kernelFunc:Zl},Xu;function ec(t){Xu=t.wasm.cwrap("SparseFillEmptyRows","number",["number","number","number","number","number","number","number","number","number","number","number","number"])}function nc(t){const{backend:a,inputs:u}=t,{indices:d,values:r,denseShape:n,defaultValue:o}=u,p=d.shape[0],l=d.shape[1],s=a.readSync(n.dataId)[0],e=[p+s,l],m=a.dataIdMap.get(d.dataId).id,f=a.dataIdMap.get(r.dataId).id,g=a.dataIdMap.get(o.dataId).id,h=a.makeOutput(e,d.dtype),b=a.dataIdMap.get(h.dataId).id,y=a.makeOutput(e.slice(0,1),r.dtype),k=a.dataIdMap.get(y.dataId).id,I=a.makeOutput([s],"bool"),M=a.dataIdMap.get(I.dataId).id,D=a.makeOutput([p],d.dtype),F=a.dataIdMap.get(D.dataId).id,E=a.makeOutput([4],"int32"),O=a.dataIdMap.get(E.dataId).id,B=Xu(m,f,G[r.dtype],p,s,l,g,b,k,M,F,O),K=a.readSync(E.dataId);let X;switch(K[0]){case 1:X=i.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(K[1]);break;case 2:X=i.backend_util.getSparseFillEmptyRowsNegativeIndexErrorMessage(K[1],K[2]);break;case 3:X=i.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(K[1],K[2],K[3]);break;default:X=""}if(a.disposeData(E.dataId),X)throw a.disposeData(h.dataId),a.disposeData(y.dataId),a.disposeData(I.dataId),a.disposeData(D.dataId),new Error(X);let U=h,q=y;return B!==e[0]&&(U=De({inputs:{x:h},attrs:{begin:0,size:[B,l]},backend:a}),q=De({inputs:{x:y},attrs:{begin:0,size:B},backend:a}),a.disposeData(h.dataId),a.disposeData(y.dataId)),[U,q,I,D]}var tc={kernelName:i.SparseFillEmptyRows,backendName:"wasm",setupFunc:ec,kernelFunc:nc},Ju;function ac(t){Ju=t.wasm.cwrap(i.SparseReshape,null,["number","number","number","number","number","number","number"])}function rc(t){const{backend:a,inputs:u}=t,{inputIndices:d,inputShape:r,newShape:n}=u;if(d.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape
|
|
3
3
|
${d.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape
|
|
4
4
|
${r.shape}`);if(n.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${n.shape}`);const o=a.dataIdMap.get(d.dataId).id,p=a.dataIdMap.get(r.dataId).id,l=a.dataIdMap.get(n.dataId).id,s=d.shape[0],e=i.util.sizeFromShape(n.shape),m=a.makeOutput([s,e],d.dtype),f=a.dataIdMap.get(m.dataId).id,g=a.makeOutput([e],n.dtype),h=a.dataIdMap.get(g.dataId).id,b=a.makeOutput([3],"int32"),y=a.dataIdMap.get(b.dataId).id;Ju(o,p,l,s,f,h,y);const k=a.readSync(b.dataId);let I;switch(k[0]){case 0:I=i.backend_util.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(k[1],k[2]);break;case 1:I=i.backend_util.getSparseReshapeNegativeOutputDimErrorMessage(k[1],k[2]);break;case 2:I=i.backend_util.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{const M=Array.from(a.readSync(r.dataId)),D=Array.from(a.readSync(g.dataId));I=i.backend_util.getSparseReshapeInputOutputMultipleErrorMessage(M,D);break}case 4:{const M=Array.from(a.readSync(r.dataId)),D=Array.from(a.readSync(g.dataId));I=i.backend_util.getSparseReshapeInputOutputMismatchErrorMessage(M,D);break}default:I=""}if(a.disposeData(b.dataId),I)throw a.disposeData(m.dataId),a.disposeData(g.dataId),new Error(I);return[m,g]}var uc={kernelName:i.SparseReshape,backendName:"wasm",setupFunc:ac,kernelFunc:rc},Qu;function Yu(t){Qu=t.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function Zu(t,a){const{backend:u,inputs:d}=t,{data:r,indices:n,segmentIds:o}=d,p=n.shape[0],l=u.readSync(o.dataId,p-1,p)[0],s=p>0?l+1:0;if(s<0)throw new Error(i.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());const e=r.shape.slice();e[0]=s;const m=u.dataIdMap.get(r.dataId).id,f=u.dataIdMap.get(n.dataId).id,g=u.dataIdMap.get(o.dataId).id,h=u.makeOutput(e,r.dtype),b=u.dataIdMap.get(h.dataId).id,y=u.makeOutput([4],"int32"),k=u.dataIdMap.get(y.dataId).id;Qu(m,G[r.dtype],r.shape[0],f,g,b,k,a,0);const I=u.readSync(y.dataId);let M;switch(I[0]){case 0:M=i.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break;case 1:M=i.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break;case 2:M=i.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(I[1],I[2]);break;case 3:M=i.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(I[1],I[2],I[3]);break;default:M=""}if(u.disposeData(y.dataId),M)throw u.disposeData(h.dataId),new Error(M);return h}function ic(t){return Zu(t,!0)}var sc={kernelName:i.SparseSegmentMean,backendName:"wasm",setupFunc:Yu,kernelFunc:ic};function dc(t){return Zu(t,!1)}var oc={kernelName:i.SparseSegmentSum,backendName:"wasm",setupFunc:Yu,kernelFunc:dc},ju;function pc(t){ju=t.wasm.cwrap(i.SparseToDense,null,["number","number","number","number","number","number","number","number","array","number","number"])}function lc(t){const{backend:a,inputs:u,attrs:d}=t,{sparseIndices:r,sparseValues:n,defaultValue:o}=u,{outputShape:p}=d,l=a.makeOutput(p,o.dtype);if(i.util.sizeFromShape(p)===0)return l;const{sliceRank:s,numUpdates:e,sliceSize:m,strides:f,outputSize:g}=i.backend_util.calculateShapes(n,r,p),h=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(n.dataId).id,y=a.dataIdMap.get(o.dataId).id,k=new Uint8Array(new Int32Array(f).buffer),I=a.dataIdMap.get(l.dataId).id;return ju(h,b,n.shape.length,y,G[o.dtype],s,e,m,k,g,I),l}var cc={kernelName:i.SparseToDense,backendName:"wasm",setupFunc:pc,kernelFunc:lc};function mc(t){const{inputs:a,attrs:u,backend:d}=t,{x:r}=a,{numOrSizeSplits:n,axis:o}=u,p=i.util.parseAxisParam(o,r.shape)[0],l=i.backend_util.prepareSplitSize(r,n,p),s=new Array(r.shape.length).fill(0),e=r.shape.slice();return l.map(m=>{const f=[...e];f[p]=m;const g=De({inputs:{x:r},attrs:{begin:s,size:f},backend:d});return s[p]+=m,g})}var hc={kernelName:i.SplitV,backendName:"wasm",kernelFunc:mc},gc=W(i.Sqrt),fc=W(i.Square),bc=!0,vc=Y(i.SquaredDifference,bc),ei;function yc(t){ei=t.wasm.cwrap(i.Step,null,["number","number","number","number"])}function Ic(t){const{backend:a,inputs:u,attrs:d}=t,{alpha:r}=d,{x:n}=u,o=a.dataIdMap.get(n.dataId).id,p=a.makeOutput(n.shape,n.dtype),l=a.dataIdMap.get(p.dataId).id;return ei(o,r,G[n.dtype],l),p}var kc={kernelName:i.Step,backendName:"wasm",setupFunc:yc,kernelFunc:Ic},ni;function Sc(t){ni=t.wasm.cwrap(i.StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function Mc(t){const{backend:a,inputs:u,attrs:d}=t,{x:r}=u,{begin:n,end:o,strides:p,beginMask:l,endMask:s,ellipsisMask:e,newAxisMask:m,shrinkAxisMask:f}=d,{finalShapeSparse:g,finalShape:h,isIdentity:b,sliceDim0:y,isSimpleSlice:k,begin:I,end:M,strides:D}=i.slice_util.sliceInfo(r.shape,n,o,p,l,s,e,m,f);let F;if(b)F=ue({inputs:{x:r},backend:a,attrs:{shape:h}});else if(y||k){i.util.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);const E=i.slice_util.computeOutShape(I,M,D),O=De({inputs:{x:r},backend:a,attrs:{begin:I,size:E}});F=ue({inputs:{x:O},backend:a,attrs:{shape:h}}),a.disposeData(O.dataId)}else{const E=a.makeOutput(g,"float32"),O=a.dataIdMap.get(r.dataId).id,B=new Uint8Array(new Int32Array(i.util.computeStrides(r.shape)).buffer),K=new Uint8Array(new Int32Array(I).buffer),X=new Uint8Array(new Int32Array(M).buffer),U=new Uint8Array(new Int32Array(D).buffer),q=new Uint8Array(new Int32Array(g).buffer),Z=new Uint8Array(new Int32Array(i.util.computeStrides(g)).buffer),ie=a.dataIdMap.get(E.dataId).id;ni(O,B,r.shape.length,K,X,U,q,Z,g.length,ie),F=ue({inputs:{x:E},backend:a,attrs:{shape:h}}),a.disposeData(E.dataId)}return F}var Ac={kernelName:i.StridedSlice,backendName:"wasm",setupFunc:Sc,kernelFunc:Mc};function xc(t){const{backend:a,inputs:u,attrs:d}=t,{data:r,dataSplits:n}=u,{separator:o,nGramWidths:p,leftPad:l,rightPad:s,padWidth:e,preserveShortSequences:m}=d,f=a.readSync(r.dataId),g=a.readSync(n.dataId),[h,b]=Is(f,g,o,p,l,s,e,m),y=a.makeOutput([h.length],"string"),k=a.dataIdMap.get(y.dataId);k.stringBytes=h;const I=a.makeOutput(n.shape,"int32");return a.typedArrayFromHeap(I).set(b),[y,I]}var Dc={kernelName:i.StringNGrams,backendName:"wasm",kernelFunc:xc};function wc(t){const{backend:a,inputs:u,attrs:d}=t,{input:r,delimiter:n}=u,{skipEmpty:o}=d,p=a.readSync(r.dataId),l=a.readSync(n.dataId),[s,e,m]=Ss(p,l[0],o),f=e.length,g=a.makeOutput([f,2],"int32");a.typedArrayFromHeap(g).set(s);const h=a.makeOutput([f],"string"),b=a.dataIdMap.get(h.dataId);b.stringBytes=e;const y=a.makeOutput([2],"int32");return a.typedArrayFromHeap(y).set(m),[g,h,y]}var Fc={kernelName:i.StringSplit,backendName:"wasm",kernelFunc:wc};function Nc(t){const{backend:a,inputs:u,attrs:d}=t,{input:r}=u,{numBuckets:n}=d,o=a.readSync(r.dataId),p=Ms(o,n),l=a.makeOutput(r.shape,"int32");return a.typedArrayFromHeap(l).set(p),l}var Cc={kernelName:i.StringToHashBucketFast,backendName:"wasm",kernelFunc:Nc},Rc=!0,_c=Y(i.Sub,Rc),ti;function Pc(t){ti=t.wasm.cwrap(i.Sum,null,["number","number","number","number"])}function Ec(t){const{backend:a,inputs:u,attrs:d}=t,{axis:r,keepDims:n}=d,{x:o}=u,p=a.dataIdMap.get(o.dataId).id;let l=p,s=o;const{transposed:e,axes:m,originalAxes:f,inputWasTransposed:g}=ke(o,r,a);let h=m;if(g){const M=a.dataIdMap.get(e.dataId).id;M!==p&&(s=e,l=M,h=i.backend_util.getInnerMostAxes(h.length,s.shape.length))}i.backend_util.assertAxesAreInnerMostDims("sum",h,s.shape.length);const[b,y]=i.backend_util.computeOutAndReduceShapes(s.shape,h),k=i.util.sizeFromShape(y),I=a.makeOutput(b,s.dtype);if(i.util.sizeFromShape(s.shape)!==0){const M=a.dataIdMap.get(I.dataId).id;ti(l,k,G[I.dtype],M)}return g&&a.disposeData(e.dataId),n&&(I.shape=i.backend_util.expandShapeToKeepDim(I.shape,f)),I}var Bc={kernelName:i.Sum,backendName:"wasm",setupFunc:Pc,kernelFunc:Ec},Tc=W(i.Tan),Oc=W(i.Tanh),ai;function Wc(t){ai=t.wasm.cwrap(i.TensorScatterUpdate,null,["number","number","number","number","number","number","array","number","number","number"])}function zc(t){const{backend:a,inputs:u,attrs:d}=t,{tensor:r,indices:n,updates:o}=u,{}=d,p=a.makeOutput(r.shape,r.dtype);if(i.util.sizeFromShape(r.shape)===0)return p;const{sliceRank:l,numUpdates:s,sliceSize:e,strides:m,outputSize:f}=i.scatter_util.calculateShapes(o,n,r.shape),g=a.dataIdMap.get(n.dataId).id,h=a.dataIdMap.get(o.dataId).id,b=a.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(m).buffer),k=a.dataIdMap.get(p.dataId).id;return ai(g,h,G[o.dtype],l,s,e,y,f,k,b),p}var Hc={kernelName:i.TensorScatterUpdate,backendName:"wasm",setupFunc:Wc,kernelFunc:zc},ri;function Lc(t){ri=t.wasm.cwrap(i.Tile,null,["number","array","number","array","number","number"])}function Gc(t){const{inputs:a,backend:u,attrs:d}=t,{x:r}=a,n=u.dataIdMap.get(r.dataId).id,{reps:o}=d,p=new Array(r.shape.length);for(let f=0;f<p.length;f++)p[f]=r.shape[f]*o[f];const l=new Uint8Array(new Int32Array(r.shape).buffer),s=new Uint8Array(new Int32Array(p).buffer),e=u.makeOutput(p,r.dtype),m=u.dataIdMap.get(e.dataId).id;return ri(n,l,r.shape.length,s,p.length,G[e.dtype],m),e}var $c={kernelName:i.Tile,backendName:"wasm",setupFunc:Lc,kernelFunc:Gc},ui;function Vc(t){ui=t.wasm.cwrap(i.TopK,null,["number","array","number","number","number","bool","number","number"])}var Uc=({inputs:t,backend:a,attrs:u})=>{const{x:d}=t,{k:r,sorted:n}=u,o=a.dataIdMap.get(d.dataId).id,p=new Uint8Array(new Int32Array(d.shape).buffer),l=d.shape.slice();l[l.length-1]=r;const s=a.makeOutput(l,d.dtype),e=a.dataIdMap.get(s.dataId).id,m=a.makeOutput(l,"int32"),f=a.dataIdMap.get(m.dataId).id;return ui(o,p,d.shape.length,G[d.dtype],r,n,e,f),[s,m]},qc={kernelName:i.TopK,backendName:"wasm",setupFunc:Vc,kernelFunc:Uc},ii;function Kc(t){ii=t.wasm.cwrap(i.Transform,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Xc(t){const{backend:a,inputs:u,attrs:d}=t,{image:r,transforms:n}=u,{interpolation:o,fillMode:p,fillValue:l,outputShape:s}=d,[e,m,f,g]=r.shape,[h,b]=s??[m,f],y=[e,h,b,g],k=new Uint8Array(new Int32Array(i.util.computeStrides(r.shape)).buffer),I=new Uint8Array(new Int32Array(i.util.computeStrides(y)).buffer),M=a.makeOutput(y,r.dtype),D=a.dataIdMap.get(M.dataId).id,F=a.dataIdMap.get(r.dataId).id,E=a.dataIdMap.get(n.dataId).id,O=o==="nearest"?1:2;let B;switch(p){case"constant":B=1;break;case"reflect":B=2;break;case"wrap":B=3;break;case"nearest":B=4;break;default:B=1}return ii(F,E,n.shape[0]>1,e,h,b,g,f,m,k,r.shape.length-1,I,y.length-1,O,B,l,D),M}var Jc={kernelName:i.Transform,backendName:"wasm",setupFunc:Kc,kernelFunc:Xc};function Qc(t){const{inputs:a,attrs:u,backend:d}=t,{axis:r}=u,{x:n}=a,{outputValues:o,outputShape:p,indices:l}=As(d.readSync(n.dataId),r,n.shape,n.dtype);return[d.makeOutput(p,n.dtype,void 0,o),d.makeOutput([l.length],"int32",void 0,l)]}var Yc={kernelName:i.Unique,backendName:"wasm",kernelFunc:Qc};function Zc(t){const{inputs:a,backend:u,attrs:d}=t,{value:r}=a;let{axis:n}=d;n<0&&(n+=r.shape.length);const o=r.shape[n],p=r.shape.length,l=new Array(p-1);let s=0;for(let g=0;g<p;g++)g!==n&&(l[s++]=r.shape[g]);const e=new Array(o),m=new Array(p).fill(0),f=r.shape.slice();f[n]=1;for(let g=0;g<e.length;g++)m[n]=g,e[g]=De({inputs:{x:r},attrs:{begin:m,size:f},backend:u});return e.map(({dataId:g,dtype:h})=>({dataId:g,dtype:h,shape:l}))}var jc={kernelName:i.Unpack,backendName:"wasm",kernelFunc:Zc};function em(t){const{inputs:{x:a},backend:u}=t,d=u.makeOutput(a.shape,a.dtype);return u.typedArrayFromHeap(d).fill(0),d}var nm={kernelName:i.ZerosLike,backendName:"wasm",kernelFunc:em},tm=[Fi,Ni,Ci,Ri,Pi,Ti,Vi,Ki,Xi,Ji,Qi,Yi,Zi,ji,es,as,cs,is,os,fs,Cs,Ps,Bs,Os,Ws,zs,Gs,$s,qs,Js,Zs,nd,rd,ud,id,od,cd,gd,vd,kd,Ad,wd,Cd,Pd,Td,Od,Hd,Gd,$d,Vd,Ud,qd,Kd,Qd,Yd,jd,to,uo,oo,co,go,bo,yo,Oi,Io,ko,So,xo,wo,No,_o,Eo,Po,To,Oo,zo,Lo,Vo,Ko,Qo,Zo,np,rp,sp,pp,mp,fp,yp,kp,Ap,Np,Cp,_p,Pp,Tp,zp,Gp,Vp,Kp,Jp,Yp,Bu,nl,rl,sl,ol,ll,cl,ml,hl,ms,bl,Il,Ml,Dl,Nl,_l,Pl,El,Ol,Hl,$l,Vl,Kl,Xl,Jl,Ql,Fs,Dp,Yl,jl,tc,uc,sc,oc,cc,hc,gc,fc,vc,kc,Ac,Dc,Fc,Cc,_c,Bc,Tc,Oc,Hc,$c,qc,Jc,Li,Yc,jc,nm];for(const t of tm)(0,i.registerKernel)(t);var Jn=(0,i.env)();Jn.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{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,9,1,7,0,65,0,253,15,26,11]))}catch{return!1}}),Jn.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Jn.get("IS_NODE"))return!1;try{return 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}});var we=dn(((t,a)=>{a.exports={}})),am=dn(((t,a)=>{var u=(()=>{var d=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(d=d||__filename),(function(r){r=r||{};function n(){return $.buffer!=de&&he($.buffer),fe}function o(){return $.buffer!=de&&he($.buffer),We}function p(){return $.buffer!=de&&he($.buffer),Me}function l(){return $.buffer!=de&&he($.buffer),ln}function s(){return $.buffer!=de&&he($.buffer),cn}var e=typeof r<"u"?r:{},m,f;e.ready=new Promise(function(c,v){m=c,f=v});var g;typeof process<"u"&&process.listeners&&(g={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var h=Object.assign({},e),b=[],y=(c,v)=>{throw v},k=typeof window=="object",I=typeof importScripts=="function",M=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",D=e.ENVIRONMENT_IS_PTHREAD||!1,F="";function E(c){return e.locateFile?e.locateFile(c,F):F+c}var O,B,K;function X(c){c instanceof _e||Q("exiting due to exception: "+c)}if(M){var U=we(),q=we();I?F=q.dirname(F)+"/":F=__dirname+"/",O=(v,A)=>(v=He(v)?new URL(v):q.normalize(v),U.readFileSync(v,A?void 0:"utf8")),K=v=>{var A=O(v,!0);return A.buffer||(A=new Uint8Array(A)),A},B=(v,A,_)=>{v=He(v)?new URL(v):q.normalize(v),U.readFile(v,function(R,w){R?_(R):A(w.buffer)})},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),b=process.argv.slice(2),process.on("uncaughtException",function(v){if(!(v instanceof _e))throw v}),process.on("unhandledRejection",function(v){throw v}),y=(v,A)=>{if(ze())throw process.exitCode=v,A;X(A),process.exit(v)},e.inspect=function(){return"[Emscripten Module object]"};let c;try{c=we()}catch(v){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),v}global.Worker=c.Worker}else(k||I)&&(I?F=self.location.href:typeof document<"u"&&document.currentScript&&(F=document.currentScript.src),typeof d<"u"&&d&&(F=d),F.indexOf("blob:")!==0?F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1):F="",M||(O=c=>{var v=new XMLHttpRequest;return v.open("GET",c,!1),v.send(null),v.responseText},I&&(K=c=>{var v=new XMLHttpRequest;return v.open("GET",c,!1),v.responseType="arraybuffer",v.send(null),new Uint8Array(v.response)}),B=(c,v,A)=>{var _=new XMLHttpRequest;_.open("GET",c,!0),_.responseType="arraybuffer",_.onload=()=>{if(_.status==200||_.status==0&&_.response){v(_.response);return}A()},_.onerror=A,_.send(null)}));M&&typeof performance>"u"&&(global.performance=we().performance);var Z=console.log.bind(console),ie=console.warn.bind(console);M&&(Z=c=>U.writeSync(1,c+`
|
package/dist/backend-webgpu.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @license Includes TensorFlow.js WebGPU backend 4.22.0 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/
|
|
1
|
+
/*! @license Includes TensorFlow.js WebGPU backend 4.22.0 (Apache-2.0). See https://github.com/kubohiroya/turbowarp-teachable-machine/blob/v4.0.0/THIRD_PARTY_NOTICES.md. */
|
|
2
2
|
(function(u){var gi=Object.create,Se=Object.defineProperty,xi=Object.getOwnPropertyDescriptor,vi=Object.getOwnPropertyNames,Ci=Object.getPrototypeOf,je=Object.prototype.hasOwnProperty,_e=(e,i)=>{let t={};for(var s in e)Se(t,s,{get:e[s],enumerable:!0});return i||Se(t,Symbol.toStringTag,{value:"Module"}),t},bi=(e,i,t,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(var a=vi(i),r=0,n=a.length,o;r<n;r++)o=a[r],!je.call(e,o)&&o!==t&&Se(e,o,{get:(l=>i[l]).bind(null,o),enumerable:!(s=xi(i,o))||s.enumerable});return e},yi=(e,i,t)=>(t=e!=null?gi(Ci(e)):{},bi(i||!e||!e.__esModule||!je.call(e,"default")?Se(t,"default",{value:e,enumerable:!0}):t,e));u=yi(u);var K=(0,u.env)();K.registerFlag("WEBGPU_DEFERRED_SUBMIT_BATCH_SIZE",()=>15),K.registerFlag("WEBGPU_CPU_FORWARD",()=>!0),K.registerFlag("WEBGPU_MATMUL_PROGRAM_TYPE",()=>-1),K.registerFlag("WEBGPU_USE_NAIVE_CONV2D_TRANSPOSE",()=>!0),K.registerFlag("WEBGPU_USE_LOW_POWER_GPU",()=>!1),K.registerFlag("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e3),K.registerFlag("WEBGPU_USE_PROFILE_TOOL",()=>!1),K.registerFlag("WEBGPU_IMPORT_EXTERNAL_TEXTURE",()=>!0),K.registerFlag("WEBGPU_USE_NAIVE_CONV2D_DEBUG",()=>!1),K.registerFlag("WEBGPU_THRESHOLD_TO_INCREASE_WORKGROUPS_FOR_MATMUL",()=>-1),K.registerFlag("WEBGPU_CONV_SEPARATE_IM2COL_SHADER",()=>!1),K.registerFlag("WEBGPU_PRINT_SHADER",()=>""),K.registerFlag("WEBGPU_ENGINE_COMPILE_ONLY",()=>!1);var Si=class{constructor(e){e&&(this.vendor=e.vendor,this.architecture=e.architecture,this.intelGPUGeneration=this.getIntelGPUGeneration())}getIntelGPUGeneration(){if(this.isIntel()){if(this.architecture.startsWith("gen"))return Number(this.architecture.match(/\d+/));if(this.architecture.startsWith("xe"))return 12}return 0}isIntel(){return this.vendor==="intel"}},Ii=class{constructor(e){this.device=e,this.numUsedBuffers=0,this.numFreeBuffers=0,this.freeBuffers=new Map,this.usedBuffers=new Map,this.numBytesUsed=0,this.numBytesAllocated=0}acquireBuffer(e,i,t=!1,s=!0){let a;const r=et(e,i);return s?(this.freeBuffers.has(r)||this.freeBuffers.set(r,[]),this.freeBuffers.get(r).length>0?(a=this.freeBuffers.get(r).pop(),this.numFreeBuffers--):(a=this.device.createBuffer({size:e,usage:i,mappedAtCreation:t}),this.numBytesAllocated+=e)):(a=this.device.createBuffer({size:e,usage:i,mappedAtCreation:t}),this.numBytesAllocated+=e),this.usedBuffers.has(r)||this.usedBuffers.set(r,[]),this.usedBuffers.get(r).push(a),this.numUsedBuffers++,this.numBytesUsed+=e,a}releaseBuffer(e,i=!0){if(this.freeBuffers.size===0)return;const t=e.size,s=e.usage,a=et(t,s),r=this.usedBuffers.get(a),n=r.indexOf(e);if(n<0)throw new Error("Cannot find the buffer in buffer manager");r[n]=r[r.length-1],r.pop(),this.numUsedBuffers--,this.numBytesUsed-=t,i?(this.freeBuffers.get(a).push(e),this.numFreeBuffers++):(e.destroy(),this.numBytesAllocated-=t)}getNumUsedBuffers(){return this.numUsedBuffers}getNumFreeBuffers(){return this.numFreeBuffers}dispose(){this.freeBuffers.forEach((e,i)=>{e.forEach(t=>{t.destroy()})}),this.usedBuffers.forEach((e,i)=>{e.forEach(t=>{t.destroy()})}),this.freeBuffers=new Map,this.usedBuffers=new Map,this.numUsedBuffers=0,this.numFreeBuffers=0,this.numBytesUsed=0,this.numBytesAllocated=0}};function et(e,i){return`${e}_${i}`}var ki=class{constructor(e){this.device=e,this.numUsedTextures=0,this.numFreeTextures=0,this.freeTextures=new Map,this.usedTextures=new Map,this.numBytesUsed=0,this.numBytesAllocated=0}acquireTexture(e,i,t,s){const a=it(t),r=e*i*a,n=tt(e,i,t,s);if(this.freeTextures.has(n)||this.freeTextures.set(n,[]),this.usedTextures.has(n)||this.usedTextures.set(n,[]),this.numBytesUsed+=r,this.numUsedTextures++,this.freeTextures.get(n).length>0){this.numFreeTextures--;const l=this.freeTextures.get(n).shift();return this.usedTextures.get(n).push(l),l}this.numBytesAllocated+=r;const o=this.device.createTexture({size:[e,i],format:t,usage:s});return this.usedTextures.get(n).push(o),o}releaseTexture(e){if(this.freeTextures.size===0)return;const i=e.width,t=e.height,s=e.format,a=e.usage,r=tt(i,t,s,a);this.freeTextures.has(r)||this.freeTextures.set(r,[]),this.freeTextures.get(r).push(e),this.numFreeTextures++,this.numUsedTextures--;const n=this.usedTextures.get(r),o=n.indexOf(e);if(o<0)throw new Error("Cannot release a texture that was never provided by this texture manager");n.splice(o,1);const l=it(s),d=i*t*l;this.numBytesUsed-=d}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){this.freeTextures.forEach((e,i)=>{e.forEach(t=>{t.destroy()})}),this.usedTextures.forEach((e,i)=>{e.forEach(t=>{t.destroy()})}),this.freeTextures=new Map,this.usedTextures=new Map,this.numUsedTextures=0,this.numFreeTextures=0,this.numBytesUsed=0,this.numBytesAllocated=0}};function tt(e,i,t,s){return`${e}_${i}_${t}_${s}`}function it(e){if(e==="rgba8unorm")return 16;throw new Error(`${e} is not supported!`)}function wi(e,i){if(Math.max(...e)>5)throw new Error("Cannot symbolically compute strides for rank > 6 tensor.");const t=e.length,s="xyzwuv",a=e.map(n=>`${i}.${s[n]}`),r=new Array(t-1);r[t-2]=a[t-1];for(let n=t-3;n>=0;--n)r[n]=`(${r[n+1]} * ${a[n+1]})`;return r}var ee=(e,i,t)=>t==="int32"?`atomicAdd(${e}, bitcast<i32>(${i}));`:`
|
|
3
3
|
{
|
|
4
4
|
var oldValue = 0;
|
package/dist/composition.js
CHANGED
|
@@ -48,7 +48,7 @@ function requireComputeMode(value) {
|
|
|
48
48
|
return mode;
|
|
49
49
|
}
|
|
50
50
|
//#endregion
|
|
51
|
-
//#region node_modules/.pnpm/@kubohiroya+turbowarp-extension-data-editor@0.
|
|
51
|
+
//#region node_modules/.pnpm/@kubohiroya+turbowarp-extension-data-editor@0.4.0_react@18.3.1/node_modules/@kubohiroya/turbowarp-extension-data-editor/dist/fixed-input-schema.js
|
|
52
52
|
var numberToken = /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/u;
|
|
53
53
|
var invalidNumber = Object.freeze({
|
|
54
54
|
kind: "invalid",
|
|
@@ -1187,7 +1187,7 @@ function confidenceMultiplier(value) {
|
|
|
1187
1187
|
}
|
|
1188
1188
|
var package_default = {
|
|
1189
1189
|
name: "@kubohiroya/turbowarp-teachable-machine",
|
|
1190
|
-
version: "
|
|
1190
|
+
version: "4.0.0",
|
|
1191
1191
|
description: "A TurboWarp extension for recognition using Teachable Machine pose, image, and audio models.",
|
|
1192
1192
|
author: "Hiroya Kubo <hiroya@cuc.ac.jp>",
|
|
1193
1193
|
license: "MPL-2.0",
|
|
@@ -1231,8 +1231,8 @@ var package_default = {
|
|
|
1231
1231
|
"access": "public",
|
|
1232
1232
|
"registry": "https://registry.npmjs.org/"
|
|
1233
1233
|
},
|
|
1234
|
-
packageManager: "pnpm@11.
|
|
1235
|
-
engines: { "node": ">=
|
|
1234
|
+
packageManager: "pnpm@11.28.8",
|
|
1235
|
+
engines: { "node": ">=24" },
|
|
1236
1236
|
scripts: {
|
|
1237
1237
|
"dev": "vite build --watch",
|
|
1238
1238
|
"typecheck": "tsc --noEmit",
|
|
@@ -1259,8 +1259,8 @@ var package_default = {
|
|
|
1259
1259
|
"prepack": "npm run build && npm run release:consistency:check"
|
|
1260
1260
|
},
|
|
1261
1261
|
devDependencies: {
|
|
1262
|
-
"@kubohiroya/turbowarp-camera-source": "^0.
|
|
1263
|
-
"@kubohiroya/vite-plugin-turbowarp-extension": "^0.
|
|
1262
|
+
"@kubohiroya/turbowarp-camera-source": "^0.21.0",
|
|
1263
|
+
"@kubohiroya/vite-plugin-turbowarp-extension": "^0.9.0",
|
|
1264
1264
|
"@teachablemachine/image": "0.8.5",
|
|
1265
1265
|
"@teachablemachine/pose": "0.8.6",
|
|
1266
1266
|
"@tensorflow-models/posenet": "2.2.2",
|
|
@@ -1272,7 +1272,7 @@ var package_default = {
|
|
|
1272
1272
|
"typescript": "^5.9.3",
|
|
1273
1273
|
"vite": "^8.2.2",
|
|
1274
1274
|
"vitest": "^4.0.14",
|
|
1275
|
-
"@kubohiroya/turbowarp-extension-data-editor": "^0.
|
|
1275
|
+
"@kubohiroya/turbowarp-extension-data-editor": "^0.4.0"
|
|
1276
1276
|
},
|
|
1277
1277
|
keywords: [
|
|
1278
1278
|
"turbowarp",
|
package/dist/posenet.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var package_default = {
|
|
2
2
|
name: "@kubohiroya/turbowarp-teachable-machine",
|
|
3
|
-
version: "
|
|
3
|
+
version: "4.0.0",
|
|
4
4
|
description: "A TurboWarp extension for recognition using Teachable Machine pose, image, and audio models.",
|
|
5
5
|
author: "Hiroya Kubo <hiroya@cuc.ac.jp>",
|
|
6
6
|
license: "MPL-2.0",
|
|
@@ -44,8 +44,8 @@ var package_default = {
|
|
|
44
44
|
"access": "public",
|
|
45
45
|
"registry": "https://registry.npmjs.org/"
|
|
46
46
|
},
|
|
47
|
-
packageManager: "pnpm@11.
|
|
48
|
-
engines: { "node": ">=
|
|
47
|
+
packageManager: "pnpm@11.28.8",
|
|
48
|
+
engines: { "node": ">=24" },
|
|
49
49
|
scripts: {
|
|
50
50
|
"dev": "vite build --watch",
|
|
51
51
|
"typecheck": "tsc --noEmit",
|
|
@@ -72,8 +72,8 @@ var package_default = {
|
|
|
72
72
|
"prepack": "npm run build && npm run release:consistency:check"
|
|
73
73
|
},
|
|
74
74
|
devDependencies: {
|
|
75
|
-
"@kubohiroya/turbowarp-camera-source": "^0.
|
|
76
|
-
"@kubohiroya/vite-plugin-turbowarp-extension": "^0.
|
|
75
|
+
"@kubohiroya/turbowarp-camera-source": "^0.21.0",
|
|
76
|
+
"@kubohiroya/vite-plugin-turbowarp-extension": "^0.9.0",
|
|
77
77
|
"@teachablemachine/image": "0.8.5",
|
|
78
78
|
"@teachablemachine/pose": "0.8.6",
|
|
79
79
|
"@tensorflow-models/posenet": "2.2.2",
|
|
@@ -85,7 +85,7 @@ var package_default = {
|
|
|
85
85
|
"typescript": "^5.9.3",
|
|
86
86
|
"vite": "^8.2.2",
|
|
87
87
|
"vitest": "^4.0.14",
|
|
88
|
-
"@kubohiroya/turbowarp-extension-data-editor": "^0.
|
|
88
|
+
"@kubohiroya/turbowarp-extension-data-editor": "^0.4.0"
|
|
89
89
|
},
|
|
90
90
|
keywords: [
|
|
91
91
|
"turbowarp",
|