UNPKG

@zoom/meetingsdk

Version:
17 lines 121 kB
/** * @license * Copyright 2021 Google LLC. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============================================================================= */ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@tensorflow/tfjs-core"),require("path"),require("fs"),require("worker_threads"),require("perf_hooks"),require("os")):"function"==typeof define&&define.amd?define(["exports","@tensorflow/tfjs-core","path","fs","worker_threads","perf_hooks","os"],n):n(((e=e||self).tf=e.tf||{},e.tf.wasm=e.tf.wasm||{}),e.tf,e.path,e.fs,e.worker_threads,e.perf_hooks,e.os)}(this,(function(e,n,t,a,r,u,s){"use strict";var i,o,d;t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a,r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,u=u&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u,s=s&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s,function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"}(i||(i={})),function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"}(o||(o={}));var l={kernelName:n._FusedMatMul,backendName:"wasm",setupFunc:function(e){d=e.wasm.cwrap(n._FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])},kernelFunc:function(e){var n=e.inputs,t=e.backend,a=e.attrs,r=n.a,u=n.b,s=n.bias,i=n.preluActivationWeights;if("float32"!==r.dtype||"float32"!==u.dtype)throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");var l=a.transposeA,c=a.transposeB,p=a.activation,f=a.leakyreluAlpha,m=t.dataIdMap.get(r.dataId).id,h=t.dataIdMap.get(u.dataId).id,b=0;if(null!=s){var y=t.dataIdMap.get(s.dataId);if(1!==y.shape.length)throw new Error("_FusedMatMul only supports rank-1 bias but got rank "+y.shape.length+".");b=y.id}var _=null==i?0:t.dataIdMap.get(i.dataId).id,v=o[p];if(null==v)throw new Error(p+" activation not yet supported for FusedConv2D in the wasm backend.");var g=l?r.shape[2]:r.shape[1],w=c?u.shape[1]:u.shape[2],k=r.shape[0],I=t.makeOutput([k,g,w],r.dtype),S=t.dataIdMap.get(I.dataId).id,A=new Uint8Array(new Int32Array(r.shape).buffer),M=new Uint8Array(new Int32Array(u.shape).buffer);return d(m,A,r.shape.length,h,M,u.shape.length,l,c,v,b,_,f||0,S),I}};function c(e,t){var a;return{kernelName:e,backendName:"wasm",setupFunc:function(n){a=n.wasm.cwrap(e,null,["number","number","number"])},kernelFunc:function(e){var r=e.backend,u=e.inputs.x,s=r.dataIdMap.get(u.dataId).id,o=r.makeOutput(u.shape,t||u.dtype),d=r.dataIdMap.get(o.dataId).id;return 0===n.util.sizeFromShape(o.shape)||a(s,i[u.dtype],d),o}}}var p=c(n.Abs);function f(e,t,a){var r;return{kernelName:e,backendName:"wasm",setupFunc:function(n){r=n.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])},kernelFunc:function(u){var s=u.backend,o=u.inputs,d=o.a,l=o.b,c=s.dataIdMap.get(d.dataId).id,p=s.dataIdMap.get(l.dataId).id,f=null!=a?a:d.dtype,m=n.backend_util.assertAndGetBroadcastShape(d.shape,l.shape),h=s.makeOutput(m,f);if(0===n.util.sizeFromShape(m))return h;var b=new Uint8Array(new Int32Array(d.shape).buffer),y=new Uint8Array(new Int32Array(l.shape).buffer),_=s.dataIdMap.get(h.dataId).id,v=function(){return r(c,b,d.shape.length,p,y,l.shape.length,i[d.dtype],_)};if(t&&"float32"===d.dtype)return v(),h;var g=n.backend_util.getBroadcastDims(d.shape,m),w=n.backend_util.getBroadcastDims(l.shape,m),k=g.every((function(e,n){return e===n})),I=w.every((function(e,n){return e===n}));if(k&&I)return v(),h;throw new Error("Broadcasting along outer dims is not yet supported for "+d.dtype+" "+e+".")}}}var m,h=f(n.Add,!0);var b={kernelName:n.AddN,backendName:"wasm",setupFunc:function(e){m=e.wasm.cwrap(n.AddN,null,["array","number","number","number"])},kernelFunc:function(e){var t=e.inputs,a=e.backend,r=a.makeOutput(t[0].shape,t[0].dtype);if(0===n.util.sizeFromShape(r.shape))return r;var u=t.map((function(e){return a.dataIdMap.get(e.dataId).id})),s=new Uint8Array(new Int32Array(u).buffer),o=a.dataIdMap.get(r.dataId).id;return m(s,u.length,i[r.dtype],o),r}};function y(e){var n=e.inputs.x,t=e.backend,a=t.makeOutput(n.shape,n.dtype),r=t.typedArrayFromHeap(n);return t.typedArrayFromHeap(a).set(r),a}var _,v={kernelName:n.Identity,backendName:"wasm",kernelFunc:y};function g(e){for(var n=e.inputs,t=e.backend,a=e.attrs,r=function(e,n){for(var t=[],a=[],r=0;r<e.length;++r)1!==e[r]&&t.push(e[r]),1!==e[n[r]]&&a.push(n[r]);for(r=0;r<a.length;++r){for(var u=-1,s=0;s<a.length;++s)a[s]>=r&&(-1===u||a[u]>a[s])&&(u=s);a[u]=r}return[t,a]}(n.x.shape,a.perm),u=r[0],s=r[1],o=!0,d=0;d<s.length;d++)s[d]!==d&&(o=!1);var l=function(e,n){for(var t=new Array(e.length),a=0;a<t.length;a++)t[a]=e[n[a]];return t}(n.x.shape,a.perm),c={dataId:n.x.dataId,shape:u,dtype:n.x.dtype};if(o){var p=y({inputs:n,backend:t});return p.shape=l,p}var f=t.makeOutput(l,c.dtype),m=t.dataIdMap.get(c.dataId).id,h=t.dataIdMap.get(f.dataId).id,b=new Uint8Array(new Int32Array(s).buffer),v=new Uint8Array(new Int32Array(c.shape).buffer);return _(m,v,c.shape.length,i[c.dtype],h,b,s.length),f}var w,k={kernelName:n.Transpose,backendName:"wasm",kernelFunc:g,setupFunc:function(e){_=e.wasm.cwrap(n.Transpose,null,["number","array","number","number","number","array","number"])}};function I(e,t,a){var r=e.shape,u=e.shape.length,s=n.util.parseAxisParam(t,r),i=s,o=n.backend_util.getAxesPermutation(i,u),d=null,l=!1;if(null!=o){for(var c=new Array(u),p=0;p<c.length;p++)c[p]=r[o[p]];i=n.backend_util.getInnerMostAxes(i.length,u),d=g({inputs:{x:e},attrs:{perm:o},backend:a});var f=a.dataIdMap.get(e.dataId).id;a.dataIdMap.get(d.dataId).id!==f&&(l=!0)}return{transposed:d,originalAxes:s,axes:i,inputWasTransposed:l}}var S,A={kernelName:n.All,backendName:"wasm",setupFunc:function(e){w=e.wasm.cwrap(n.All,null,["number, number, number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=r.axis,s=r.keepDims,i=a.x,o=t.dataIdMap.get(i.dataId).id,d=i,l=I(i,u,t),c=l.transposed,p=l.axes,f=l.originalAxes,m=l.inputWasTransposed;m&&(d=c,o=t.dataIdMap.get(c.dataId).id);var h=d.shape.length;n.backend_util.assertAxesAreInnerMostDims("all",p,h);var b=n.backend_util.computeOutAndReduceShapes(d.shape,p),y=b[0],_=b[1],v=n.util.sizeFromShape(_),g=t.makeOutput(y,i.dtype);if(0!==n.util.sizeFromShape(d.shape)){var k=t.dataIdMap.get(g.dataId).id;w(o,v,k)}if(m&&t.disposeData(c.dataId),s){var S=n.backend_util.expandShapeToKeepDim(g.shape,f);g.shape=S}return g}};var M,E={kernelName:n.Any,backendName:"wasm",setupFunc:function(e){S=e.wasm.cwrap(n.Any,null,["number, number, number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=r.axis,s=r.keepDims,i=a.x,o=t.dataIdMap.get(i.dataId).id,d=i,l=I(i,u,t),c=l.transposed,p=l.axes,f=l.originalAxes,m=l.inputWasTransposed;m&&(d=c,o=t.dataIdMap.get(c.dataId).id);var h=d.shape.length;n.backend_util.assertAxesAreInnerMostDims("any",p,h);var b=n.backend_util.computeOutAndReduceShapes(d.shape,p),y=b[0],_=b[1],v=n.util.sizeFromShape(_),g=t.makeOutput(y,i.dtype);if(0!==n.util.sizeFromShape(d.shape)){var w=t.dataIdMap.get(g.dataId).id;S(o,v,w)}if(m&&t.disposeData(c.dataId),s){var k=n.backend_util.expandShapeToKeepDim(g.shape,f);g.shape=k}return g}};var x,N={kernelName:n.ArgMax,backendName:"wasm",kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs.axis,u=a.x,s=t.dataIdMap.get(u.dataId).id,o=s,d=u,l=I(u,r,t),c=l.transposed,p=l.axes,f=l.inputWasTransposed;if(f){var m=t.dataIdMap.get(c.dataId).id;m!==s&&(d=c,o=m)}var h=d.shape.slice(0,-1),b=t.makeOutput(h,"int32"),y=t.dataIdMap.get(b.dataId).id,_=n.util.sizeFromShape(b.shape),v=d.shape[p[0]];return M(o,i[d.dtype],_,v,y),f&&t.disposeData(c.dataId),b},setupFunc:function(e){M=e.wasm.cwrap(n.ArgMax,null,["number","number","number","number","number"])}};var F={kernelName:n.AvgPool,backendName:"wasm",setupFunc:function(e){x=e.wasm.cwrap(n.AvgPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number"])},kernelFunc:function(e){var t=e.inputs,a=e.attrs,r=e.backend,u=t.x,s=r.dataIdMap.get(u.dataId).id,i=a.filterSize,o=a.strides,d=a.pad,l=a.dimRoundingMode,c=n.backend_util.computePool2DInfo(u.shape,i,o,1,d,l),p=c.filterHeight,f=c.filterWidth,m=c.padInfo.top,h=c.padInfo.right,b=c.padInfo.bottom,y=c.padInfo.left,_=c.strideHeight,v=c.strideWidth,g=c.inChannels;if("channelsLast"!==c.dataFormat)throw new Error("wasm backend does not support dataFormat:'"+c.dataFormat+"'. Please use 'channelsLast'.");if(1!==c.dilationWidth||1!==c.dilationHeight)throw new Error("was backend only supports average pooling with dilation = [1, 1], got ["+c.dilationHeight+", "+c.dilationWidth+"].");var w=r.makeOutput(c.outShape,"float32"),k=r.dataIdMap.get(w.dataId).id;return x(s,u.shape[0],u.shape[1],u.shape[2],p,f,m,h,b,y,_,v,g,k),w}};function T(e){var t=e.inputs,a=e.attrs,r=t.x,u=a.shape,s=n.util.sizeFromShape(r.shape),i=n.util.inferFromImplicitShape(u,s);return n.util.assert(s===n.util.sizeFromShape(i),(function(){return"new shape: "+i+", old shape: "+r.shape+". New shape and old shape must have the same number of elements."})),e.backend.incRef(r.dataId),{dataId:r.dataId,shape:i,dtype:r.dtype}}var O,C={kernelName:n.Reshape,backendName:"wasm",kernelFunc:T};var D={kernelName:n.BatchMatMul,backendName:"wasm",setupFunc:function(e){O=e.wasm.cwrap(n.BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])},kernelFunc:function(e){var t=e.inputs,a=e.backend,r=e.attrs,u=t.a,s=t.b,i=r.transposeA,o=r.transposeB;if("float32"!==u.dtype||"float32"!==s.dtype)throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");var d=u.shape.length,l=s.shape.length,c=i?u.shape[d-2]:u.shape[d-1],p=o?s.shape[l-1]:s.shape[l-2],f=i?u.shape[d-1]:u.shape[d-2],m=o?s.shape[l-2]:s.shape[l-1],h=u.shape.slice(0,-2),b=s.shape.slice(0,-2),y=n.util.sizeFromShape(h),_=n.util.sizeFromShape(b),v=y===_||1===y||1===_;n.util.assert(d>=2&&l>=2&&v,(function(){return"Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of ("+h+") and ("+b+")."}));var g=(y>_?u.shape.slice(0,-2):s.shape.slice(0,-2)).concat([f,m]);n.util.assert(c===p,(function(){return"Error in matMul: inner shapes ("+c+") and ("+p+") of Tensors with shapes "+u.shape+" and "+s.shape+" and transposeA="+i+" and transposeB="+o+" must match."}));var w=o?[_,m,p]:[_,p,m],k=T({inputs:{x:u},backend:a,attrs:{shape:i?[y,c,f]:[y,f,c]}}),I=T({inputs:{x:s},backend:a,attrs:{shape:w}}),S=a.dataIdMap.get(k.dataId).id,A=a.dataIdMap.get(I.dataId).id,M=i?k.shape[2]:k.shape[1],E=o?I.shape[1]:I.shape[2],x=Math.max(y,_),N=a.makeOutput([x,M,E],k.dtype),F=a.dataIdMap.get(N.dataId).id,C=new Uint8Array(new Int32Array(k.shape).buffer),D=new Uint8Array(new Int32Array(I.shape).buffer);return O(S,C,k.shape.length,A,D,I.shape.length,i,o,F),a.disposeData(k.dataId),a.disposeData(I.dataId),N.shape=g,N}};function R(e,t,a,r,u){const s=n.slice_util.isSliceContinous(r,t,a),i=n.util.sizeFromShape(a),o=n.util.computeStrides(r);if(s){const a=n.slice_util.computeFlatOffset(t,o);return"string"===u?e.slice(a,a+i):e.subarray(a,a+i)}const d="string"===u?n.backend_util.fromUint8ToStringArray(e):e,l=n.buffer(r,u,d),c=n.buffer(a,u);for(let e=0;e<c.size;++e){const n=c.indexToLoc(e),a=n.map(((e,n)=>e+t[n]));c.set(l.get(...a),...n)}return"string"===u?n.backend_util.fromStringArrayToUint8(c.values):c.values}function P(e){var t=e.inputs.x,a=e.attrs,r=a.begin,u=a.size,s=e.backend,i=n.slice_util.parseSliceParams(t,r,u),o=i[0],d=i[1],l=n.slice_util.isSliceContinous(t.shape,o,d),c=s.readSync(t.dataId),p=s.makeOutput(d,t.dtype),f=n.util.computeStrides(t.shape),m=s.dataIdMap.get(p.dataId);if(l){var h=n.slice_util.computeFlatOffset(o,f);if("string"===t.dtype)m.stringBytes=c.slice(h,h+n.util.sizeFromShape(d));else s.typedArrayFromHeap(p).set(c.subarray(h,h+n.util.sizeFromShape(d)));return p}if("string"===t.dtype){var b=R(c,o,d,t.shape,t.dtype);return m.stringBytes=b,p}var y=s.typedArrayFromHeap(p),_=t.shape.length;if(2===_)!function(e,n,t,a,r){for(var u=0,s=a[0],i=a[1],o=s+r[0],d=s;d<o;d++){var l=d*n+i;t.set(e.subarray(l,l+r[1]),u),u+=r[1]}}(c,f[0],y,o,d);else if(3===_)!function(e,n,t,a,r,u){for(var s=0,i=r[0],o=r[1],d=r[2],l=i+u[0],c=o+u[1],p=i;p<l;p++)for(var f=o;f<c;f++){var m=p*n+f*t+d;a.set(e.subarray(m,m+u[2]),s),s+=u[2]}}(c,f[0],f[1],y,o,d);else if(4===_)!function(e,n,t,a,r,u,s){for(var i=0,o=u[0],d=u[1],l=u[2],c=o+s[0],p=d+s[1],f=l+s[2],m=u[3],h=o;h<c;h++)for(var b=d;b<p;b++)for(var y=l;y<f;y++){var _=h*n+b*t+y*a+m;r.set(e.subarray(_,_+s[3]),i),i+=s[3]}}(c,f[0],f[1],f[2],y,o,d);else{b=R(c,o,d,t.shape,t.dtype);y.set(b)}return p}var W={kernelName:n.Slice,backendName:"wasm",kernelFunc:P};var L={kernelName:n.BatchToSpaceND,backendName:"wasm",kernelFunc:function(e){var t=e.inputs,a=e.backend,r=e.attrs,u=t.x,s=r.blockShape,i=r.crops,o=s.reduce((function(e,n){return e*n})),d=n.backend_util.getReshaped(u.shape,s,o),l=n.backend_util.getPermuted(d.length,s.length),c=n.backend_util.getReshapedPermuted(u.shape,s,o),p=n.backend_util.getSliceBeginCoords(i,s.length),f=n.backend_util.getSliceSize(c,i,s.length),m=T({inputs:{x:u},backend:a,attrs:{shape:d}}),h=g({inputs:{x:m},backend:a,attrs:{perm:l}}),b=P({inputs:{x:T({inputs:{x:h},backend:a,attrs:{shape:c}})},backend:a,attrs:{begin:p,size:f}});return a.disposeData(m.dataId),a.disposeData(h.dataId),a.disposeData(m.dataId),b}};function H(e){var n=e.inputs.x,t=e.attrs.dtype,a=e.backend,r=a.makeOutput(n.shape,t),u=a.typedArrayFromHeap(n);return a.typedArrayFromHeap(r).set(u),r}var B,U={kernelName:n.Cast,backendName:"wasm",kernelFunc:H},z=c(n.Ceil);var j={kernelName:n.ClipByValue,backendName:"wasm",setupFunc:function(e){B=e.wasm.cwrap(n.ClipByValue,null,["number","number","number","number"])},kernelFunc:function(e){var n=e.inputs,t=e.backend,a=e.attrs,r=n.x,u=a.clipValueMin,s=a.clipValueMax,i=t.dataIdMap.get(r.dataId).id,o=t.makeOutput(r.shape,r.dtype),d=t.dataIdMap.get(o.dataId).id;return B(i,u,s,d),o}};function q(e){var t=e.inputs,a=e.backend,r=n.util.parseAxisParam(e.attrs.axis,t[0].shape)[0],u=n.backend_util.computeOutShape(t.map((function(e){return e.shape})),r),s=t.filter((function(e){return n.util.sizeFromShape(e.shape)>0}));if(1===s.length)return y({inputs:{x:s[0]},backend:a});var i=a.makeOutput(u,t[0].dtype);if(0===n.util.sizeFromShape(u))return i;var o=s.map((function(e){return e.shape}));if(n.backend_util.assertParamsConsistent(o,r),"string"===s[0].dtype){var d=s.map((function(e){var t=n.util.sizeFromShape(e.shape.slice(r));return T({inputs:{x:e},backend:a,attrs:{shape:[-1,t]}})})),l=d.map((function(e){return{vals:a.readSync(e.dataId),shape:e.shape}}));u=n.backend_util.computeOutShape(d.map((function(e){return e.shape})),1);var c=1===d[0].shape[0],p=function(e,t,a,r){const u=n.util.getArrayFromDType(a,n.util.sizeFromShape(t));if(r&&"string"!==a){let t=0;e.forEach((e=>{const a=n.util.sizeFromShape(e.shape);u.set(e.vals,t),t+=a}))}else{let r=0;e.forEach((e=>{const s="string"===a?n.backend_util.fromUint8ToStringArray(e.vals):e.vals;let i=0;for(let n=0;n<e.shape[0];++n){const a=n*t[1]+r;for(let n=0;n<e.shape[1];++n)u[a+n]=s[i++]}r+=e.shape[1]}))}return u}(l,u,t[0].dtype,c),f=n.backend_util.computeOutShape(s.map((function(e){return e.shape})),r);return i.shape=f,a.dataIdMap.get(i.dataId).stringBytes=n.backend_util.fromStringArrayToUint8(p),d.forEach((function(e){return a.disposeData(e.dataId)})),i}for(var m=n.util.sizeFromShape(s[0].shape.slice(0,r)),h=0,b=s.map((function(e){var t=n.util.sizeFromShape(e.shape.slice(r));return h+=t,t})),_=s.map((function(e){return a.typedArrayFromHeap(e)})),v=a.typedArrayFromHeap(i),g=0;g<m;g++)for(var w=g*h,k=0;k<_.length;k++){var I=b[k],S=g*I,A=_[k].subarray(S,S+I);v.set(A,w),w+=I}return i}var V,G={kernelName:n.Concat,backendName:"wasm",kernelFunc:q};var K,X={kernelName:n.Conv2D,backendName:"wasm",setupFunc:function(e){V=e.wasm.cwrap(n.Conv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])},kernelFunc:function(e){var t=e.inputs,a=e.attrs,r=e.backend,u=t.x,s=t.filter,i=r.dataIdMap.get(u.dataId).id,o=r.dataIdMap.get(s.dataId).id,d=a.strides,l=a.dilations,c=a.pad,p=a.dimRoundingMode,f=a.dataFormat,m=n.backend_util.convertConv2DDataFormat(f),h=n.backend_util.computeConv2DInfo(u.shape,s.shape,d,l,c,p,!1,m),b=h.filterHeight,y=h.filterWidth,_=h.padInfo.top,v=h.padInfo.right,g=h.padInfo.bottom,w=h.padInfo.left,k=h.dilationHeight,I=h.dilationWidth,S=h.strideHeight,A=h.strideWidth,M=h.inChannels,E=h.outChannels,x="SAME"===h.padInfo.type?1:0;if("channelsLast"!==h.dataFormat)throw new Error("wasm backend Conv2D does not support dataFormat:'"+h.dataFormat+"'. Please use 'channelsLast'.");var N=r.makeOutput(h.outShape,"float32"),F=r.dataIdMap.get(N.dataId).id;return V(i,u.shape[0],u.shape[1],u.shape[2],o,b,y,_,v,g,w,x,k,I,S,A,M,E,F),N}};var Q,Y,Z={kernelName:n.Conv2DBackpropInput,backendName:"wasm",setupFunc:function(e){K=e.wasm.cwrap(n.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"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=a.dy,s=a.filter,i=r.strides,o=r.pad,d=r.dataFormat,l=r.dimRoundingMode,c=r.inputShape,p=n.backend_util.convertConv2DDataFormat(d),f=n.backend_util.computeConv2DInfo(c,s.shape,i,1,o,l,!1,p),m=f.batchSize,h=f.filterHeight,b=f.filterWidth,y=f.inChannels,_=f.inHeight,v=f.inWidth,g=f.outChannels,w=f.outHeight,k=f.outWidth,I=f.strideHeight,S=f.strideWidth,A=h-1-f.padInfo.top,M=b-1-f.padInfo.left,E="channelsLast"===f.dataFormat,x=n.util.computeStrides(f.inShape),N=n.util.computeStrides(u.shape),F=n.util.computeStrides(s.shape),T=F[0],O=F[1],C=F[2],D=x[0],R=E?x[1]:x[2],P=E?x[2]:1,W=E?1:x[1],L=N[0],H=E?N[1]:N[2],B=E?N[2]:1,U=E?1:N[1],z=t.makeOutput(f.inShape,"float32"),j=t.dataIdMap.get(z.dataId).id,q=t.dataIdMap.get(u.dataId).id,V=t.dataIdMap.get(s.dataId).id;return K(q,V,m,h,b,_,v,y,w,k,g,I,S,A,M,T,O,C,D,R,P,W,L,H,B,U,j),z}},J=c(n.Cos),$=c(n.Cosh);!function(e){e[e.bilinear=0]="bilinear",e[e.nearest=1]="nearest"}(Q||(Q={}));var ee,ne={kernelName:n.CropAndResize,backendName:"wasm",setupFunc:function(e){Y=e.wasm.cwrap(n.CropAndResize,null,["number","number","number","number","array","number","number","number","number","number"])},kernelFunc:function(e){var n,t=e.backend,a=e.inputs,r=e.attrs,u=r.method,s=r.extrapolationValue,i=r.cropSize,o=a.image,d=a.boxes,l=a.boxInd,c=d.shape[0],p=i,f=p[0],m=p[1],h=[c,f,m,o.shape[3]],b=t.dataIdMap.get(o.dataId);"float32"!==o.dtype&&(n=H({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),b=t.dataIdMap.get(n.dataId));var y=b.id,_=t.dataIdMap.get(d.dataId).id,v=t.dataIdMap.get(l.dataId).id,g=t.makeOutput(h,"float32"),w=t.dataIdMap.get(g.dataId).id,k=new Uint8Array(new Int32Array(o.shape).buffer);return Y(y,_,v,c,k,f,m,Q[u],s,w),null!=n&&t.disposeData(n.dataId),g}};var te,ae={kernelName:n.Cumsum,backendName:"wasm",setupFunc:function(e){ee=e.wasm.cwrap(n.Cumsum,null,["number","number","number","number","number","number"])},kernelFunc:function(e){var t=e.inputs,a=e.backend,r=e.attrs,u=t.x,s=r.axis,o=r.exclusive,d=r.reverse,l=u.shape.length;n.util.assert("float32"===u.dtype||"int32"===u.dtype,(function(){return"cumsum does not support "+u.dtype+" tensors in the WASM backend"}));var c=n.backend_util.getAxesPermutation([s],l),p=u;null!==c&&(p=g({inputs:{x:u},attrs:{perm:c},backend:a}));var f=n.backend_util.getInnerMostAxes(1,l)[0];n.backend_util.assertAxesAreInnerMostDims("cumsum",[f],l);var m=a.makeOutput(p.shape,p.dtype),h=p.shape[f],b=a.dataIdMap.get(p.dataId).id,y=a.dataIdMap.get(m.dataId).id;ee(b,o?1:0,d?1:0,h,y,i[u.dtype]);var _=m;return null!==c&&(_=g({inputs:{x:m},attrs:{perm:n.backend_util.getUndoAxesPermutation(c)},backend:a}),a.disposeData(p.dataId),a.disposeData(m.dataId)),_}};var re,ue={kernelName:n.DepthToSpace,backendName:"wasm",setupFunc:function(e){te=e.wasm.cwrap(n.DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=a.x,s=r.blockSize,i=r.dataFormat,o=u.shape[0],d=("NHWC"===i?u.shape[1]:u.shape[2])*s,l=("NHWC"===i?u.shape[2]:u.shape[3])*s,c=("NHWC"===i?u.shape[3]:u.shape[1])/(s*s),p="NHWC"===i?[o,d,l,c]:[o,c,d,l],f=t.makeOutput(p,"float32"),m=t.dataIdMap.get(u.dataId).id,h=new Uint8Array(new Int32Array(n.util.computeStrides(u.shape)).buffer),b=new Uint8Array(new Int32Array(p).buffer),y=new Uint8Array(new Int32Array(n.util.computeStrides(p)).buffer),_=t.dataIdMap.get(f.dataId).id;return te(m,s,"NHWC"===i?1:0,h,u.shape.length-1,b,y,p.length,_),f}};var se={kernelName:n.DepthwiseConv2dNative,backendName:"wasm",setupFunc:function(e){re=e.wasm.cwrap(n.DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])},kernelFunc:function(e){var t=e.inputs,a=e.attrs,r=e.backend,u=t.x,s=t.filter,i=r.dataIdMap.get(u.dataId).id,o=r.dataIdMap.get(s.dataId).id,d=a.strides,l=a.dilations,c=a.pad,p=a.dimRoundingMode,f=null==l?[1,1]:l,m=n.backend_util.computeConv2DInfo(u.shape,s.shape,d,f,c,p,!0),h=m.filterHeight,b=m.filterWidth,y=m.padInfo.top,_=m.padInfo.right,v=m.padInfo.bottom,g=m.padInfo.left,w=m.dilationHeight,k=m.dilationWidth,I=m.strideHeight,S=m.strideWidth,A=m.inChannels,M=m.outChannels,E="SAME"===m.padInfo.type?1:0;if("channelsLast"!==m.dataFormat)throw new Error("wasm backend DepthwiseConv2dNative does not support dataFormat:'"+m.dataFormat+"'. Please use 'channelsLast'.");var x=r.makeOutput(m.outShape,"float32"),N=r.dataIdMap.get(x.dataId).id;return re(i,u.shape[0],u.shape[1],u.shape[2],o,h,b,y,_,v,g,E,w,k,I,S,A,M,N),x}},ie=c(n.Elu),oe=f(n.Equal,!1,"bool"),de=c(n.Exp,"float32");function le(e){var t=e.inputs,a=e.attrs,r=e.backend,u=t.input,s=a.dim,i=u.shape.length,o=u.shape.slice(),d=s;return s<0&&(n.util.assert(-(i+1)<=s,(function(){return"Axis must be in the interval ["+-(i+1)+", "+i+"]"})),d=i+s+1),o.splice(d,0,1),T({inputs:{x:u},backend:r,attrs:{shape:o}})}var ce={kernelName:n.ExpandDims,backendName:"wasm",kernelFunc:le};function pe(e){var n=e.attrs,t=n.shape,a=n.value,r=n.dtype,u=e.backend,s=u.makeOutput(t,r);return u.typedArrayFromHeap(s).fill(a),s}var fe,me={kernelName:n.Fill,backendName:"wasm",kernelFunc:pe};var he,be={kernelName:n.FlipLeftRight,backendName:"wasm",kernelFunc:function(e){var n=e.inputs,t=e.backend,a=n.image,r=t.makeOutput(a.shape,a.dtype),u=t.dataIdMap.get(a.dataId).id,s=t.dataIdMap.get(r.dataId).id,i=a.shape,o=i[0],d=i[1],l=i[2],c=i[3];return fe(u,o,d,l,c,s),r},setupFunc:function(e){fe=e.wasm.cwrap(n.FlipLeftRight,null,["number","number","number","number","number","number"])}},ye=c(n.Floor),_e=f(n.FloorDiv,!1);var ve,ge={kernelName:n.FusedBatchNorm,backendName:"wasm",setupFunc:function(e){he=e.wasm.cwrap(n.FusedBatchNorm,null,["number","number","number","number","number","number","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs.varianceEpsilon,u=a.x,s=a.mean,i=a.variance,o=a.offset,d=a.scale,l=t.dataIdMap.get(u.dataId).id,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,f=null!=o?t.dataIdMap.get(o.dataId).id:0,m=null!=d?t.dataIdMap.get(d.dataId).id:0,h=t.makeOutput(u.shape,u.dtype);if(0===n.util.sizeFromShape(u.shape))return h;var b=t.dataIdMap.get(h.dataId).id;return he(l,c,p,f,m,r,b),h}};var we,ke={kernelName:n.FusedConv2D,backendName:"wasm",setupFunc:function(e){ve=e.wasm.cwrap(n.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"])},kernelFunc:function(e){var t=e.inputs,a=e.attrs,r=e.backend,u=t.x,s=t.filter,i=t.bias,d=t.preluActivationWeights,l=a.strides,c=a.pad,p=a.dilations,f=a.dataFormat,m=a.dimRoundingMode,h=a.activation,b=a.leakyreluAlpha,y=n.backend_util.computeConv2DInfo(u.shape,s.shape,l,p,c,m),_=o[h];if(null==_)throw new Error(h+" activation not yet supported for FusedConv2D in the wasm backend.");var v=r.dataIdMap.get(u.dataId).id,g=r.dataIdMap.get(s.dataId).id,w=y.outChannels,k=0;if(null!=i){var I=r.dataIdMap.get(i.dataId);if(1!==I.shape.length)throw new Error("FusedConv2D only supports rank-1 bias but got rank "+I.shape.length+".");if(I.shape[0]!==w)throw new Error("FusedConv2D bias shape ("+I.shape+") does not match the number of output channels ("+w+")");k=I.id}var S=y.filterHeight,A=y.filterWidth,M=y.padInfo.top,E=y.padInfo.right,x=y.padInfo.bottom,N=y.padInfo.left,F=y.dilationHeight,T=y.dilationWidth,O=y.strideHeight,C=y.strideWidth,D=y.inChannels,R="SAME"===y.padInfo.type?1:0,P=y.batchSize,W=y.inHeight,L=y.inWidth;if("NHWC"!==f)throw new Error("wasm backend FusedConv2D does not support dataFormat:'"+f+"'. Please use 'NHWC'.");var H=r.makeOutput(y.outShape,"float32"),B=r.dataIdMap.get(H.dataId).id,U=null==d?0:r.dataIdMap.get(d.dataId).id;return ve(v,P,W,L,g,S,A,k,M,E,x,N,R,F,T,O,C,D,w,_,U,b||0,B),H}};var Ie,Se={kernelName:n.FusedDepthwiseConv2D,backendName:"wasm",setupFunc:function(e){we=e.wasm.cwrap(n.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"])},kernelFunc:function(e){var t=e.inputs,a=e.attrs,r=e.backend,u=t.x,s=t.filter,i=t.bias,d=t.preluActivationWeights,l=a.strides,c=a.pad,p=a.dilations,f=a.dataFormat,m=a.dimRoundingMode,h=a.activation,b=a.leakyreluAlpha,y=n.backend_util.computeConv2DInfo(u.shape,s.shape,l,p,c,m,!0),_=o[h];if(null==_)throw new Error(h+" activation not yet supported for FusedDepthwiseConv2D in the wasm backend.");var v=r.dataIdMap.get(u.dataId).id,g=r.dataIdMap.get(s.dataId).id,w=y.outChannels,k=0;if(null!=i){var I=r.dataIdMap.get(i.dataId);if(1!==I.shape.length)throw new Error("FusedDepthwiseConv2D only supports rank-1 bias but got rank "+I.shape.length+".");if(I.shape[0]!==w)throw new Error("FusedDepthwiseConv2D bias shape ("+I.shape+") does not match the number of output channels ("+w+")");k=I.id}var S=y.filterHeight,A=y.filterWidth,M=y.padInfo.top,E=y.padInfo.right,x=y.padInfo.bottom,N=y.padInfo.left,F=y.dilationHeight,T=y.dilationWidth,O=y.strideHeight,C=y.strideWidth,D=y.inChannels,R="SAME"===y.padInfo.type?1:0,P=y.batchSize,W=y.inHeight,L=y.inWidth;if("NHWC"!==f)throw new Error("wasm backend FusedDepthwiseConv2D does not support dataFormat:'"+f+"'. Please use 'NHWC'.");var H=r.makeOutput(y.outShape,"float32"),B=r.dataIdMap.get(H.dataId).id,U=null==d?0:r.dataIdMap.get(d.dataId).id;return we(v,P,W,L,g,S,A,k,M,E,x,N,R,F,T,O,C,D,w,_,U,b||0,B),H}};var Ae,Me={kernelName:n.GatherNd,backendName:"wasm",setupFunc:function(e){Ie=e.wasm.cwrap(n.GatherNd,null,["number","number","number","number","number","number","array","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=a.params,u=a.indices,s=n.gather_util.prepareAndValidate(r,u),o=s[0],d=s[1],l=s[2],c=s[3],p=t.makeOutput(o,r.dtype);if(0===d)return p;var f=u.shape,m=f[f.length-1],h=t.dataIdMap.get(r.dataId).id,b=t.dataIdMap.get(u.dataId).id,y=new Uint8Array(new Int32Array(c).buffer),_=t.dataIdMap.get(p.dataId).id;return Ie(h,i[r.dtype],b,d,m,l,y,_),p}};var Ee,xe={kernelName:n.GatherV2,backendName:"wasm",setupFunc:function(e){Ae=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])},kernelFunc:function(e){for(var t=e.backend,a=e.inputs,r=e.attrs,u=a.x,s=a.indices,o=r.axis,d=r.batchDims,l=n.util.parseAxisParam(o,u.shape)[0],c=t.readSync(s.dataId),p=u.shape[l],f=function(e){var t=c[e];n.util.assert(t<=p-1&&t>=0,(function(){return"GatherV2: the index value "+t+" is not in [0, "+(p-1)+"]"}))},m=0;m<c.length;++m)f(m);var h=n.backend_util.segment_util.collectGatherOpShapeInfo(u,s,l,d),b=T({inputs:{x:u},attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]},backend:t}),y=n.util.sizeFromShape(s.shape),_=T({inputs:{x:s},attrs:{shape:[h.batchSize,y/h.batchSize]},backend:t}),v=[h.batchSize,h.outerSize,y/h.batchSize,h.sliceSize],g=t.makeOutput(v,u.dtype);if(0===n.util.sizeFromShape(u.shape))return g;var w=b.shape.length-1,k=t.dataIdMap.get(b.dataId).id,I=t.dataIdMap.get(_.dataId).id,S=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(n.util.computeStrides(b.shape)).buffer),M=new Uint8Array(new Int32Array(n.util.computeStrides(v)).buffer);return Ae(k,i[u.dtype],A,w,I,h.batchSize,M,S),t.disposeData(b.dataId),t.disposeData(_.dataId),g.shape=h.outputShape,g}},Ne=f(n.Greater,!1,"bool"),Fe=f(n.GreaterEqual,!1,"bool");var Te,Oe={kernelName:n.LeakyRelu,backendName:"wasm",setupFunc:function(e){Ee=e.wasm.cwrap(n.LeakyRelu,null,["number","number","number","number"])},kernelFunc:function(e){var t=e.inputs.x,a=e.attrs.alpha,r=e.backend,u=r.dataIdMap.get(t.dataId).id,s=r.makeOutput(t.shape,"float32");if(0!==n.util.sizeFromShape(t.shape)){var o=r.dataIdMap.get(s.dataId).id;Ee(u,i[t.dtype],a,o)}return s}},Ce=f(n.Less,!1,"bool"),De=f(n.LessEqual,!1,"bool"),Re=c(n.Log),Pe=f(n.LogicalAnd,!1,"bool");var We,Le={kernelName:n.Max,backendName:"wasm",setupFunc:function(e){Te=e.wasm.cwrap(n.Max,null,["number","number","number","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=r.reductionIndices,s=r.keepDims,o=a.x,d=t.dataIdMap.get(o.dataId).id,l=o,c=I(o,u,t),p=c.transposed,f=c.axes,m=c.originalAxes,h=c.inputWasTransposed;h&&(l=p,d=t.dataIdMap.get(p.dataId).id);var b=l.shape.length;n.backend_util.assertAxesAreInnerMostDims("max",f,b);var y=n.backend_util.computeOutAndReduceShapes(l.shape,f),_=y[0],v=y[1],g=n.util.sizeFromShape(v),w=t.makeOutput(_,o.dtype);if(0!==n.util.sizeFromShape(l.shape)){var k=t.dataIdMap.get(w.dataId).id;Te(d,i[o.dtype],g,k)}if(h&&t.disposeData(p.dataId),s){var S=n.backend_util.expandShapeToKeepDim(w.shape,m);w.shape=S}return w}},He=f(n.Maximum,!1);var Be,Ue={kernelName:n.MaxPool,backendName:"wasm",setupFunc:function(e){We=e.wasm.cwrap(n.MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])},kernelFunc:function(e){var t=e.inputs,a=e.attrs,r=e.backend,u=t.x,s=r.dataIdMap.get(u.dataId).id;n.util.assert("float32"===u.dtype,(function(){return"Error in MaxPool: only float32 input is supported. Got "+u.dtype+"."}));var i=a.filterSize,o=a.strides,d=a.pad,l=a.dimRoundingMode,c=n.backend_util.computePool2DInfo(u.shape,i,o,1,d,l),p=c.filterHeight,f=c.filterWidth,m=c.padInfo.top,h=c.padInfo.right,b=c.padInfo.bottom,y=c.padInfo.left,_=c.dilationHeight,v=c.dilationWidth,g=c.strideHeight,w=c.strideWidth,k=c.inChannels,I=c.outChannels;if("channelsLast"!==c.dataFormat)throw new Error("wasm backend does not support dataFormat:'"+c.dataFormat+"'. Please use 'channelsLast'.");var S=r.makeOutput(c.outShape,"float32"),A=r.dataIdMap.get(S.dataId).id;return We(s,u.shape[0],u.shape[1],u.shape[2],p,f,m,h,b,y,_,v,g,w,k,I,A),S}};var ze,je={kernelName:n.Mean,backendName:"wasm",setupFunc:function(e){Be=e.wasm.cwrap(n.Mean,null,["number, number, number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=r.axis,s=r.keepDims,i=a.x,o=t.dataIdMap.get(i.dataId).id,d=o,l=i,c=I(i,u,t),p=c.transposed,f=c.axes,m=c.originalAxes,h=c.inputWasTransposed,b=f;if(h){var y=t.dataIdMap.get(p.dataId).id;y!==o&&(l=p,d=y,b=n.backend_util.getInnerMostAxes(b.length,l.shape.length))}n.backend_util.assertAxesAreInnerMostDims("mean",b,l.shape.length);var _=n.backend_util.computeOutAndReduceShapes(l.shape,b),v=_[0],g=_[1],w=n.util.sizeFromShape(g),k=l;"float32"!==l.dtype&&(k=H({backend:t,inputs:{x:l},attrs:{dtype:"float32"}}),d=t.dataIdMap.get(k.dataId).id);var S=t.makeOutput(v,"float32");if(0!==n.util.sizeFromShape(l.shape)){var A=t.dataIdMap.get(S.dataId).id;Be(d,w,A)}if(h&&t.disposeData(p.dataId),s){var M=n.backend_util.expandShapeToKeepDim(S.shape,m);S.shape=M}return"float32"!==l.dtype&&t.disposeData(k.dataId),S}};var qe,Ve,Ge={kernelName:n.Min,backendName:"wasm",setupFunc:function(e){ze=e.wasm.cwrap(n.Min,null,["number","number","number","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=r.axis,s=r.keepDims,o=a.x,d=t.dataIdMap.get(o.dataId).id,l=d,c=o,p=I(o,u,t),f=p.transposed,m=p.axes,h=p.originalAxes,b=p.inputWasTransposed;if(b){var y=t.dataIdMap.get(f.dataId).id;y!==d&&(c=f,l=y)}var _=c.shape.length;n.backend_util.assertAxesAreInnerMostDims("min",m,_);var v=n.backend_util.computeOutAndReduceShapes(c.shape,m),g=v[0],w=v[1],k=n.util.sizeFromShape(w),S=t.makeOutput(g,c.dtype);if(0!==n.util.sizeFromShape(c.shape)){var A=t.dataIdMap.get(S.dataId).id;ze(l,i[o.dtype],k,A)}if(b&&t.disposeData(f.dataId),s){var M=n.backend_util.expandShapeToKeepDim(S.shape,h);S.shape=M}return S}},Ke=f(n.Minimum,!1);!function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"}(qe||(qe={}));var Xe,Qe={kernelName:n.MirrorPad,backendName:"wasm",kernelFunc:function(e){var n=e.inputs.x,t=e.backend,a=e.attrs,r=a.paddings,u=a.mode,s=r.map((function(e,t){return e[0]+n.shape[t]+e[1]})),o=t.dataIdMap.get(n.dataId).id,d=t.makeOutput(s,n.dtype),l=t.dataIdMap.get(d.dataId).id,c=new Uint8Array(new Int32Array(n.shape).buffer),p=r.map((function(e){return e[0]})),f=r.map((function(e){return e[1]})),m=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(f).buffer);return Ve(o,c,n.shape.length,i[n.dtype],m,h,qe[u],l),d},setupFunc:function(e){Ve=e.wasm.cwrap(n.MirrorPad,null,["number","array","number","number","array","array","number","number"])}},Ye=f(n.Multiply,!0),Ze=c(n.Neg);function Je(e,n){var t=new Int32Array(e.wasm.HEAPU8.buffer,n,4),a=t[0],r=t[1],u=t[2],s=t[3];return e.wasm._free(n),{pSelectedIndices:a,selectedSize:r,pSelectedScores:u,pValidOutputs:s}}var $e,en={kernelName:n.NonMaxSuppressionV3,backendName:"wasm",setupFunc:function(e){Xe=e.wasm.cwrap(n.NonMaxSuppressionV3,"number",["number","number","number","number","number"])},kernelFunc:function(e){var n=e.backend,t=e.inputs,a=e.attrs,r=a.iouThreshold,u=a.maxOutputSize,s=a.scoreThreshold,i=t.boxes,o=t.scores,d=n.dataIdMap.get(i.dataId).id,l=n.dataIdMap.get(o.dataId).id,c=Je(n,Xe(d,l,u,r,s)),p=c.pSelectedIndices,f=c.selectedSize,m=c.pSelectedScores,h=c.pValidOutputs;return n.wasm._free(m),n.wasm._free(h),n.makeOutput([f],"int32",p)}};var nn,tn={kernelName:n.NonMaxSuppressionV4,backendName:"wasm",setupFunc:function(e){$e=e.wasm.cwrap(n.NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])},kernelFunc:function(e){var n=e.backend,t=e.inputs,a=e.attrs,r=a.iouThreshold,u=a.maxOutputSize,s=a.scoreThreshold,i=a.padToMaxOutputSize,o=t.boxes,d=t.scores,l=n.dataIdMap.get(o.dataId).id,c=n.dataIdMap.get(d.dataId).id,p=Je(n,$e(l,c,u,r,s,i)),f=p.pSelectedIndices,m=p.selectedSize,h=p.pSelectedScores,b=p.pValidOutputs;return n.wasm._free(h),[n.makeOutput([m],"int32",f),n.makeOutput([],"int32",b)]}};var an,rn={kernelName:n.NonMaxSuppressionV5,backendName:"wasm",setupFunc:function(e){nn=e.wasm.cwrap(n.NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])},kernelFunc:function(e){var n=e.backend,t=e.inputs,a=e.attrs,r=a.iouThreshold,u=a.maxOutputSize,s=a.scoreThreshold,i=a.softNmsSigma,o=t.boxes,d=t.scores,l=n.dataIdMap.get(o.dataId).id,c=n.dataIdMap.get(d.dataId).id,p=Je(n,nn(l,c,u,r,s,i)),f=p.pSelectedIndices,m=p.selectedSize,h=p.pSelectedScores,b=p.pValidOutputs;return n.wasm._free(b),[n.makeOutput([m],"int32",f),n.makeOutput([m],"float32",h)]}},un=f(n.NotEqual,!1,"bool");var sn={kernelName:n.OneHot,backendName:"wasm",setupFunc:function(e){an=e.wasm.cwrap(n.OneHot,null,["number","number","number","number","number"])},kernelFunc:function(e){var n=e.inputs,t=e.backend,a=e.attrs,r=n.indices,u=a.depth,s=a.onValue,i=a.offValue,o=t.makeOutput(r.shape.concat([u]),"int32"),d=t.dataIdMap.get(o.dataId).id,l=t.dataIdMap.get(r.dataId).id;return an(l,u,s,i,d),o}};var on={kernelName:n.OnesLike,backendName:"wasm",kernelFunc:function(e){var n=e.inputs.x,t=e.backend,a=t.makeOutput(n.shape,n.dtype);return t.typedArrayFromHeap(a).fill(1),a}};var dn,ln={kernelName:n.Pack,backendName:"wasm",kernelFunc:function(e){var t=e.inputs,a=e.backend,r=e.attrs.axis;if(1===t.length)return le({inputs:{input:t[0]},backend:a,attrs:{dim:r}});var u=t[0].shape,s=t[0].dtype;t.forEach((function(e){n.util.assertShapesMatch(u,e.shape,"All tensors passed to stack must have matching shapes"),n.util.assert(s===e.dtype,(function(){return"All tensors passed to stack must have matching dtypes"}))}));var i=[],o=q({inputs:t.map((function(e){var n=le({inputs:{input:e},backend:a,attrs:{dim:r}});return i.push(n),n})),backend:a,attrs:{axis:r}});return i.forEach((function(e){return a.disposeData(e.dataId)})),o}};var cn,pn={kernelName:n.PadV2,backendName:"wasm",kernelFunc:function(e){var t=e.inputs.x,a=e.backend,r=e.attrs,u=r.paddings,s=r.constantValue,o=u.map((function(e,n){return e[0]+t.shape[n]+e[1]}));if(0===n.util.sizeFromShape(t.shape))return pe({backend:a,attrs:{shape:o,value:s,dtype:t.dtype}});var d=a.dataIdMap.get(t.dataId).id,l=a.makeOutput(o,t.dtype),c=a.dataIdMap.get(l.dataId).id,p=new Uint8Array(new Int32Array(t.shape).buffer),f=u.map((function(e){return e[0]})),m=u.map((function(e){return e[1]})),h=new Uint8Array(new Int32Array(f).buffer),b=new Uint8Array(new Int32Array(m).buffer);return dn(d,p,t.shape.length,i[t.dtype],h,b,s,c),l},setupFunc:function(e){dn=e.wasm.cwrap(n.PadV2,null,["number","array","number","number","array","array","number","number"])}},fn=f(n.Pow,!1);var mn,hn={kernelName:n.Prelu,backendName:"wasm",setupFunc:function(e){cn=e.wasm.cwrap(n.Prelu,null,["number","number","number"])},kernelFunc:function(e){var n=e.inputs,t=e.backend,a=n.x,r=n.alpha,u=t.dataIdMap.get(a.dataId).id,s=t.dataIdMap.get(r.dataId).id,i=u,o=a,d=o;"float32"!==o.dtype&&(d=H({backend:t,inputs:{x:a},attrs:{dtype:"float32"}}),i=t.dataIdMap.get(d.dataId).id);var l=t.makeOutput(a.shape,"float32"),c=t.dataIdMap.get(l.dataId).id;return cn(i,s,c),"float32"!==o.dtype&&t.disposeData(d.dataId),l}};var bn,yn={kernelName:n.Prod,backendName:"wasm",setupFunc:function(e){mn=e.wasm.cwrap(n.Prod,null,["number","number","number","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=r.axis,s=r.keepDims,o=a.x,d=t.dataIdMap.get(o.dataId).id,l=d,c=o,p=I(o,u,t),f=p.transposed,m=p.axes,h=p.originalAxes,b=p.inputWasTransposed,y=m;if(b){var _=t.dataIdMap.get(f.dataId).id;_!==d&&(c=f,l=_,y=n.backend_util.getInnerMostAxes(y.length,c.shape.length))}n.backend_util.assertAxesAreInnerMostDims("prod",y,c.shape.length);var v=n.backend_util.computeOutAndReduceShapes(c.shape,y),g=v[0],w=v[1],k=n.util.sizeFromShape(w),S=t.makeOutput(g,c.dtype);if(0!==n.util.sizeFromShape(c.shape)){var A=t.dataIdMap.get(S.dataId).id;mn(l,k,i[S.dtype],A)}if(b&&t.disposeData(f.dataId),s){var M=n.backend_util.expandShapeToKeepDim(S.shape,h);S.shape=M}return S}},_n={kernelName:n.Range,backendName:"wasm",kernelFunc:function(e){var t=e.backend,a=e.attrs,r=a.start,u=a.stop,s=a.step,i=a.dtype,o=function(e,t,a,r){if(e===t||e<t&&a<0||t<e&&a>1)return n.util.makeZerosTypedArray(0,r);const u=Math.abs(Math.ceil((t-e)/a)),s=n.util.makeZerosTypedArray(u,r);t<e&&1===a&&(a=-1),s[0]=e;for(let e=1;e<s.length;e++)s[e]=s[e-1]+a;return s}(r,u,s,i),d=t.makeOutput([o.length],i);return t.typedArrayFromHeap(d).set(o),d}},vn=f(n.RealDiv,!0),gn=c(n.Relu),wn=c(n.Relu6);var kn,In={kernelName:n.ResizeBilinear,backendName:"wasm",setupFunc:function(e){bn=e.wasm.cwrap(n.ResizeBilinear,null,["number","number","number","number","number","number","number","number","number","number"])},kernelFunc:function(e){var t,a=e.backend,r=e.inputs,u=e.attrs,s=r.images,i=u.alignCorners,o=u.halfPixelCenters,d=u.size,l=d[0],c=d[1],p=s.shape,f=p[0],m=p[1],h=p[2],b=p[3],y=[f,l,c,b],_=a.dataIdMap.get(s.dataId);"float32"!==_.dtype&&(t=H({backend:a,inputs:{x:s},attrs:{dtype:"float32"}}),_=a.dataIdMap.get(t.dataId));var v=_.id,g=a.makeOutput(y,"float32");if(0===n.util.sizeFromShape(s.shape))return g;var w=a.dataIdMap.get(g.dataId).id;return bn(v,f,m,h,b,l,c,i?1:0,o?1:0,w),null!=t&&a.disposeData(t.dataId),g}};var Sn,An={kernelName:n.Reverse,backendName:"wasm",kernelFunc:function(e){var t=e.inputs,a=e.backend,r=e.attrs,u=t.x,s=r.dims,i=n.util.parseAxisParam(s,u.shape);if(0===u.shape.length)return y({inputs:{x:u},backend:a});var o=a.makeOutput(u.shape,u.dtype),d=a.dataIdMap.get(u.dataId).id,l=a.dataIdMap.get(o.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(u.shape).buffer);kn(d,c,i.length,p,u.shape.length,l);var f=T({inputs:{x:o},attrs:{shape:u.shape},backend:a});return a.disposeData(o.dataId),f},setupFunc:function(e){kn=e.wasm.cwrap(n.Reverse,null,["number","array","number","array","number","number"])}};var Mn,En={kernelName:n.RotateWithOffset,backendName:"wasm",kernelFunc:function(e){var t=e.inputs,a=e.backend,r=e.attrs,u=t.image,s=r.radians,i=r.fillValue,o=r.center,d=a.makeOutput(u.shape,u.dtype),l=a.dataIdMap.get(u.dataId).id,c=a.dataIdMap.get(d.dataId).id,p=u.shape,f=p[0],m=p[1],h=p[2],b=p[3],y=n.backend_util.getImageCenter(o,m,h),_=y[0],v=y[1],g="number"==typeof i?[i,i,i,0===i?0:255]:i.concat([255]),w=new Uint8Array(new Int32Array(g).buffer);return Sn(l,f,m,h,b,s,_,v,w,g.length,c),d},setupFunc:function(e){Sn=e.wasm.cwrap(n.RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}},xn=c(n.Round),Nn=c(n.Rsqrt);var Fn,Tn={kernelName:n.ScatterNd,backendName:"wasm",setupFunc:function(e){Mn=e.wasm.cwrap(n.ScatterNd,null,["number","number","number","number","number","number","array","number","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=a.indices,s=a.updates,o=r.shape,d=t.makeOutput(o,s.dtype);if(0===n.util.sizeFromShape(o))return d;var l=n.scatter_util.calculateShapes(s,u,o),c=l.sliceRank,p=l.numUpdates,f=l.sliceSize,m=l.strides,h=l.outputSize,b=t.dataIdMap.get(u.dataId).id,y=t.dataIdMap.get(s.dataId).id,_=new Uint8Array(new Int32Array(m).buffer),v=t.dataIdMap.get(d.dataId).id;return Mn(b,y,i[s.dtype],c,p,f,_,h,v),d}};var On,Cn={kernelName:n.Select,backendName:"wasm",kernelFunc:function(e){var t=e.inputs,a=e.backend,r=t.condition,u=t.t,s=t.e,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(u.dataId).id,d=a.dataIdMap.get(s.dataId).id,l=a.makeOutput(u.shape,u.dtype),c=a.dataIdMap.get(l.dataId).id,p=r.shape.length,f=u.shape.length,m=0===p||p>1||1===f?1:n.util.sizeFromShape(u.shape.slice(1));return Fn(i,o,d,m,c),l},setupFunc:function(e){Fn=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}};var Dn,Rn={kernelName:"Sigmoid",backendName:"wasm",setupFunc:function(e){On=e.wasm.cwrap(n.Sigmoid,null,["number","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs.x,r=t.dataIdMap.get(a.dataId).id,u=t.makeOutput(a.shape,a.dtype),s=t.dataIdMap.get(u.dataId).id;return 0===n.util.sizeFromShape(u.shape)||On(r,s),u}},Pn=c(n.Sin);var Wn={kernelName:n.Softmax,backendName:"wasm",setupFunc:function(e){Dn=e.wasm.cwrap(n.Softmax,null,["number","number","number","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs.logits,r=e.attrs.dim,u=t.dataIdMap.get(a.dataId).id,s=t.makeOutput(a.shape,a.dtype),i=t.dataIdMap.get(s.dataId).id,o=a.shape[r],d=n.util.sizeFromShape(a.shape)/o;return 0===n.util.sizeFromShape(s.shape)||Dn(u,i,o,d),s}};var Ln={kernelName:n.SpaceToBatchND,backendName:"wasm",kernelFunc:function(e){var t=e.inputs,a=e.backend,r=e.attrs,u=t.x,s=r.blockShape,i=r.paddings,o=n.util.sizeFromShape(s),d=[[0,0]];d.push.apply(d,i);for(var l=1+s.length;l<u.shape.length;++l)d.push([0,0]);var c=pn.kernelFunc({inputs:{x:u},backend:a,attrs:{paddings:d,constantValue:0}}),p=n.backend_util.getReshaped(c.shape,s,o,!1),f=n.backend_util.getPermuted(p.length,s.length,!1),m=n.backend_util.getReshapedPermuted(c.shape,s,o,!1),h=T({inputs:{x:c},backend:a,attrs:{shape:p}}),b=g({inputs:{x:h},backend:a,attrs:{perm:f}}),y=T({inputs:{x:b},backend:a,attrs:{shape:m}});return a.disposeData(c.dataId),a.disposeData(h.dataId),a.disposeData(b.dataId),y}};var Hn,Bn={kernelName:n.SplitV,backendName:"wasm",kernelFunc:function(e){var t=e.inputs,a=e.attrs,r=e.backend,u=t.x,s=a.numOrSizeSplits,i=a.axis,o=n.util.parseAxisParam(i,u.shape)[0],d=n.backend_util.prepareSplitSize(u,s,o),l=new Array(u.shape.length).fill(0),c=u.shape.slice();return d.map((function(e){var n=c.slice();n[o]=e;var t=P({inputs:{x:u},attrs:{begin:l,size:n},backend:r});return l[o]+=e,t}))}},Un=c(n.Sqrt),zn=c(n.Square),jn=f(n.SquaredDifference,!0);var qn,Vn={kernelName:n.Step,backendName:"wasm",setupFunc:function(e){Hn=e.wasm.cwrap(n.Step,null,["number","number","number","number"])},kernelFunc:function(e){var n=e.backend,t=e.inputs,a=e.attrs.alpha,r=t.x,u=n.dataIdMap.get(r.dataId).id,s=n.makeOutput(r.shape,r.dtype),o=n.dataIdMap.get(s.dataId).id;return Hn(u,a,i[r.dtype],o),s}};var Gn,Kn={kernelName:n.StridedSlice,backendName:"wasm",setupFunc:function(e){qn=e.wasm.cwrap(n.StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])},kernelFunc:function(e){var t,a=e.backend,r=e.inputs,u=e.attrs,s=r.x,i=u.begin,o=u.end,d=u.strides,l=u.beginMask,c=u.endMask,p=u.ellipsisMask,f=u.newAxisMask,m=u.shrinkAxisMask,h=n.slice_util.sliceInfo(s.shape,i,o,d,l,c,p,f,m),b=h.finalShapeSparse,y=h.finalShape,_=h.isIdentity,v=h.sliceDim0,g=h.isSimpleSlice,w=h.begin,k=h.end,I=h.strides;if(_)t=T({inputs:{x:s},backend:a,attrs:{shape:y}});else if(v||g){n.util.assert(s.shape.length>=1,(function(){return"Input must have rank at least 1, got: "+s.shape.length}));var S=n.slice_util.computeOutShape(w,k,I),A=P({inputs:{x:s},backend:a,attrs:{begin:w,size:S}});t=T({inputs:{x:A},backend:a,attrs:{shape:y}}),a.disposeData(A.dataId)}else{var M=a.makeOutput(b,"float32"),E=a.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(n.util.computeStrides(s.shape)).buffer),N=new Uint8Array(new Int32Array(w).buffer),F=new Uint8Array(new Int32Array(k).buffer),O=new Uint8Array(new Int32Array(I).buffer),C=new Uint8Array(new Int32Array(b).buffer),D=new Uint8Array(new Int32Array(n.util.computeStrides(b)).buffer),R=a.dataIdMap.get(M.dataId).id;qn(E,x,s.shape.length,N,F,O,C,D,b.length,R),t=T({inputs:{x:M},backend:a,attrs:{shape:y}}),a.disposeData(M.dataId)}return t}},Xn=f(n.Sub,!0);var Qn,Yn={kernelName:n.Sum,backendName:"wasm",setupFunc:function(e){Gn=e.wasm.cwrap(n.Sum,null,["number","number","number","number"])},kernelFunc:function(e){var t=e.backend,a=e.inputs,r=e.attrs,u=r.axis,s=r.keepDims,o=a.x,d=t.dataIdMap.get(o.dataId).id,l=d,c=o,p=I(o,u,t),f=p.transposed,m=p.axes,h=p.originalAxes,b=p.inputWasTransposed,y=m;if(b){var _=t.dataIdMap.get(f.dataId).id;_!==d&&(c=f,l=_,y=n.backend_util.getInnerMostAxes(y.length,c.shape.length))}n.backend_util.assertAxesAreInnerMostDims("sum",y,c.shape.length);var v=n.backend_util.computeOutAndReduceShapes(c.shape,y),g=v[0],w=v[1],k=n.util.sizeFromShape(w),S=t.makeOutput(g,c.dtype);if(0!==n.util.sizeFromShape(c.shape)){var A=t.dataIdMap.get(S.dataId).id;Gn(l,k,i[S.dtype],A)}if(b&&t.disposeData(f.dataId),s){var M=n.backend_util.expandShapeToKeepDim(S.shape,h);S.shape=M}return S}},Zn=c(n.Tan),Jn=c(n.Tanh);var $n,et={kernelName:n.Tile,backendName:"wasm",setupFunc:function(e){Qn=e.wasm.cwrap(n.Tile,null,["number","array","number","array","number","number"])},kernelFunc:function(e){for(var n=e.inputs,t=e.backend,a=e.attrs,r=n.x,u=t.dataIdMap.get(r.dataId).id,s=a.reps,o=new Array(r.shape.length),d=0;d<o.length;d++)o[d]=r.shape[d]*s[d];var l=new Uint8Array(new Int32Array(r.shape).buffer),c=new Uint8Array(new Int32Array(o).buffer),p=t.makeOutput(o,r.dtype),f=t.dataIdMap.get(p.dataId).id;return Qn(u,l,r.shape.length,c,o.length,i[p.dtype],f),p}};var nt,tt={kernelName:n.TopK,backendName:"wasm",setupFunc:function(e){$n=e.wasm.cwrap(n.TopK,null,["number","array","number","number","number","bool","number","number"])},kernelFunc:function(e){var n=e.inputs,t=e.backend,a=e.attrs,r=n.x,u=a.k,s=a.sorted,o=t.dataIdMap.get(r.dataId).id,d=new Uint8Array(new Int32Array(r.shape).buffer),l=r.shape.slice();l[l.length-1]=u;var c=t.makeOutput(l,r.dtype),p=t.dataIdMap.get(c.dataId).id,f=t.makeOutput(l,"int32"),m=t.dataIdMap.get(f.dataId).id;return $n(o,d,r.shape.length,i[r.dtype],u,s,p,m),[c,f]}};var at={kernelName:n.Transform,backendName:"wasm",setupFunc:function(e){nt=e.wasm.cwrap(n.Transform,null,["number","number","bool","number","number","number","number","number","number","array","number","number","number","number","number"])},kernelFunc:function(e){var t,a=e.backend,r=e.inputs,u=e.attrs,s=r.image,i=r.transforms,o=u.interpolation,d=u.fillMode,l=u.fillValue,c=u.outputShape,p=s.shape,f=p[0],m=p[1],h=p[2],b=p[3],y=null!=c?c:[m,h],_=y[0],v=y[1],g=[f,_,v,b],w=new Uint8Array(new Int32Array(n.util.computeStrides(s.shape)).buffer),k=a.makeOutput(g,s.dtype),I=a.dataIdMap.get(k.dataId).id,S=a.dataIdMap.get(s.dataId).id,A=a.dataIdMap.get(i.dataId).id,M="nearest"===o?1:2;switch(d){case"constant":t=1;break;case"reflect":t=2;break;case"wr